前言
zabbix是一種類似於cacti 及nagios的;可通過web界面,提供可視化;提供分佈式的系統監視;網絡監控功能的企業級的開源的監控方案。然而,它的web的可視化有一個缺點就是不夠酷炫。
Grafana是一個用Javascript寫的開源的(Dashboard)可視化面板,其不僅功能齊全,還有着豐豐富的圖表和漂亮的佈局展示,並且支持Graphite、elasticsearch、zabbix等的數據可視化的實現,可以給你的數據換個皮膚,使你的數據展示更加直觀和漂亮。
下面,要介紹的是Grafana+Zabbix實現數據可視化,使其更加漂亮。
zabbix搭建可參考下列鏈接:
https://blog.csdn.net/GX_1_11_real/article/details/80872582
如已有zabbix或其他服務,可直接跳過前三步,從第四步開始。
Grafana+Zabbix實現數據可視化操作
一、環境準備
首先要保證zabbix-server和與agent的網絡要聯通,如果跨機房等可使用VPN,如果是同一局域網可關閉防火牆也可配置規則
下面由於是內網,採用關閉防火牆的方式
【1】防火牆
centos7操作:
systemctl stop firewalld
systemctl disable firewalld
更改selinux:
vim /etc/selinux/config
SELINUX=disabled
關閉selinux(爲了避免錯誤):
setenforce 0
centos6操作:
/etc/init.d/iptables stop
chkconfig iptables off
【2】同步時間
zabbix-server與agent間要時間同步
安裝並同步時間(可自建內網ntp時間服務器):
yum -y install ntp
ntpdate cn.pool.ntp.org
【3】添加解析(爲了方便操作,可選)
echo “192.168.100.2 zabbix-server ” >>/etc/hosts
echo “192.168.100.3 zabbix-agent” >> /etc/hosts
scp /etc/hosts zabbix-agent:/etc/hosts
【4】推公鑰(爲了方便操作,可選)
zabbix-server向zabbix-agent端推公鑰
一般選擇第二種方法.
<1>互信操作:
ssh-keygen -f /root/.ssh/id_rsa -N " " 創建密鑰
mv /root/.ssh/{id_rsa.pub,authorized_keys} 改變密鑰文件名,authorized_keys爲固定格式,可被系統識別
scp -r /root/.ssh zabbix-agent:/root/ 推送密鑰到agent端
<2>推公鑰:
ssh-keygen 創建密鑰
ssh-copy-id root@zabbix-agent 推送密鑰到agent端
二、zabbix安裝
可用源碼包安裝,本文使用yum安裝
可從官網下載安裝包或yum源,選擇自己需要的版本:
https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=6&db=MySQL
例如:
【1】安裝Zabbix下載源
根據zabbix官方提供的下載源及命令,下載安裝即可(server和agent端皆此操作)
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
【2】zabbix-server操作
<1>zabbix-server相關軟件安裝:
yum -y install zabbix-server zabbix-server-mysql zabbix-web-mysql zabbix-get httpd
<2>數據庫安裝(mysql可換爲mariadb;也可選擇編譯安裝):
yum -y install mysql mysql-server mysql-devel 或 mariadb mariadb-server
【3】數據庫配置
<1>啓動並設置mysql密碼
systemctl restart mariadb
systemctl enable mariadb
mysqladmin -uroot password ‘密碼’
<2>爲zabbix-server創庫並授權
mysql -uroot -p123456 登陸數據庫
create database zabbix character set utf8; 創建數據庫,設定編碼
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; 創建授權用戶
flush privileges; 刷新授權表,雖然不需要,但可避免一些問題
use zabbix; 測試,數據庫是否創建
也可直接創建,暫不設置密碼
create database zabbix character set utf8;
<3>啓動httpd和mysql,並設置開機啓動
systemctl restart mariadb.service
systemctl restart httpd.service
systemctl enable mariadb.service
systemctl enable httpd.service
<4>執行zabbix官方提供是sql語句(其在安裝基礎依賴包時,已在指定位置,通常爲/usr/share/doc/zabbix-server-mysql下)
cd /usr/share/doc/zabbix-server-mysql-4.0.2
gzip -d create.sql.gz
mysql -uroot zabbix < create.sql (也可用其他方法導入,目的是將此sql語句導入zabbix庫中)
成功後,zabbix庫中出現大量表
【4】zabbix-server配置文件配置
配置文件位置(由於是yum安裝,配置文件位置: /etc/zabbix/zabbix_server.conf)
配置完,啓動zabbix-server
systemctl start zabbix-server
systemctl enable zabbix-server
如有報錯,請檢查配置文件
文件中的配置,要按照需求來
必要配置:
DBHost
DBName
DBUser
DBPassword
egrep -v "^$|^#" zabbix_server.conf
LogFile=/tmp/zabbix_server.log log日誌的位置,一般默認即可
DBHost=localhost zabbix_server授權時使用ip或名稱,如授權時使用localhost
DBName=zabbix zabbix_server創建並授權的數據庫的名稱
DBUser=zabbix 授權的數據庫的用戶
DBPassword=zabbix 授權的數據庫的密碼
DBSocket=/tmp/mysql.sock MySQL的sock的位置,如數據庫是編譯安裝,一般默認即可,如yum安裝,請確認位置;不使用註釋即可
DBPort=3306 使用的mysql數據庫的端口;無特殊要求,註釋即可,默認3306
StartPollers=30 zabbix-server的進程數,設置多少取決於服務器的性能和監控的數量,主要看內存大小
StartDiscoverers=5 zabbix提示進程繁忙時可修改此參數,最大可達250,但一般1-5左右,值越大越消耗cpu性能
CacheSize=8G zabbix-server可用的緩存,用於存儲host,item,trigger數據
Timeout=4 zabbix-server的檢測超時時間,單位爲秒
FpingLocation=/usr/local/sbin/fping 安裝的fping路徑
LogSlowQueries=3000 多慢的數據庫查詢將會被記錄,單位爲毫秒,0表示不記錄慢查詢。只有在DebugLevel=3時,這個配置纔有效
【5】zabbix-agent操作
zabbix-agent進行安裝
yum -y install zabbix-agent
【6】zabbix-agent配置文件配置
關於agent的配置,主要分爲兩種情況:
zabbix-server/proxy主機的agent
被監控主機的agent
原則:
zabbix-server/proxy主機的agent的配置文件的IP及端口指向自己
zabbix-agent端的配置文件指向zabbix-server或zabbix-proxy的IP及10051端口
必要配置:
Server
ServerActive
Hostname
egrep -v "^$|^#" /etc/zabbix/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid zabbix-agent的pid文件的位置,默認即可
LogFile=/var/log/zabbix/zabbix_agentd.log zabbix-agent的log日誌的位置,一般默認即可
EnableRemoteCommands=0 關閉遠程命令(1:開啓;0:關閉),開啓後可設置觸發條件,觸發遠程命令動作,重啓服務
Server=192.168.92.128 zabbix-agent指向的zabbix-server/proxy的IP地址,本文指向的是zabbix-proxy
StartAgents=8 zabbix-agent的進程數
ServerActive=192.168.92.128:10051 zabbix-agent指向的zabbix-server/proxy的IP地址及端口,本文指向的是zabbix-proxy的
Hostname=zabbix agent01 該zabbix-agent端的名字,要與zabbix-server的web界面,配置的主機名稱相同
Timeout=30 zabbix-agent的檢測超時時間,單位秒
Include=/etc/zabbix/zabbix_agentd.d/ 啓動自定義的key 自定義腳本存放位置
UnsafeUserParameters=1 啓動自定義的key,開啓後可使用自定義的腳本(如不使用請使用默認)
如果是zabbix-server/proxy主機的agent配置,則
Server=127.0.0.1
ServerActive=127.0.0.1:10051
配置完,啓動zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
【7】修改時區
設置zabbix時區爲所需要時區,纔會顯示正確的時間
例如中國一般填寫 Asia/Shanghai
vim /etc/php.ini
date.timezone = Asia/Shanghai
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
三、zabbix的web界面設置及主機添加
請查看下列鏈接:
https://blog.csdn.net/GX_1_11_real/article/details/80872582
四、Grafana安裝
Grafana應安裝在zabbix-server服務器上
Grafana官網鏈接,內含各種官方文檔:
http://docs.grafana.org/installation/rpm/
【1】使用官方安裝包安裝
wget https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm
sudo yum -y localinstall grafana-5.4.2-1.x86_64.rpm
【2】啓動grafana,並設置開機啓動
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server
【3】安裝服務端圖像呈現組件
服務器端圖像是一項可選功能
yum -y install fontconfig freetype* urw-fonts
【4】訪問Grafana
啓動Grafana後,在瀏覽器中輸入http://ip:3000,可訪問(3000爲默認端口,可修改)
默認用戶名:admin,密碼:admin
【5】Grafana插件安裝
<1>獲取可用插件列表
grafana-cli plugins list-remote
<2>安裝zabbix插件
grafana-cli plugins list-remote |grep zabbix
grafana-cli plugins install alexanderzobnin-zabbix-app
<3>重啓grafana,並再次訪問
systemctl restart grafana-server
【6】Grafana的zabbix配置
<1>點擊zabbix圖標,啓用zabbix插件
<2>點擊Enable
<3>點擊Add data source ,添加數據源
<4>點擊zabbix,添加zabbix插件的數據源
<5>配置數據源
Name爲自定義,要可區分
URL爲zabbix的API地址,默認爲:http://zabbix-server的IP/zabbix/api_jsonrpc.php
Username,Password爲zabbix的用戶及對應的密碼(可在zabbix上設置用戶)
其餘的默認即可
<6>點擊 Save&Test ,進行確認
<7>進行查看