環境:mysql
192.168.127.131 主數據庫及zabbix serverweb
192.168.127.130 從數據庫及zabbix clientsql
a.首先給mysql分配一個監控的帳號
數據庫
mysql> vim
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';bash
b.編寫一個腳本
服務器
vim /sh/mysql-replication.sh #!/bin/bash /usr/local/mysql/bin/mysql -uzabbix -pzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
#先用zabbix這個用戶來獲取slave的全部狀態,而後grep出這兩個狀態,而後再輸出第二列,最後查看有幾個Yes狀態的 ,正常狀況下有兩個Yes狀態。
其實你們會發現,這隻有一條命令,但我卻把它寫到了一個腳本里面,這裏我說一下,由於若是你把命令寫到配置文件裏面,每次修改完,你都得重啓agent,因此寫到腳本里面更方便調試修改,這應該是一個好習慣。
c.在agent裏面添加監控項
文件的最後添加以下一行
vim /etc/zabbix_agentd.conf
UserParameter=mysql.replication,/home/zabbix/mysql-replication.sh ##腳本所在的目錄
#等號後面的字符串中,逗號前面是Key,後面是執行的腳本(腳本不要忘了執行權限) ,添加好以後,就重啓agent程序
ide
d.server端測試是否正常測試
zabbix_get -s 192.168.127.130 -p10050 -k "mysql.replication"spa
2
返回2即爲正常
而後在web頁面,添加監控項
觸發器設置
選擇剛纔第一步裏建立的監控項mysql-repelication
最後測試,停掉從服務器的mysql服務,查看是否觸發報警器
最後還能夠在 latest data 裏面查看圖像數據
注意:若是執行zabbix_get -s 192.168.127.130 -p10050 -k "mysql.replication" 或者mysql-replication.sh
返回
Warning: Using a password on the command line interface can be insecure. 2
看似沒有錯誤,不過是不會出圖的,解決辦法是編輯my.cnf這個文件在裏面添加
[client] host=127.0.0.1 user=zabbix password='zabbix'
而後重啓mysql服務,把mysql-replication.sh裏面的用戶名和密碼去掉便可
/usr/bin/mysql -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes