Grafana是一個開源的度量分析與可視化套件。純 Javascript 開發的前端工具,經過訪問庫(如InfluxDB),展現自定義報表、顯示圖表等。大多使用在時序數據的監控方面,如同Kibana相似。Grafana的UI更加靈活,有豐富的插件,功能強大。前端
Grafana支持許多不一樣的數據源。每一個數據源都有一個特定的查詢編輯器,該編輯器定製的特性和功能是公開的特定數據來源。linux
官方支持如下數據源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。json
每一個數據源的查詢語言和能力都是不一樣的。你能夠把來自多個數據源的數據組合到一個儀表板,但每個面板被綁定到一個特定的數據源,它就屬於一個特定的組織。下面咱們來一塊兒感覺一下grafana。
ubuntu
使用的是ubuntu 16.04TLS,因此找到官網相對應的Ubuntu方式,這是官網的連接地址:https://grafana.com/grafana/download?platform=linux編輯器
wget https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb sudo dpkg -i grafana_5.4.2_amd64.deb
啓動grafana
方式1、Start Grafana by running:工具
sudo service grafana-server start sudo update-rc.d grafana-server defaults //設置開機啓動(可選)
方式2、To start the service using systemd:spa
systemctl daemon-reload systemctl start grafana-server systemctl status grafana-server sudo systemctl enable grafana-server.service //設置開機啓動
Data Source
Organization
User
Row
Panel
Query Editor
Dashboard插件
grafana支持多種時序數據源。每種數據源,都有各自的查詢編輯器。
目前官方支持了以下幾種數據源:code
Graphite
InfluxDB
OpenTSDB
Prometheus
Elasticsearch
CloudWatch
在一個Dashboard中,能夠結合多種數據源的數據。可是,一個Panel只能使用一個數據源(屬於特定的組織&&)。orm
有些場景是一個grafana服務商與多個客戶合做,客戶之間是隔離的,因此grafana也就支持多組織。但在更多的場景下,grafana會被單獨部署到某個客戶環境中。
每一個組織有一個或多個Data Source。Dashboard和組織也是多對一的關係。
在grafana中的組織下的每一個用戶,均可以使用屬於這個組織的DataSoure和Dashboard。權限篇
一個用戶能夠屬於一個或多個組織。在不通組織中能夠被設置不一樣角色。
Grafana也支持多樣的認證方式。好比集成database,或來自外部的SQL server,或是一個LDAP server。
詳見User Auth。
在一個Dashboard,「行「是用來組合各個Panel的。一行有12個單元,能夠將panel設置成不一樣的單位寬度。更不錯的是,grafana在全部分辨率的屏幕下,都能適應的很好。
使用Repeating Row Function,能夠經過選擇下拉菜單的參數,動態控制建立和移除行(這些行可能有Panel,還沒嘗試&&)
點擊Row title,能夠摺疊行。若是在保存時,一個Dashboard的某些行被摺疊,則摺疊的狀態也會被保存。瀏覽時若是沒有再次展開它,則裏面的數據也不會預加載。
在grafana中,Panel是基礎呈現塊。每一個Panel都提供了查詢編輯器Query Editor,輔助咱們從DataSource提取所展現的信息。
每種Panel都有多樣的配置和展示方式,它能夠在Dashboard上拖拽和重繪大小。
官方提供的Panel有以下:
Graph
Singlestat
Dashlist
Table
Text
Graph能夠提供折線圖、柱狀圖等能力,能夠經過Plugin添加其它圖表。Singlestat如同其名,是用來展現單個字段的狀態。Dashlist和Text是特殊的panel,它不鏈接任何Data Source。
使用Dashborad變量(下拉菜單),能夠動態的配置panel。使用Repeating Panel function能夠動態的建立和移除panel。panel的時間通常採用Dashborad上的time picker,但也能夠自定義時間。
panel很容易被分享,能夠導出這個panel的json文檔。
如上介紹的,查詢編輯器也是數據源間不一樣的。編輯器能夠引用Dashboard的變量,來達到動態控制panel的目的。QE也能夠添加屢次Query,來獲取多個series。每次Query的結果,能夠經過輸入#xxx給下一次引用,進行更高級的查詢。
最終,全部的panel和row彙總到了dashboard中。右上角的time picker能夠控制panel的時間。dashboard能被方便的共享。可使用Snapshot的特性,將當前的全部視圖數據導出到靜態的JSON文檔中。dashboard也能夠被打標籤。
Grafana特性PanelDashboard FeaturesData SourceAlertingKeyboard Shortcuts