上次Zabbix添加了監控MySQL性能,因此此次在其基礎上添加主從監控,文章過程中不在介紹MySQL5.6版本相關細節處理,具體可以參考上次文章:
http://ygqygq2.blog.51cto.com/1009869/1797986
1. Zabbix添加自定義監控流程
Zabbix agentd添加自定義key;
自定義key調用的是獲取監控數據源腳本等;
添加Zabbix主機數據源模板,主機鏈接模板;
2. 具體步驟
1. 編寫監控mysql主從腳本
vim /usr/local/zabbix/shell/check_mysql_slave.sh
#!/usr/bin/env bash #Create by zijin 2014.09.28 ##Need "grant REPLICATION CLIENT on *.* to zabbix_select@localhost identified by 'zabbix'" #Mysql5.6 # mysql_config_editor set --login-path=local --host=localhost --user=zabbix_select -p MYSQL_SOCK="/tmp/mysql.sock" MYSQL_PWD="zabbix" MYSQL="/usr/local/mysql/bin/mysql" MYSQL_ADMIN="${MYSQL}admin" ARGS=1 if [ $# -ne "$ARGS" ];then echo "Please input one arguement:" fi case $1 in Slave_Running) slave_is=($(sudo ${MYSQL} --login-path=local -S $MYSQL_SOCK -e "show slave status\G"|egrep "\bSlave_.*_Running\b"|awk '{print $2}')) if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ];then result="1" else result="0" fi echo $result ;; Seconds_Behind) result=$(sudo ${MYSQL} --login-path=local -S $MYSQL_SOCK -e "show slave status\G"|egrep "\bSeconds_Behind_Master\b"|awk '{print $2}') echo $result ;; *) echo "Usage:$0(Slave_Running|Seconds_Behind)" ;; esac
2. mysql賦權
grant REPLICATION CLIENT on *.* to zabbix_select@localhost identified by 'zabbix';
3. 查看腳本執行效果
[root@mysql64 shell]# chmod a+x check_mysql_slave.sh [root@mysql64 shell]# sh check_mysql_slave.sh Slave_Running 1 [root@mysql64 shell]# sh check_mysql_slave.sh Slave_Seconds 0 [root@mysql64 shell]#
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/check_mysql_slave_key
UserParameter=mysql.slave[*],/usr/local/zabbix/shell/check_mysql_slave.sh $1 $2
5. 添加Zabbix監控MySQL主從模板
從Zabbix頁面導入模板Template App MySQL Slave.xml,如下鏈接爲模板地址:
https://github.com/ygqygq2/zabbix/blob/master/%E6%A8%A1%E6%9D%BF/Template%20App%20MySQL%20Slave.xml
6. 主機鏈接模板
7. 查看結果
在Zabbi Server端查看:
[root@zabbix-server ~]# /usr/local/zabbix/bin/zabbix_get -s mysql-slave-IP -k "mysql.slave[Seconds_Behind]" 0 [root@zabbix-server ~]# /usr/local/zabbix/bin/zabbix_get -s mysql-slave-IP -k "mysql.slave[Slave_Running]" 1
在頁面上查看: