主機 | 操作系統 | IP | 主要軟件 |
服務器 | Centos 7.6(X86_64) | 172.20.77.201 | mysql-5.7.19.tar.gz |
客戶機 | Centos 7.6(X86_64) | 172.20.77.202 | zabbix-4.0.2.tar.gz(agnetd端) |
zabbix server服務端的安裝與配置
1.下載zabbix server源碼包
[root@localhost src]# wget -O zabbix-4.0.4.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz/download
2.安裝依賴包
[root@localhost src]# yum install -y wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC libevent-devel mysql-devel libxml2-devel libssh2-devel OpenIPMI-devel java-1.8.0-openjdk-devel openldap-devel curl-devel unixODBC-devel -y --skip-broken
3.解壓zabbix源碼包
[root@localhost src]# tar -zxvf zabbix-4.0.4.tar.gz
4.配置編譯環境
[root@localhost zabbix-4.0.4]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-ldap --with-libcurl --with-iconv
5.編譯安裝
[root@localhost zabbix-4.0.4]# make install
6.查看安裝zabbix的版本
[root@localhost zabbix]# /usr/local/zabbix/sbin/zabbix_server -V
zabbix_server (Zabbix) 4.0.4
7.創建數據庫(數據庫在前面己經安裝好了,這里就不做講解)
[root@localhost zabbix-4.0.4]# mysql -uroot -p12346
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'zabbix@123456'; #設置zabbix用戶訪問數據庫zabbix的權限
mysql>flush privileges;
8.導入數據表
[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/schema.sql
[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/images.sql
[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/data.sql
9.創建啟動zabbix服務的用戶
[root@localhost zabbix-4.0.4]# groupadd --system zabbix
[root@localhost zabbix-4.0.4]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin zabbix
10.創建日志目錄
[root@localhost zabbix-4.0.4]# mkdir -p /usr/local/zabbix/logs
11.修改目錄權限所有者
[root@localhost zabbix-4.0.4]# chown -R zabbix:zabbix /usr/local/zabbix
12.修改zabbix_server配置文件
[root@localhost zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_server.conf
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
LogFile=/usr/local/zabbix/logs/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@123456
13.修改zabbix_agentd配置文件
[root@localhost zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1
[root@localhost zabbix-4.0.4]#
11.啟動zabbix_server服務
[root@localhost zabbix-4.0.4]# /usr/local/zabbix/sbin/zabbix_server
查看zabbix啟動服務日志
[root@localhost zabbix-4.0.4]# tail /usr/local/zabbix/logs/zabbix_server.log
報錯如下
110468:20200706:122007.979 database is down: reconnecting in 10 seconds
110468:20200706:122017.981 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
查詢日志文件 /var/lib/mysql/mysql.sock,文件不存在
[root@localhost zabbix-4.0.4]# ll /var/lib/mysql/mysql.sock
ls: cannot access /var/lib/mysql/mysql.sock: No such file or directory
在系統中查找mysql.sock文件:
[root@localhost zabbix-4.0.4]# find / -name mysql.sock
/usr/local/mysql/mysql.sock
知道mysql.sock位置,有2種解決辦法:
a.做一個mysql.sock的軟鏈接
[root@localhost zabbix-4.0.4]# mkdir -p /var/lib/mysql
[root@localhost zabbix-4.0.4]# ln -s /usr/local/mysql/mysql.sock /var/lib/mysql/mysql.sock
重啟mysql服務
[root@localhost zabbix-4.0.4]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service
b.修改zabbix_server.conf中的mysql.sock的配置
[root@localhost zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_server.conf
DBSocket=/usr/local/mysql/mysql.sock
然后重啟zabbix_server服務
12.啟動客戶端服務zabbix_agentd
[root@localhost zabbix-4.0.4]# /usr/local/zabbix/sbin/zabbix_agentd
查看客戶端日志
[root@localhost zabbix-4.0.4]# tail -f /usr/local/zabbix/logs/zabbix_agentd.log
13.設置zabbix服務開機自啟動
復制 zabbix 源程序 misc/init.d/tru64 下的啟動腳本到 /etc/init.d 目錄下
[root@localhost zabbix-4.0.4]# cp /usr/local/src/zabbix-4.0.4/misc/init.d/fedora/core/* /etc/init.d/
#修改啟動腳本使其支持 redhat 的 chkconfig,並修改實際路徑
#修改服務端啟動腳本
[root@localhost zabbix-4.0.4]# vi /etc/init.d/zabbix_server
# Zabbix-Directory
BASEDIR=/usr/local/zabbix #找到此項並修改為zabbix的安裝路徑
#修改客戶端啟動腳本
[root@localhost zabbix-4.0.4]# vi /etc/init.d/zabbix_agentd
# Zabbix-Directory
BASEDIR=/usr/local/zabbix #找到此項並修改為zabbix的安裝路徑
加入開機啟動項
[root@client zabbix-4.0.4]# chkconfig --add zabbix_server #設置chkconfig可以管理zabbix_server
[root@client zabbix-4.0.4]# chkconfig --add zabbix_agentd #設置chkconfig可以管理zabbix_agentd
[root@localhost zabbix-4.0.4]# chkconfig zabbix_server on
[[root@localhost zabbix-4.0.4]# chkconfig zabbix_agentd on
[root@localhost zabbix-4.0.4]# chkconfig --list|grep zabbix
zabbix_agentd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
zabbix_server 0:off 1:off 2:off 3:on 4:on 5:on 6:off
重啟服務
[root@localhost zabbix-4.0.4]# service zabbix_server restart
Restarting zabbix_server (via systemctl): [ OK ]
[root@localhost zabbix-4.0.4]# service zabbix_agentd restart
Restarting zabbix_server (via systemctl): [ OK ]
14.將zabbix WEB服務程序復制到nginx對應的目錄下並修改用戶權限
[root@localhost zabbix-4.0.4]# cp -r frontends/php/* /usr/local/nginx/html/
[root@localhost php]# chown -R nginx:nginx /usr/local/nginx/html/
15.通過瀏覽器配置zabbix服務
#瀏覽器輸入:http://172.20.77.201
#zabbix自動檢查安裝環境是否滿足要求,如果出現不滿足要求的情況,需要進一步的處理。這里看到關於PHP有三個參數預檢沒通過,修改PHP配置文件並重啟php服務
[root@localhost etc]# vim /usr/local/php/etc/php.ini
post_max_size = 16M #修改
max_execution_time = 300 #修改
max_input_time = 300 #修改
date.timezone = Asia/Shanghai #此行有注釋,去注釋並修改
mysqli.default_socket = /var/lib/mysql/mysql.sock #指定php連接mysql的sock路徑
[root@localhost etc]#systemctl restart php-fpm #重啟php服務
#重新刷新index.php頁面,發現所有fail項已經消失,但是還有一個warning存在
提示沒有安裝PHP LDAP模塊,為了不影響后面的功能,現在把這個模塊重新編譯安裝進去:
[root@localhost etc]# cd /usr/local/src/php-7.1.24/ext/
[root@localhost ext]# cd ldap
[root@localhost ldap]# /usr/local/php/bin/phpize #動態編譯 PHP LDAP擴展庫
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
Cannot find autoconf. Please check your autoconf installation and the #報錯提示沒有安裝autoconf
$PHP_AUTOCONF environment variable. Then, rerun this script.
[root@localhost ldap]# yum install -y autoconf #安裝autoconf
[root@localhost ldap]# /usr/local/php/bin/phpize #動態編譯 PHP LDAP擴展庫
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
[root@localhost ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
............................
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
configure: error: Cannot find ldap libraries in /usr/lib. #報錯,提示缺少庫文件
[root@localhost ldap]# cp /usr/lib64/libldap* /usr/lib/
[root@localhost ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap #再次預編譯,成功
[root@localhost ldap]# make&&make install
[root@localhost ldap]# vim /usr/local/php/etc/php.ini
extension=ldap.so #添加此項
[root@localhost ldap]# systemctl restart php-fpm
#重新刷新index.php頁面,發現所有warning項已經消失,點Next繼續下一步
#此處需要配置zabbix連接數據庫的信息,修改完畢點Next繼續下一步
如果提示寫入配置文件失敗,直接下載配置文件到本地再上傳到服務器上
[root@localhost ldap]# rz #將配置文件上傳到服務器
[root@localhost ldap]# mv zabbix.conf.php /usr/local/nginx/html/conf/
#刷新一下頁面,可以看到配置已完成,且配置信息被保存在了/usr/local/nginx/html/conf/zabbix.conf.php文件中,如果后續需要修改配置,可以直接修改此文件。
#點Finish結束初始化
+
#完成網頁配置
#登錄Zabbix網頁,默認賬號Admin/zabbix
#登錄成功界面如下
#如果想切換成中文界面
#此時界面己經切換成中文了
#可以看到己有監控數據的圖形出來了
#發現上圖有些文字顯示中文是亂碼的
#這是因為Zabbix使用的DejaVuSan.ttf字體,不支持中文,導致中文出現亂碼,它存放的位置是在/usr/local/nginx/html/fonts/DejaVuSans.ttf
#解決辦法,使用一個支持中文的字體,如果你手上沒有相關字體的文件,最簡單的辦法就是找Windows系統里面的字體,它的位置一般在C:\Windows\Fonts;
#這里選用常規楷體字(simkai.ttf)上傳至服務器/root目錄下
[root@localhost ~]# ll simkai.ttf
-rw-r--r--. 1 root root 11785184 Jun 11 2009 simkai.ttf
[root@localhost ~]# mv simkai.ttf /usr/local/nginx/html/fonts/
[root@localhost ~]# cd /usr/local/nginx/html/fonts/
[root@localhost fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@localhost fonts]# mv simkai.ttf DejaVuSans.ttf
[root@localhost fonts]# chown nginx:nginx DejaVuSans.ttf
#重新刷新一下頁面,就可以顯示中文了
zabbix客戶端(172.20.77.202)的配置
1.下載zabbix server源碼包
[root@client src]# wget -O zabbix-4.0.4.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz/download
2.安裝依賴包
[root@client src]# yum install -y curl curl-devel net-snmp net-snmp-devel prel-DBI gcc gcc-c++
[root@client src]# useradd -M -s /sbin/nologin zabbix
3.解壓zabbix源碼包
[root@client src]# tar -zxvf zabbix-4.0.4.tar.gz
4.配置編譯環境
[root@client src]# cd zabbix-4.0.4/
[root@client zabbix-4.0.4]# ./configure --prefix=/usr/local/zabbix --enable-agent #客戶端只需要部署agent
5.編譯安裝
[root@client zabbix-4.0.4]#make install
6.設置zabbix_agentd服務開機自啟動
復制 zabbix 源程序 misc/init.d/fedora/core/ 下的啟動腳本到 /etc/init.d 目錄下
[root@client zabbix-4.0.4]# cp /usr/local/src/zabbix-4.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@client zabbix-4.0.4]# vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix #修改為zabbix的安裝路徑
[root@client zabbix-4.0.4]# chkconfig --add zabbix_agentd #添加服務以便chkconfig可以管理zabbix_agentd
[root@client zabbix-4.0.4]# chkconfig zabbix_agentd on #加入開機啟動
[root@client zabbix-4.0.4]# chkconfig --list|grep zabbix
zabbix_agentd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
7.修改zabbix_agentd配置文件
[root@client zabbix-4.0.4]# mkdir -p /usr/local/zabbix/logs
[root@client zabbix-4.0.4]# chown -R zabbix:zabbix /usr/local/zabbix/
[root@client zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=172.20.77.201 #zabbix server地址,可以多個用逗號,分隔
ServerActive=172.20.77.201 #主動監測本機數據並發給zabbix server
Hostname=client
UnsafeUserParameters=1
8.啟動客戶端服務並測試。
[root@client zabbix-4.0.4]#/etc/init.d/zabbix_agentd start
[root@client zabbix-4.0.4]#netstat -tnlp | grep –color zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 37959/zabbix_agentd
9.查看一下錯誤日志
[root@client zabbix-4.0.4]# tail -n 5 /usr/local/zabbix/logs/zabbix_agentd.log
38417:20200710:045201.506 agent #3 started [listener #2]
38418:20200710:045201.507 agent #4 started [listener #3]
38419:20200710:045201.507 agent #5 started [active checks #1]
38415:20200710:045201.508 agent #1 started [collector]
38419:20200710:045201.509 active check configuration update from [172.20.77.201:10051] started to fail (cannot connect to [[172.20.77.201]:10051]: [113] No route to host)
#日志顯示到zabbix服務端網絡不可達,zabbix_agentd啟動成功,應該是服務端防火牆攔截了
#服務端防火牆放行10051端口
[root@localhost fonts]# firewall-cmd --permanent --add-port=10051/tcp
[root@localhost fonts]# firewall-cmd --reload
#重啟zabbix_agentd服務並再次查看一下錯誤日志
[root@client zabbix-4.0.4]# service zabbix_agentd restart
[root@client zabbix-4.0.4]# tail -n 5 /usr/local/zabbix/logs/zabbix_agentd.log
38814:20200710:051049.445 agent #2 started [listener #1]
38815:20200710:051049.445 agent #3 started [listener #2]
38816:20200710:051049.445 agent #4 started [listener #3]
38817:20200710:051049.446 agent #5 started [active checks #1]
38813:20200710:051049.448 agent #1 started [collector]
#此時可以看到己經恢復正常了
PS:如果重啟zabbix_agentd服務日志出現如下報錯
[root@client zabbix-4.0.4]# tail -f /usr/local/zabbix/logs/zabbix_agentd.log
8138:20210219:000240.517 active check configuration update from [172.20.77.201:10051] started to fail (ZBX_TCP_READ() timed out)
[root@client ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
Timeout=3 #修改此項,默認值為3秒,修改范圍1-30秒,適當調大點可解決
Zabbix服務端管理后台的配置
1、服務端測試到客戶的通訊是否正常
在zabbix的服務端執行下面的命令測試與客戶端是否通訊
[root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 172.20.77.202 -p10050 -k system.uname
zabbix_get [38139]: Get value error: cannot connect to [[172.20.77.202]:10050]: [113] No route to host
#提示網絡不可達,應該是客戶端的防火牆攔截了
#客戶端防火牆開放10050端口即可
[root@client zabbix-4.0.4]# firewall-cmd --permanent --add-port=10050/tcp
[root@client zabbix-4.0.4]# firewall-cmd --reload
#再次測試就正常了
[root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 172.20.77.202 -p10050 -k system.uname
Linux client.com.cn 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 #可以獲取客戶機系統信息,證明通訊正常
2、添加遠程監控的客戶機
#為監控的客戶機添加模板
可以看到,己經配置成功了,如下圖
#添加監控項,在添加主機中,已經添加了一個模板,即Template OS Linux (Template App Zabbix Agent)
,可以看看這個模板具體是監控了什么。一般來說是夠用的,如有特殊的監控內容,可以添加監控項。
#頁面下拉可以看到具體的細項
#設置自動發現規則
#可以修改發現的時間間隔
#將以前的更新時間間隔1h改成10s
#設置觸發器
#自定義繪圖顏色
配置zabbix監控apache服務
#客戶機apache己提前安裝好
#編輯apache配置文件,增加查看本地服務器狀態頁面
[root@client ~]# vim /etc/httpd/conf/httpd.conf #在行尾增加以下幾行
ExtendedStatus On
<location /server-status>
SetHandler server-status
Order allow,deny
Allow from 127.0.0.1 172.20.77.0/24
</location>
#重啟apache服務,防火牆放行80端口
[root@client ~]# systemctl restart httpd
[root@client ~]# firewall-cmd --permanent --add-port=80/tcp
[root@client ~]# firewall-cmd --reload
[root@client ~]# netstat -tlnp|grep 80
tcp6 0 0 :::80 :::* LISTEN 18303/httpd
#查看網址:http://172.20.77.202/server-status
是否顯示正常,該頁面用於收集客戶端上apache服務的信息。
#下載解壓apache監控腳本
[root@client src]# wget https://github.com/lorf/zapache/archive/master.zip
[root@client src]# unzip master.zip
[root@client src]# cd zapache-master/
[root@client zapache-master]# ls -l
-rw-r--r--. 1 root root 676 Apr 22 2016 httpd-server-status.conf.sample
-rw-r--r--. 1 root root 1780 Apr 22 2016 README.md
-rw-r--r--. 1 root root 224 Apr 22 2016 userparameter_zapache.conf.sample
-rwxr-xr-x. 1 root root 6110 Apr 22 2016 zapache
-rw-r--r--. 1 root root 52258 Apr 22 2016 zapache-template-active.xml
-rw-r--r--. 1 root root 52024 Apr 22 2016 zapache-template.xml
#說明
httpd-server-status.conf.sample 是用於配置server-status的上個步驟已經配置過了
userparameter_zapache.conf.sample 、zapache 關鍵的文件
zapache-template-active.xml zapache-template.xml模板
[root@client zapache-master]# cp zapache /usr/local/bin/
#這里需要修改一下腳本的STATUS_URL的值,不然后面添加模板監控項可能不支持
[root@client zapache-master]# vim /usr/local/bin/zapache
STATUS_URL="http://172.20.77.202/server-status?auto" #修改
#可以用curl測試一下,能否打開上面的鏈接
[root@client src]# curl http://172.20.77.202/server-status?auto
Total Accesses: 3 Total kBytes: 4 Uptime: 4516 ReqPerSec: .000664305 BytesPerSec: .906997 BytesPerReq: 1365.33 BusyWorkers: 1 IdleWorkers: 5 Scoreboard:
[root@client zapache-master]# cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@client zapache-master]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@client zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf
[root@client zabbix_agentd.conf.d]# vi userparameter_zapache.conf
UserParameter=zapache[*],/usr/local/bin/zapache \$1 #修改
#查看腳本用戶是否有執行權限
[root@client zapache-master]# ll /usr/local/bin/zapache
-rwxr-xr-x. 1 root root 6110 Jul 15 09:10 /usr/local/bin/zapache
[root@client zabbix_agentd.conf.d]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #取消注釋,修改路徑,啟用引用此目錄
#重啟zabbix_agentd服務
[root@client zapache-master]# service zabbix_agentd restart
服務端頁面,后台導入模板,使用master.zip
里的zapache-template.xml
作為模板文件,點擊“導入”
為監控的客戶機添加apache監控模板
#查看最新數據,篩選Apache
#勾選幾個想要查看的項目生成圖形
配置zabbix監控mysql服務
#zabbix默認提供了mysql的監控模板。zabbix服務器默認有裝mysql數據庫,這里就用zabbix服務器監控它自己本身的mysql數據庫。
# 對數據庫用戶zabbix,授予在任何對象上的usage權限
# 由於我們是監控的服務端上的mysql服務,在賦予權限的時,zabbix用戶的密碼應該與配置zabbix服務端時mysql用戶zabbix的密碼保持一致。
# 如果監控的不是服務端上的mysql,賦予zabbix用戶時密碼隨意。
[root@server ~]# mysql -uroot -p123456
mysql> grant usage on *.* to zabbix@'%' identified by 'zabbix@123456';
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> exit
Bye
# 復制一份zabbix安裝包中mysql用戶參數配置文件到zabbix的安裝配置目錄下
[root@server ~]# cp /usr/local/src/zabbix-4.0.4/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@server ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #取消注釋,修改並啟用
# 建立數據庫與zabbix的連接
[root@server ~]# vim /usr/local/zabbix/etc/.my.cnf
#Zabbix Agent
[mysql]
host=localhost
user=zabbix
password=zabbix@123456
socket=/usr/local/mysql/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=zabbix@123456
socket=/usr/local/mysql/mysql.sock
# 編輯zabbix中mysql用戶參數配置文件,添加.my.cnf文件的路徑
# 添加mysql的路徑
# 主要看HOME所在行的目錄是否正確。
[root@server ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
1 # For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
2
3 # Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
4 # Key syntax is mysql.status[variable].
5 UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysql -N | awk '{print $$2}'
6
7 # Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
8 # Key syntax is mysql.size[<database>,<table>,<type>].
9 # Database may be a database name or "all". Default is "all".
10 # Table may be a table name or "all". Default is "all".
11 # Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".
12 # Database is mandatory if a table is specified. Type may be specified always.
13 # Returns value in bytes.
14 # 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
15 UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free ";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name= \"$2\"");" | HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysql -N'
16
17 UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysqladmin ping | grep -c alive
18 UserParameter=mysql.version,/usr/local/mysql/bin/mysql -V
# 重啟zabbix_agentd服務
[root@server ~]# service zabbix_agentd restart
#為需要監控的主機添加模板“Template DB MySQL”
#配置好后,在監測-最新數據里就可以看到mysql監控數據了
如果在配置過程中沒有得到想要的結果可以按照以下步驟排錯:
①查看zabbix_server、zabbix_agentd是否已經啟動,有沒有監聽到10050和10051端口號。
②查看zabbix服務端和客戶端的日志文件,看看有沒有報錯。
③查看模板的腳本文件,看腳本里的一些命令能不能正確獲取的數據。apache的是/usr/local/bin/zapache,mysql的是/usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
Zabbix郵件報警配置
郵件服務可以使用系統自帶的郵件服務來發送郵件或者使用其他郵件服務調用第三方郵件來發送警告郵件
這里演示如何調用第三方郵件服務來發送郵件:
第一步:首先安裝mailx組件並配置好能夠通過三方郵箱發送郵件
[root@server ~]# yum install -y mailx
[root@server ~]# vi /etc/mail.rc #編輯mailx的配置文件,在最末尾添加如下信息
set from=example@126.com
set smtp=smtp.126.com
set smtp-auth-user=example@126.com
set smtp-auth-password=你的密碼 注意:此為126郵箱設置的客戶端授權密碼
set smtp-auth=login
[root@server ~]# echo "zabbix test mail" |mailx -s "zabbix" xxxxxx@qq.com #測試郵件是否能發送成功
在zabbix服務端寫郵件發送腳本:
[root@server ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@server alertscripts]# vim sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
[root@server alertscripts]# chown zabbix:zabbix sendmail.sh
[root@server alertscripts]# chmod +x sendmail.sh
修改主配置文件,讓服務讀取到這個腳本:
vim /usr/local/zabbix/etc/zabbix_server.conf
修改:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
為
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
測試發送腳本
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh xxxx@qq.com "測試郵件標題" "測試郵件內容"
[root@server alertscripts]#chmod 777 /tmp/sendmail.log
頁面添加報警配置
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
很多人安裝zabbix 3.0之后,寫的腳本一直發信不成功,手動執行時可以的。
這是因為zabbix3.0之后,可以自定義參數了,所以不寫參數,它是不會傳參數的。
在2.x版本不存在這個問題,默認會傳3個參數。
動作內容如下
名稱:Action-Email
操作
默認接收人:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
默認信息:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
恢復操作
默認接收人:已恢復!{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}
恢復信息:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
測試,關閉 zabbix 客戶端服務 zabbix_agentd
[root@server ~]# systemctl stop zabbix_agentd
觀察結果:延遲比較大,大概要5-10分鍾
可以在日志看送達狀態:
使用Grafana美化Zabbix監控圖表



添加數據源,點兩個位置都可以
但是Grafana默認並沒有zabbix數據源的支持。

下拉至最后找到zabbix
點擊啟用
現在添加數據源就有zabbix的選項了

下拉到最后選擇zabbix
zabbix API地址:http://172.20.77.201/api_jsonrpc.php

啟用儀表盤,上一步驟是在settings中,點擊切換到儀表盤即可開啟。
導入成功:

選擇Linux Server儀表盤看一下效果

點擊Zabbix Template Linux Server
關於Zabbix的源碼包安裝就講到這里,如有錯誤,歡迎留言指正
部分參考文檔來源:
https://www.freesion.com/article/3222464134/
https://blog.csdn.net/u010735147/article/details/80987858
https://blog.csdn.net/weixin_36522099/article/details/107055422?utm_source=app&from=groupmessage