1. 程式人生 > 資料庫 >zabbix監控MySQL主從狀態的方法詳解

zabbix監控MySQL主從狀態的方法詳解

搭建MySQL主從後,很多時候不知道從的狀態是否ok,有時候出現異常不能及時知道,這裡通過shell指令碼結合zabbix實現監控並告警

一般情況下,在MySQL的從上檢視從的執行狀態是通過Slave_IO_Running執行緒和Slave_SQL_Running執行緒是否ok,通過命令“show slave status\G;”即可檢視。所以這裡根據這兩個值進行判斷。

agent端指令碼編寫及配置

說明:所有zabbix相關的指令碼我都放在了/etc/zabbix/script/ 目錄裡面,下面這些都是在zabbix被監控端上操作,並且上面資料庫是屬於MySQL主從的從

1)指令碼編寫

[root@srt-xt ~]# cd /etc/zabbix/script/
[root@srt-xt /etc/zabbix/script]# cat mysql_slvae_status.sh 
#!/bin/bash
#Desc:用於獲取主從同步資訊,判斷主從是否出現異常,然後提交給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)配置檔案修改,編寫一個自配置檔案,裡面指定上面編寫的指令碼的路徑

[root@srt-xt ~]# cd /etc/zabbix/zabbix_agentd.d/ 

[root@srt-xt /etc/zabbix/zabbix_agentd.d]# cat userparameter_mysql_slave.conf 
# 獲取MySQL slave狀態
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端進行測試,看是否能夠成功獲取到值,通過上面的指令碼,這裡為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執行緒監控項

2)配置Slave_SQL_Running執行緒監控項

3)配置Slave_IO_Running執行緒的觸發器

4)配置Slave_SQL_Running執行緒的觸發器

5)配置觸發動作

配置動作中需要執行的動作(傳送訊息給管理員)

配置狀態恢復時的操作(同樣傳送訊息給管理員)

最終檢視監控項

至此,就完成了MySQL主從中從的狀態監控了。

總結

以上所述是小編給大家介紹的zabbix監控MySQL主從狀態的方法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!