隨著業務的越發複雜,對軟體系統的要求越來越高,這意味著我們需要隨時掌控系統的運行情況。因此,對系統的實時監控以及可視化展示,就成了基礎架構的必須能力。 Grafana官方網站 Grafana介紹 Grafana是一個跨平臺的開源的度量分析和可視化工具,可以通過將採集的數據查詢然後可視化的展示,並及時 ...
隨著業務的越發複雜,對軟體系統的要求越來越高,這意味著我們需要隨時掌控系統的運行情況。因此,對系統的實時監控以及可視化展示,就成了基礎架構的必須能力。
Grafana官方網站
https://grafana.com/
Grafana介紹
Grafana是一個跨平臺的開源的度量分析和可視化工具,可以通過將採集的數據查詢然後可視化的展示,並及時通知。它主要有以下六大特點:
1、展示方式:快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標和日誌,官方庫中具有豐富的儀錶盤插件,比如熱圖、折線圖、圖表等多種展示方式;
2、數據源:zabbix,Graphite,InfluxDB,OpenTSDB,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可視方式定義最重要指標的警報規則,Grafana將不斷計算併發送通知,在數據達到閾值時通過Slack、PagerDuty等獲得通知;
4、混合展示:在同一圖表中混合使用不同的數據源,可以基於每個查詢指定數據源,甚至自定義數據源;
5、註釋:使用來自不同數據源的豐富事件註釋圖表,將滑鼠懸停在事件上會顯示完整的事件元數據和標記;
6、過濾器:Ad-hoc過濾器允許動態創建新的鍵/值過濾器,這些過濾器會自動應用於使用該數據源的所有查詢。
下載安裝
本文這次介紹 zabbix與 Grafana結合使用
首先 先安裝好zabbix 配置完成後開始安裝Grafana
zabbix官網
https://www.zabbix.com/
Grafana官網
https://grafana.com/
獲取Grafana
訪問Grafana下載頁面https://grafana.com/grafana/download在這裡可獲取該軟體的全版本。
可以按照使用需求,進行下載相應版本。
安裝Grafana
系統環境說明
[root@centos /root]
#cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@centos /root]
#uname -r
3.10.0-862.el7.x86_64
[root@centos /root]
#systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@centos /root]
#sestatus
SELinux status: disabled
安裝Grafana
在這次安裝中,我們使用的是grafana-5.2.4版本。不同版本之間功能存在著一定的差距。
[root@centos /root]
#wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.4-1.x86_64.rpm
[root@centos /root]
#yum install initscripts fontconfig #安裝依賴
grafana-5.2.4-1.x86_64.rpm
[root@centos /root]
#yum localinstall grafana-5.2.4-1.x86_64.rpm
啟動Grafana
[root@centos /root]
#systemctl start grafana-server.service
[root@centos /root]
#systemctl enable grafana-server.service
檢查監聽埠
Grafana預設監聽埠為3000,可以通過修改配置文件(/etc/grafana/grafana.ini)對其做定製化配置。
[root@centos /root]
#netstat -lntup |grep grafana
tcp6 0 0 :::3000 :::* LISTEN 1333/grafana-server
Grafana的使用
訪問界面
通過流量器訪問 http://ip:3000 即可訪問grafana頁面,初始用戶名與密碼均為admin,可在登陸是修改預設密碼。
登陸成功之後可以先進行創建第一個數據源,以及第一個展示面板。
Grafana For Zabbix
使用Zabbix收集數據,Grafana展示圖形。Grafana預設沒有zabbix作為數據源,需要給zabbix安裝一個插件,然後再添加進Grafana即可。
註:本次使用zabbix版本為3.4.14。
[root@centos /root]
#zabbix_server -V
zabbix_server (Zabbix) 3.4.14
獲取zabbix 插件
通過grafana-cli plugins list-remote命令 可以獲取到grafana的插件列表。
[root@centos /root]
#grafana-cli plugins list-remote |grep zabbix
id: alexanderzobnin-zabbix-app version: 3.9.1
安裝插件
[root@centos /root]
#grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 3.9.1
from url: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.9.1/download
into: /var/lib/grafana/plugins
✔ Installed alexanderzobnin-zabbix-app successfully
Restart grafana after installing plugins . <service grafana-server restart>
出現√即為安裝成功。在安裝完成後務必重啟Grafana
[root@centos /root]
#systemctl restart grafana-server.service
配置zabbix源
登陸grafana頁面,開啟zabbix插件。
點擊enable開啟插件。
添加zabbix數據源
相關配置項目說明:
配置項目 | 說明 |
---|---|
Name | 給數據源起一個名字。 |
Default | 選擇預設,意味著數據源將預先選定為新的面板。 |
Type | 選擇數據源的類型。 |
Url | 這裡的Url是http協議,地址和埠是zabbix-web提供的介面。或為zabbix的api地址。 |
Access | 訪問代理,這裡選擇了proxy表示Grfana通過後端訪問,還有direct值表示從瀏覽器直接訪問目錄。 |
Username | 輸入zabbix的用戶名,需要進行認證,一般使用管理員。 |
Password | 輸入zabbix用戶的密碼。 |
代理(proxy)訪問意味著的Grafana後端將從瀏覽器代理所有請求,並將它們發送到數據源。這樣是有用的,因為它可以消除CORS(交叉來源站點資源)的問題,如消除需要傳播到數據源到瀏覽器的身份驗證詳細信息。但還支持直接(direct)訪問,因為在某些情況下可能用來訪問直接根據用例和拓撲結構的Grafana、 用戶和數據源的數據源。
以上信息都填寫完成之後點擊Save & Test,出現Success就表示成功了,就可以去利用zabbix中數據添加圖形了。
下麵先引入zabbix自帶的dashboard,點擊import。
查看zabbix dashboard頁面
使用grafana的好處是對圖形的自定義更加簡便,通過變更不同的json文件,即可在數據源中查找到想要的結果,然後繪製出圖。
Grafana相關補充
Grafana插件安裝目錄
在Linux系統上,grafana-cli會假定grafana插件目錄是/var/lib/grafana/plugins。通過指定-pluginsDir標誌可以覆蓋grafana-cli將要運行的目錄。在Windows系統中,必須為每個呼叫指定此參數
Grafana-cli命令說明
安裝插件最簡單的方法是使用與grafana捆綁在一起的CLI工具grafana-cli。在修改插件之後發生任何修改之前,grafana伺服器需要重新啟動。
列出可用的插件
#grafana-cli plugins list-remote
安裝最新版本的插件
#grafana-cli plugins install <plugin-id>
安裝特定版本的插件
#grafana-cli plugins install <plugin-id> <version>
列出安裝的插件
#grafana-cli plugins ls
更新所有安裝的插件
#grafana-cli plugins update-all
更新一個插件
#grafana-cli plugins update <plugin-id>
刪除一個插件
#grafana-cli plugins remove <plugin-id>