mysql 从库状态_大神教你自动发现监控mysql从库状态
導讀
zabbix從庫如果復制有問題,在主庫機器有問題的時候,切為主就會導致數據的丟失。或者主從分離的時候,如果從庫出現延時狀態的話,會導致前端頁面展示的數據不是為最新的數據。因此,監控mysql從庫的狀態是必要的。
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 从库状态_大神教你自动发现监控mysql从库状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: icmp报文格式_TCP/IP(二):I
- 下一篇: hm编码工具使用_HM集团旗下最高端品牌