搭建MySQL主從后,很多時(shí)候不知道從的狀態(tài)是否ok,有時(shí)候出現(xiàn)異常不能及時(shí)知道,這里通過(guò)shell腳本結(jié)合zabbix實(shí)現(xiàn)監(jiān)控并告警
一般情況下,在MySQL的從上查看從的運(yùn)行狀態(tài)是通過(guò)Slave_IO_Running線程和Slave_SQL_Running線程是否ok,通過(guò)命令“show slave status\G;”即可查看。所以這里根據(jù)這兩個(gè)值進(jìn)行判斷。
![](/d/20211018/55efa83ff3b6d2becaf60c2060121b51.gif)
agent端腳本編寫(xiě)及配置
說(shuō)明:所有zabbix相關(guān)的腳本我都放在了/etc/zabbix/script/ 目錄里面,下面這些都是在zabbix被監(jiān)控端上操作,并且上面數(shù)據(jù)庫(kù)是屬于MySQL主從的從
1)腳本編寫(xiě)
[root@srt-xt ~]# cd /etc/zabbix/script/
[root@srt-xt /etc/zabbix/script]# cat mysql_slvae_status.sh
#!/bin/bash
#Desc:用于獲取主從同步信息,判斷主從是否出現(xiàn)異常,然后提交給zabbix
#Date: 2019-06-06
#by:Lee-YJ
USER="root"
PASSWD="nae3eabo9naeli1Oov1a"
NAME=$1
function IO {
Slave_IO_Running=`mysql -u $USER -p$PASSWD -e "show slave status\G;" 2> /dev/null |grep Slave_IO_Running |awk '{print $2}'`
if [ $Slave_IO_Running == "Yes" ];then
echo 0
else
echo 1
fi
}
function SQL {
Slave_SQL_Running=`mysql -u $USER -p$PASSWD -e "show slave status\G;" 2> /dev/null |grep Slave_SQL_Running: |awk '{print $2}'`
if [ $Slave_SQL_Running == "Yes" ];then
echo 0
else
echo 1
fi
}
case $NAME in
io)
IO
;;
sql)
SQL
;;
*)
echo -e "Usage: $0 [io | sql]"
esac
2)配置文件修改,編寫(xiě)一個(gè)自配置文件,里面指定上面編寫(xiě)的腳本的路徑
[root@srt-xt ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@srt-xt /etc/zabbix/zabbix_agentd.d]# cat userparameter_mysql_slave.conf
# 獲取MySQL slave狀態(tài)
UserParameter=mysql.slave[*],/etc/zabbix/script/mysql_slvae_status.sh $1
3)重啟zabbix-agent
[root@srt-xt /etc/zabbix/zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
4)在zabbix-server端進(jìn)行測(cè)試,看是否能夠成功獲取到值,通過(guò)上面的腳本,這里為0即表示正常,為1即表示不正常。
[root@xxxxx ~]# zabbix_get -s 218.75.249.55 -k mysql.slave[sql]
0
[root@xxxxx ~]# zabbix_get -s 218.75.249.55 -k mysql.slave[io]
0
server端web配置
1)配置Slave_IO_Running線程監(jiān)控項(xiàng)
![](/d/20211018/00016230e966220555163d79558294f5.gif)
2)配置Slave_SQL_Running線程監(jiān)控項(xiàng)
![](/d/20211018/60f2825cb10a9e332b9e768f4b196dd5.gif)
3)配置Slave_IO_Running線程的觸發(fā)器
![](/d/20211018/d5f4f03272d707cbd03b2b309044451b.gif)
4)配置Slave_SQL_Running線程的觸發(fā)器
![](/d/20211018/2621a7e039d1e2e160fdb7cf5e69345c.gif)
5)配置觸發(fā)動(dòng)作
![](/d/20211018/892ffc0a5e61c7d1370a56b6b0ee2984.gif)
配置動(dòng)作中需要執(zhí)行的動(dòng)作(發(fā)送消息給管理員)
![](/d/20211018/60e8a9f387d19263163a3b83b02d4bad.gif)
配置狀態(tài)恢復(fù)時(shí)的操作(同樣發(fā)送消息給管理員)
![](/d/20211018/aaa49bb022b4c73ca9967d9e52b9a76a.gif)
最終查看監(jiān)控項(xiàng)
![](/d/20211018/97bd4c4fa8defcf517ead7079180d158.gif)
至此,就完成了MySQL主從中從的狀態(tài)監(jiān)控了。
總結(jié)
以上所述是小編給大家介紹的zabbix監(jiān)控MySQL主從狀態(tài)的方法詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
您可能感興趣的文章:- zabbix 監(jiān)控mysql的方法
- Zabbix實(shí)現(xiàn)監(jiān)控多個(gè)mysql過(guò)程解析
- zabbix監(jiān)控Nginx/Tomcat/MySQL的詳細(xì)教程
- zabbix通過(guò)percona插件監(jiān)控mysql的方法
- Zabbix 2.4.5自帶MySQL監(jiān)控的配置使用教程
- 安裝配置Zabbix來(lái)監(jiān)控MySQL的基本教程
- zabbix監(jiān)控mysql的實(shí)例方法