Zabbix檢測Mysql數據庫的主從同步
Zabbix 檢測MySQL數據庫的主從同步
成都創新互聯公司于2013年開始,先為雙灤等服務建站,雙灤等地企業,進行企業商務咨詢服務。為雙灤企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
在高并發網站架構中,MySQL數據庫主從同步是不可或缺的,不過經常會發生由于網絡原因或者操作錯誤,MySQL主從經常會出現不同步的情況,那么如何監控MySQL主從同步,也變成檢測網站正常運行的重要環節。
MySQL同步功能由3個線程(master上1個,slave上2個)來實現,簡單的說就是:master發送日志一個,slave接收日志一個,slave運行日志一個。
Slave_io_Running:yes
Slave_SQL_Running: yes
這兩個同時為yes時,表示主從同步,有一個變為no,同步失敗
我們需要寫一個腳本,來檢測這兩個參數的狀態
cat mysql-replication.sh
#!/bin/bash
mysql -uroot
-p***-e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
測試腳本時 出現如下錯誤
Warning: Using a password on the command line interface can be insecure.
2
這時檢測端接受的數據是 錯誤和數據 無法被檢測端接受
可以在my.cnf 中 [mysqld] 增加mysql 和 password 我們還可以給數據庫一個沒有密碼的賬戶
mysql> grant replication client on *.* to 'zabbix'@'localhost';
測試將腳本更改為
#!/bin/bash
mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
測試腳本顯示如下
2
當顯示1或者0的時候即為同步出現了問題
在zabbixagent里面添加監控項
vim /usr/local/zabbix-3.0.4/etc/zabbix_agentd.conf
UserParameter=mysql.replication,
/usr/local/zabbix-3.0.4/bin/mysql-replication
.sh
等號后面的字符串中,逗號前面是Key,后面是執行的腳本(腳本不要忘了執行權限)
重啟zabbix agent
在zabbix server做測試 看是否可以接受到數據
[root@zabbix bin]# ./zabbix_get -s 192.168.2.44 -k "mysql.replication"
2
表示成功
在監控界面增加監控項和觸發器
當返回的值小于2時,說明只存在1個YES或0個YES,這時候說明MYSQL主從同步出現異常,即產生報警;
此時在從庫中執行stop slave ;
接收到郵件
啟動salve start slave
收到回復郵件
增加主從監控成功
分享文章:Zabbix檢測Mysql數據庫的主從同步
URL地址:http://www.xueling.net.cn/article/gjdccp.html