mysql從函式庫的狀態主要監控的值有三個,分別為Slave SQL Running,Slave IO Running和Seconds Behind Master。只有當Slave SQL Running,Slave IO Running為yes,然後Seconds Behind Master為0的時候,從庫才有可能運行在正常的狀態下(有時候這三個值都符合要求,從庫資料也會有問題)。先看下監控的效果:
由於是自動發現監控的mysql從庫狀態,因此,先貼下自動發現規則的配置,使用mysql.slave.discover去獲取mysql從庫的端口,在從庫安裝zabbix agentd,並添加配置( UserParameter=mysql.slave.discover,python /usr/local/zabbix/discover_mysql_slave.py):
其中,自動發現mysql連接埠的python腳本請見:https://my.oschina.net/zhuangweihong/blog/785919 此文章有類似的腳本。自動發現完mysql的連接埠後,所使用的探測項目原型如下,使用三個原型去取得mysql從函式庫的三個需要監控的值:
其中所取得的鍵值需要在從庫agent中新增配置,然後重新啟動agentd:
UserParameter=mysql.slave.status[*],sh /usr/local/zabbix/check_mysql_slave.sh -u xxx-p xxx -P $1 -k $2 2>/dev/null
最後就看下/usr/local/zabbix/check_mysql_slave.sh腳本,如下:
#!/bin/sh while getopts "u:p:P:k:" opt do case $opt in u ) user=$OPTARG;; p ) password=$OPTARG;; P ) port=$OPTARG;; k ) key=$OPTARG;; ? ) echo 'parameter is wrong!' exit 1;; esac done if [ ! "${user}" ] || [ ! "${password}" ] || [ ! "${port}" ] || [ ! "${key}" ];then echo "parameter is null" exit 1 fi mysql -u ${user} -p${password} -h 127.0.0.1 -P${port} -e "show slave status\G"|grep "${key}\:"|awk '{pr
以上是大神教你自動發現監控mysql從庫狀態的詳細內容。更多資訊請關注PHP中文網其他相關文章!