您好,登錄后才能下訂單哦!
Zabbix 檢測Mysql數(shù)據(jù)庫的主從同步
在高并發(fā)網(wǎng)站架構(gòu)中,MySQL數(shù)據(jù)庫主從同步是不可或缺的,不過經(jīng)常會發(fā)生由于網(wǎng)絡(luò)原因或者操作錯誤,MySQL主從經(jīng)常會出現(xiàn)不同步的情況,那么如何監(jiān)控MySQL主從同步,也變成檢測網(wǎng)站正常運行的重要環(huán)節(jié)。
MySQL同步功能由3個線程(master上1個,slave上2個)來實現(xiàn),簡單的說就是:master發(fā)送日志一個,slave接收日志一個,slave運行日志一個。
Slave_io_Running:yes
Slave_SQL_Running: yes
這兩個同時為yes時,表示主從同步,有一個變?yōu)閚o,同步失敗
我們需要寫一個腳本,來檢測這兩個參數(shù)的狀態(tài)
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
測試腳本時 出現(xiàn)如下錯誤
Warning: Using a password on the command line interface can be insecure.
2
這時檢測端接受的數(shù)據(jù)是 錯誤和數(shù)據(jù) 無法被檢測端接受
可以在my.cnf 中 [mysqld] 增加mysql 和 password 我們還可以給數(shù)據(jù)庫一個沒有密碼的賬戶
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的時候即為同步出現(xiàn)了問題
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,后面是執(zhí)行的腳本(腳本不要忘了執(zhí)行權(quán)限)
重啟zabbix agent
在zabbix server做測試 看是否可以接受到數(shù)據(jù)
[root@zabbix bin]# ./zabbix_get -s 192.168.2.44 -k "mysql.replication"
2
表示成功
在監(jiān)控界面增加監(jiān)控項和觸發(fā)器
當返回的值小于2時,說明只存在1個YES或0個YES,這時候說明MYSQL主從同步出現(xiàn)異常,即產(chǎn)生報警;
此時在從庫中執(zhí)行stop slave ;
接收到郵件
啟動salve start slave
收到回復(fù)郵件
增加主從監(jiān)控成功
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。