zabbix監控mysql主從複製

zabbix監控mysql主從複製
做者:Johnny(yxhbenet@vip.qq.com)
原由:zabbix可能監控到mysql服務的運行狀況,但確不能監控mysql的主從複製是否正常:有時候,同步已經中止,但管理人員殊不知道。

下手處:登錄mysql從服務器,經過執行 mysql> show slave status\G 查看其輸出,便可斷定主從複製是否正常。下面是某個從服務器的輸出:
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.93.16
                  Master_User: rep1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 1752541
               Relay_Log_File: hy-mysql3-relay-bin.000088
                Relay_Log_Pos: 2339
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
這個輸出,最關鍵處就是"Slave_IO_Running: Yes「和「Slave_SQL_Running: Yes」,這兩個值全是"Yes"就代表主從複製正常,不然就是有問題。
操做步驟:
一、在主數據庫服務器增長一個用戶,給予較低的權限,操做爲
mysql > grant Replication client on *.* to    'zabbix'@'%' identified by 'zabbix';   
mysql> flush privileges;
二、登錄從服務器驗證一下,看是否正常。操做爲:
mysql -uzabbix -pzabbix -e "show slave stutas\G"   
三、在從服務器安裝 zabbix_agentd,而後在配置文件zabbix_agentd.conf加入一行
UserParameter=mysql.slave,/opt/scripts/check_mysql_slave |grep OK -c
四、編寫腳本/opt/scripts/check_mysql_slave(這是監控其做用的核心),其內容以下:
#!/bin/sh
declare -a    slave_is
slave_is=($(/usr/local/mysql/bin/mysql -uzabbix -pzabbix    -e "show slave status\G"|grep Running |awk '{print $2}'))
if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]
     then
     echo "OK -slave is running"
     exit 0
else
     echo "Critical -slave is error"
     exit 2
fi

五、修改配置item、trigger,並測試。mysql

相關文章
相關標籤/搜索