官網:javascript
官方網址:https://grafana.com/html
官方文檔:http://docs.grafana.org/java
基於 RPM 的系統(CentOS,Fedora,OpenSuse,RedHat)mysql
最新穩定版 CentOS / Fedora / OpenSuse / Redhat Linux
grafana-4.4.3 (x86-64 rpm) : https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.4-1.x86_64.rpm
nginx
直接使用 yum 安裝:web
yum installhttps://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.4-1.x86_64.rpm
或者使用 rpm 方式安裝:( CentOS / Fedora / Redhat)redis
$ wgethttps://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.4-1.x86_64.rpm
$ sudo yum install initscripts fontconfig $ sudo rpm -Uvh grafana-5.1.4-1.x86_64.rpm
經過yum源方式安裝:sql
vim /etc/yum.repos.d/grafana.repo [grafana] name=grafana baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt yum install grafana
安裝包信息:typescript
二進制文件: /usr/sbin/grafana-server
init.d 腳本: /etc/init.d/grafana-server
環境變量文件: /etc/sysconfig/grafana-server
配置文件: /etc/grafana/grafana.ini
啓動項: grafana-server.service
日誌文件:/var/log/grafana/grafana.log
默認配置的sqlite3數據庫:/var/lib/grafana/grafana.db數據庫
啓動方式:
腳本啓動
service grafana-server start
以 grafana 用戶啓動 grafana 進程,grafana 用戶是在安裝過程當中自動建立的。默認http端口:3000,默認用戶和用戶組是 admin
經過 systemd 啓動
systemctl daemon-reload
systemctl start grafana-server systemctl status grafana-server systemctl enable grafana-server.service
環境配置文件:
systemd 和 init.d 腳本啓動都是加載的 /etc/sysconfig/grafana-server 文件。
能夠在 /etc/sysconfig/grafana-server 文件中修改日誌目錄,數據目錄和其餘一些環境變量。
日誌記錄:
默認狀況日誌記錄到 /var/log/grafana 文件。
數據庫:
默認配置指定的數據庫 sqlite3 在 /var/lib/grafana/grafana.db 。升級以前記得備份。
也能夠用 mysql 或者 postgres,詳細配置參考:http://docs.grafana.org/installation/configuration/#database 或者後面的介紹的配置方法。
配置文件:
配置文件存放在 /etc/grafana/grafana.ini ,詳細的配置選項參考:http://docs.grafana.org/installation/configuration/
添加數據源:
Graphite
InfluxDB
OpenTSDB
Prometheus(最近很火)Zabbix(經常使用)
elasticsearch(經常使用)
等
服務器端圖形渲染:
服務器端映像(png)呈現是一個可選的特性,但在共享可視化時很是有用,例如在警報通知中。
若是圖像缺乏文本,請確保已經安裝了字體包
yum install fontconfig yum install freetype* yum install urw-fonts
配置:
grafana 後端有許多配置選項,能夠在一個配置文件或環境變量中指定。
ini 配置文件以分號爲註釋 ;
默認配置文件路徑:$WORKING_DIR/conf/defaults.ini
自定義配置文件:$WORKING/conf/custom.ini
自定義配置文件路徑可使用 --config 參數覆蓋
注意:使用 rpm或者 deb 方式安裝的,配置文件默認在 /etc/grafana/grafana.ini
這個路徑是由 init.d 腳本 --config 參數指定的。
使用環境變量
下面列出的配置文件中的選項均可以被環境變量覆蓋,語法:
GF_<SectionName>_<KeyName>
配置文件選項:
# default section instance_name = ${HOSTNAME} [security] admin_user = admin [auth.google] client_secret = 0ldS3cretKey 環境變量替換: export GF_DEFAULT_INSTANCE_NAME=my-instance export GF_SECURITY_ADMIN_USER=true export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
[paths] 選項
數據,日誌等文件的保存路徑
基本概念
本文件「自下而上」介紹Grafana的基本概念,能夠做爲熟悉核心功能的起點。
數據源
Grafana支持許多不一樣的時間序列數據(數據源)存儲後端。每一個數據源都有一個特定的查詢編輯器,該特定的查詢編輯器是針對特定數據源公開的功能和功能而定製的。
正式支持如下數據源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch。
每一個數據源的查詢語言和功能顯然是很是不一樣的。您能夠未來自多個數據源的數據合併到單個儀表板上,但每一個面板都與屬於特定組織的特定數據源相關聯。
組織
Grafana支持多個組織,以支持各類部署模式,包括使用單個Grafana實例爲多個潛在的不受信任的組織提供服務。
在不少狀況下,Grafana將部署在一個單一的組織中。
每一個組織均可以有一個或多個數據源。
全部儀表板由特定組織擁有。
注意:請務必記住,大多數度量數據庫不提供任何類型的我的用戶系列身份驗證。所以,在Grafana中,數據源和儀表板可用於特定組織中的全部用戶。
用戶
用戶是Grafana的命名賬戶。用戶能夠屬於一個或多個組織,並能夠經過角色分配不一樣級別的權限。
Grafana支持各類各樣的內部和外部方式供用戶驗證本身。這些包括從其本身的集成數據庫,外部SQL服務器或外部LDAP服務器。
行
行是儀表板內的邏輯分隔符,用於將面板組合在一塊兒。
行老是12「單位」寬。這些單位根據瀏覽器的水平分辨率自動縮放。您能夠經過設置本身的寬度來控制一行中面板的相對寬度。
使用抽象單位,使Grafana在全部的屏幕上看起來都很棒,並且體積很小。
注意:使用MaxDataPoint功能,不管您的分辨率仍是時間範圍,Grafana均可覺得您顯示完美的數據點數量。
根據所選的模板變量,利用重複行功能動態建立或刪除整個行(能夠填充面板)。
能夠經過單擊行標題來摺疊行。若是您保存了一個摺疊的行的儀表板,它將保存在該狀態,而且不會預加載這些圖,直到該行被展開。
面板
面板是Grafana的基本可視化構建塊。每一個面板提供一個查詢編輯器(取決於面板中選擇的數據源),容許您經過使用查詢編輯器提取完美的可視化以在Panel上顯示
每一個Panel都有各類各樣的造型和格式化選項,讓您建立完美的圖片。
面板能夠在儀表板上拖放並從新排列。他們也能夠調整大小。
目前有四種面板類型:Graph,Singlestat,Dashlist,Table和Text。
像「 圖形」面板的面板容許您根據須要繪製出許多指標和系列。像Singlestat這樣的其餘面板須要將單個查詢減小到單個數字。Dashlist和Text是不鏈接到任何數據源的特殊面板。
經過在面板配置中使用Dashboard Templating變量字符串(包括經過查詢編輯器配置的數據源的查詢),可使面板更具動態性。
利用重複面板功能,根據所選擇的模板化變量動態建立或刪除面板。
面板上的時間範圍一般是儀表板時間選擇器中設置的時間範圍,但能夠經過使用面板特定時間覆蓋來覆蓋。
面板(或整個儀表板)能夠經過各類方式輕鬆共享。您能夠發送連接到有誰登陸您的Grafana的人。您可使用快照功能將當前正在查看的全部數據編碼爲靜態和交互式JSON文檔; 它比經過電子郵件屏幕截圖好得多!
查詢編輯器
查詢編輯器公開了數據源的功能,並容許您查詢其包含的指標。
使用查詢編輯器在時間序列數據庫中構建一個或多個查詢(一個或多個系列)。該面板將當即更新,容許您實時有效地探索數據,併爲該特定面板構建完美的查詢。
您能夠在查詢自己的查詢編輯器中使用模板變量。這提供了一種基於「儀表板」上選擇的「模板化」變量動態探索數據的強大方法。
Grafana容許您在查詢編輯器中按照它們所在的行來引用查詢。若是您向圖形添加第二個查詢,則能夠經過鍵入#A來引用第一個查詢。這提供了一種簡單而方便的方法來構建複合查詢。
儀表板
儀表板是全部在一塊兒的地方。儀表板能夠被認爲是由一組或多組組成並排列成一行或多行的組件。
儀表板的時間段能夠由儀表板右上方的儀表板時間選擇器控制。
儀表板能夠利用模板來使它們更具動態性和交互性。
儀表板可使用註釋來顯示面板上的事件數據。這能夠幫助將Panel中的時間序列數據與其餘事件相關聯。
儀表板(或特定面板)能夠經過各類方式輕鬆共享。您能夠發送連接到有誰登陸您的Grafana的人。您可使用快照功能將當前正在查看的全部數據編碼爲靜態和交互式JSON文檔; 它比經過電子郵件屏幕截圖好得多!
儀表板能夠被標記,儀表板選擇器能夠快速,可搜索訪問特定機構中的全部儀表板。
圖形面板
Grafana的主板簡單地命名爲Graph。它提供了很是豐富的圖形選項
單擊面板的標題會顯示一個菜單。該edit選項爲面板打開其餘配置選項。
常規選項卡容許自定義面板的外觀和菜單選項。
通常選項
Title - 儀表板上的面板標題
Span - 列中的面板寬度
Height - 面板內容高度(以像素爲單位)
Drilldown / detail link 部分容許添加能夠連接到其餘儀表板或URL的面板的動態連接。
每一個連接都有一個標題,一個類型和參數。連接能夠是連接dashboard或absolute連接。若是是儀表板連接,則該dashboard值必須是儀表板的名稱。若是是absolute連接,則URL是連接的URL。
params容許在連接中添加其餘URL參數。格式是由name=value多個參數分隔的&。可使用模板變量做爲值添加$myvar。
當連接到使用模板變量的另外一個儀表板時,可使用var-myvar=value該模板變量將連接填充到所需的值。
度量
「度量」標籤訂義要呈現的系列數據和源。每一個數據源提供不一樣的選項。
「軸」和「網格」選項卡控制軸,網格和圖例的顯示。
軸
該Left Y和Right Y可使用自定義的:
Unit - Y值的顯示單位
Grid Max - 最大Y值。(默認爲自動)
Grid Min - 最小Y值。(默認爲自動)
Label - Y軸標籤(默認爲「」)
也能夠經過取消選中相應的框來隱藏軸Show Axis。
X軸模式
有三個選項:
默認選項是Time,表示x軸表示時間,數據按時間分組(例如,按小時或分鐘)。
該Series選項意味着數據按序列分組,而不是按時間分組。y軸仍然表示該值。
該Histogram選項將圖形轉換爲直方圖。直方圖是一種將數字分紅範圍的條形圖,一般稱爲桶或倉。較高的酒吧顯示更多數據在該範圍內。這裏更詳細地描述了直方圖和水桶。
圖例
經過選中Show複選框來隱藏圖例。若是顯示,能夠經過選中Table複選框將其顯示爲值列表。使用Hide empty複選框能夠從圖例中隱藏沒有值的系列。
圖例值
附加值能夠沿着圖例名稱顯示: - Total- 從度量查詢返回的全部值的總和- - 從度量查詢Current返回的最後一個值 - Min- 從度量查詢返回的全部值的最小值- - 從Max最大值返回的全部值度量查詢 - Avg- 從度量查詢返回的全部值的平均值 - Decimals- 控制爲圖例值顯示的小數位數(以及圖形懸停工具提示)
圖例值由Grafana根據客戶端計算,取決於您的度量標準查詢使用的聚合或點合併類型。全部上述圖例值都不能同時進行。例如,若是您繪製像請求/秒的速率,這多是使用平均值做爲聚合器,則圖例中的總計不會表明請求的總數。這只是Grafana收到的全部數據點的總和。
閾值
閾值容許您向圖形添加任意行或部分,以便更容易查看圖表什麼時候跨越特定閾值。
圖表選項
Bar - 將值顯示爲條形圖
Lines - 以線圖顯示值
Points - 顯示值的點
單體組
Singlestat面板容許您顯示SINGLE系列的一個主要摘要統計信息。它將系列減小爲單個數字(經過查看系列中的最大值,最小值,平均值或值)。Singlestat還提供了對狀態或面板背景進行着色的閾值。它也能夠將單個數字轉換爲文本值,並顯示該系列的sparkline摘要。
Singlestat面板配置
singlestat面板有一個普通的查詢編輯器,可讓您定義精確的指標查詢,如許多其餘面板。經過「選項」選項卡,您能夠訪問特定於Singlestat的功能。
腳本化儀表板
若是您有許多公制名稱以定義的模式更改(新服務器等),則不斷建立新的儀表板是使人煩惱的。
使用腳本化的儀表板,您可使用javascript動態建立儀表板。在文件夾grafana安裝文件夾下public/dashboards/有一個名爲的文件scripted.js。此文件包含腳本化儀表板的示例。您可使用url訪問它:http://grafana_url/dashboard/script/scripted.js?rows=3&name=myName
若是您打開scripted.js,您能夠看到它如何從ARGS變量讀取url參數,而後添加行和麪板。
示例
var rows = 1; var seriesName = 'argName'; if(!_.isUndefined(ARGS.rows)) { rows = parseInt(ARGS.rows, 10); } if(!_.isUndefined(ARGS.name)) { seriesName = ARGS.name; } for (var i = 0; i < rows; i++) { dashboard.rows.push({ title: 'Scripted Graph ' + i, height: '300px', panels: [ { title: 'Events', type: 'graph', span: 12, fill: 1, linewidth: 2, targets: [ { 'target': "randomWalk('" + seriesName + "')" }, { 'target': "randomWalk('random walk2')" } ], } ] }); } return dashboard;
更多例子
您能夠在public/dashboards/grafana安裝目錄中找到更多示例。
警報僅在Grafana v4.0及更高版本中可用。
條件
目前惟一存在的條件類型是Query容許您指定查詢字母,時間範圍和聚合功能的條件。
查詢條件示例
avg() OF query(A, 5m, now) IS BELOW 14
avg()控制每一個系列的值如何減小到可與閾值進行比較的值。單擊該功能將其更改成另外一個聚合功能。
query(A, 5m, now)該字母定義要從「 度量標準」選項卡執行什麼查詢。第二個參數定義了時間範圍,5m, now意味着從如今到如今5分鐘。您還10m, now-2m能夠定義從如今開始的10分鐘到如今的2分鐘的時間範圍。若是您想忽略最近2分鐘的數據,這將很是有用。
IS BELOW 14定義閾值的類型和閾值。您能夠點擊IS BELOW更改閾值類型。
在警報規則中使用的查詢不能包含任何模板變量。目前咱們只支持AND和OR操做條件之間的連續執行。例如,咱們按如下順序有3個條件:condition:A(評估爲:TRUE)OR條件:B(計算結果爲:FALSE)AND條件:C(計算結果爲:TRUE),結果將計算爲(( TRUE或FALSE)AND TRUE)= TRUE。
咱們計劃在未來添加其餘條件類型,例如Other Alert,您能夠在其中包括另外一個警報在您的條件下的狀態,以及Time Of Day。
故障排除
測試規則
您能夠作的第一級故障排除是按測試規則按鈕。您將得到結果,您能夠擴展到能夠查看從查詢返回的原始數據。
還能夠經過檢查grafana-server日誌進行進一步的故障排除。若是它不是錯誤或因爲某些緣由,日誌不會說任何您能夠啓用某些相關組件的調試日誌記錄。這是在Grafana的ini配置文件中完成的。
顯示故障排除警報時可能相關的記錄器的示例。
[log]
filters = alerting.scheduler:debug \ alerting.engine:debug \ alerting.resultHandler:debug \ alerting.evalHandler:debug \ alerting.evalContext:debug \ alerting.extractor:debug \ alerting.notifier:debug \ alerting.notifier.slack:debug \ alerting.notifier.pagerduty:debug \ alerting.notifier.email:debug \ alerting.notifier.webhook:debug \ tsdb.graphite:debug \ tsdb.prometheus:debug \ tsdb.opentsdb:debug \ tsdb.influxdb:debug \
警報通知
警報僅在Grafana v4.0及更高版本中可用。
當警報更改狀態時,會發出通知。每一個警報規則均可以有多個通知。但爲了向警報規則添加通知,您首先須要添加和配置notification通道(能夠是電子郵件,Pagerduty或其餘集成)。這經過「通知通道」頁面完成。
通知通道設置
警報通知通道
在「通知通道」頁面上,點擊New Channel按鈕進入能夠配置和設置新通知通道的頁面。
您指定名稱和類型,並鍵入特定選項。您還能夠測試通知,以確保其正常工做和設置。
鍵盤快捷鍵
Grafana v4引入了一些功能強大的鍵盤快捷鍵。您如今能夠經過鼠標懸停在面板上來對焦。專一於面板,您能夠輕鬆點擊e切換面板編輯模式,或v切換全屏模式。p r移除面板。p s打開共享模態。
點擊?你的鍵盤打開快捷鍵幫助模態。
全球
g h 轉到首頁儀表板
g p 轉到我的資料
s o 打開搜索
s s 用加星標過濾器打開搜索
s t 在標籤視圖中打開搜索
esc 退出編輯/設置視圖
儀表板
mod+s 保存儀表板
mod+h 隱藏行控件
d r 刷新全部面板
d s 儀表板設置
d v 切換主動/查看模式
d k 切換報亭模式(隱藏頂部導航)
mod+o 切換共享圖形十字準線
專一面板
e 切換面板編輯視圖
v 切換面板全屏視圖
p s 打開面板共享模態
p r 刪除面板
聚焦行
r c 摺疊行
r r 刪除行
時間範圍
t z 縮短期範圍
t 移動時間範圍
t 向前移動時間範圍
在反向代理以後運行Grafana
應該直接讓Grafana在逆向代理以後運行。但這裏有一些您可能遇到的事情。
連接和重定向將不會正確呈現,除非您設置了server.domain設置。
[server]
domain = foo.bar
要使用子路徑前http://foo.bar/grafana必定要包括/grafana在root_url結束。不然Grafana將沒法正常運行。參見下面的例子
例子
如下是在反向代理以後運行Grafana的一些示例配置。
Grafana配置(ex http://foo.bar.com)
[server] domain = foo.bar
Nginx配置
server { listen 80; root /usr/share/nginx/www; index index.html index.htm; location / { proxy_pass http://localhost:3000/; } }
子路徑示例(http://foo.bar.com/grafana)
Grafana配置與子路徑
[server] domain = foo.bar root_url = %(protocol)s://%(domain)s:/grafana
Nginx配置與子路徑
server { listen 80; root /usr/share/nginx/www; index index.html index.htm; location /grafana/ { proxy_pass http://localhost:3000/; } }
如何設置Grafana的高可用性
警報不支持高可用性。
設置Grafana的高可用性是至關簡單的。歸結爲兩件事:
對多個grafana實例使用共享數據庫。
考慮如何存儲用戶會話。
配置多個服務器以使用相同的數據庫
首先,您須要作的是在其餘服務器上設置mysql或postgres,並配置Grafana以使用該數據庫。您能夠在grafana配置的[數據庫]部分中找到這樣作的配置。Grafana如今將把數據庫中的全部長期數據都保留下來。還值得考慮如何設置數據庫以實現高可用性,但不在本指南的範圍以內。
用戶會話
要考慮的第二件事是如何處理用戶會話以及如何平衡服務器之間的負載。默認狀況下,Grafana將用戶會話存儲在磁盤上,若是您sticky sessions在負載均衡器中使用,則能夠正常工做。Grafana還支持將會話數據存儲在數據庫中,redis或memcache能夠在您的負載平衡器中使用循環。若是您使用mysql / postgres進行會話存儲,則首先須要一個表來存儲會話數據。有關[sessions]的詳細信息
對於Grafana自己,若是將會話存儲在磁盤或數據庫/ redis / memcache上,這並不重要。可是咱們建議您將會話存儲在redis / memcache中,由於它能夠更容易地從組中添加/遠程實例。
安裝插件
安裝插件的最簡單方法是使用與grafana捆綁在一塊兒的CLI工具grafana-cli。在修改插件後進行任何修改以前,須要從新啓動grafana-server。
Grafana插件目錄
在Linux系統上,grafana-cli會假設grafana插件目錄是/var/lib/grafana/plugins。能夠經過指定-pluginsDir標誌來覆蓋grafana-cli將要操做的目錄。在Windows系統上,必須爲每一個呼叫指定此參數。
Grafana-cli命令
列出可用的插件
grafana-cli plugins list-remote
安裝最新版本的插件
grafana-cli plugins install
grafana-cli plugins install
grafana-cli plugins ls
更新全部安裝的插件
grafana-cli plugins update-all
更新一個插件
grafana-cli plugins update
grafana-cli plugins remove