標籤:zabbix 檢測mysql資料庫的主從同步
Zabbix 檢測Mysql資料庫的主從同步
在高並髮網站架構中,MySQL資料庫主從同步是不可或缺的,不過經常會發生由於網路原因或者操作錯誤,MySQL主從經常會出現不同步的情況,那麼如何監控MySQL主從同步,也變成檢測網站正常啟動並執行重要環節。
MySQL同步功能由3個線程(master上1個,slave上2個)來實現,簡單的說就是:master發送日誌一個,slave接收日誌一個,slave作業記錄一個。
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8B/8B/wKiom1hQxt2CfwSzAAAriXxKHZM546.png-wh_500x0-wm_3-wmp_4-s_1757655779.png" title="1.png" alt="wKiom1hQxt2CfwSzAAAriXxKHZM546.png-wh_50" />
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 -uroot -p密碼
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的時候即為同步出現了問題
在
zabbix
agent裡面添加監控項
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做測試 看是否可以接受到資料
[[email protected] bin]# ./zabbix_get -s 192.168.2.44 -k "mysql.replication"
2
表示成功
在監控介面增加監控項和觸發器
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8B/8B/wKiom1hQywCB0SYmAABP3F_wycQ981.png-wh_500x0-wm_3-wmp_4-s_756616328.png" title="2.png" alt="wKiom1hQywCB0SYmAABP3F_wycQ981.png-wh_50" />
當返回的值小於2時,說明只存在1個YES或0個YES,這時候說明MYSQL主從同步出現異常,即產生警示;
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/8B/87/wKioL1hQywGRxrljAABcn0wNro0164.png-wh_500x0-wm_3-wmp_4-s_711028956.png" title="3.png" alt="wKioL1hQywGRxrljAABcn0wNro0164.png-wh_50" />
此時在從庫中執行stop slave ;
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/8B/87/wKioL1hQzBjhPT44AAAIM6evhtw834.png-wh_500x0-wm_3-wmp_4-s_3278374060.png" title="R62)D(_8B]ZMMH`GM$F5W7H.png " alt="wKioL1hQzBjhPT44AAAIM6evhtw834.png-wh_50" />
接收到郵件
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/8B/8B/wKiom1hQzDaT3-ChAABZuxuArXs376.png-wh_500x0-wm_3-wmp_4-s_1965624742.png" title="4.png" alt="wKiom1hQzDaT3-ChAABZuxuArXs376.png-wh_50" />
啟動salve start slave
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8B/87/wKioL1hQzHSyMbcwAAAIOeQJJlY496.png-wh_500x0-wm_3-wmp_4-s_3105317854.png" title="9.png" alt="wKioL1hQzHSyMbcwAAAIOeQJJlY496.png-wh_50" />
收到回複郵件
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8B/87/wKioL1hQzLuxhShxAABP220h8LI190.png-wh_500x0-wm_3-wmp_4-s_1948469722.png" title="100.png" alt="wKioL1hQzLuxhShxAABP220h8LI190.png-wh_50" />
增加主從監控成功
Zabbix 檢測Mysql資料庫的主從同步