首頁  >  文章  >  系統教程  >  大神教你自動發現監控mysql從庫狀態

大神教你自動發現監控mysql從庫狀態

WBOY
WBOY原創
2024-08-13 11:40:251143瀏覽

mysql從函式庫的狀態主要監控的值有三個,分別為Slave SQL Running,Slave IO Running和Seconds Behind Master。只有當Slave SQL Running,Slave IO Running為yes,然後Seconds Behind Master為0的時候,從庫才有可能運行在正常的狀態下(有時候這三個值都符合要求,從庫資料也會有問題)。先看下監控的效果:

大神教你自動發現監控mysql從庫狀態

由於是自動發現監控的mysql從庫狀態,因此,先貼下自動發現規則的配置,使用mysql.slave.discover去獲取mysql從庫的端口,在從庫安裝zabbix agentd,並添加配置( UserParameter=mysql.slave.discover,python /usr/local/zabbix/discover_mysql_slave.py):

大神教你自動發現監控mysql從庫狀態

其中,自動發現mysql連接埠的python腳本請見:https://my.oschina.net/zhuangweihong/blog/785919 此文章有類似的腳本。自動發現完mysql的連接埠後,所使用的探測項目原型如下,使用三個原型去取得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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn