zabbix監控mysql主從同步
Slave_IO_Running|Slave_SQL_Running狀態是否都為Yes來判斷主從是否正常。
MySQL同步功能由3個線程(master上1個,slave上2個)來實現,簡單的說就是:master發送日誌一個,slave接收日誌一個,slave運行日誌一個。
首先,我們解釋一下 show slave status 中重要的幾個參數:
Slave_IO_Running: I/O線程是否被啟動並成功地連接到主服務器上。
Slave_SQL_Running: SQL線程是否被啟動。
Seconds_Behind_Master:本字段是從屬服務器“落後”多少的一個指示。當從屬SQL線程正在運行時(處理更新),本字段為在主服務器上由此線程執行的最近的一個事件的時間標記開始,已經過的秒數。當此線程被從屬服務器I/O線程趕上,並進入閑置狀態,等待來自I/O線程的更多的事件時,本字段為零。總之,本字段測量從屬服務器SQL線程和從屬服務器I/O線程之間的時間差距,單位以秒計。
那麽如何監控從服務器是否正常運行呢?
2,我們可以通過一條命令來獲取主從同步信息:
mysql -uzabbix -p -e ‘show slave status\G‘ |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk ‘{print $2}‘|grep -c Yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
3,創建個Mysql的配置文件,在zabbix_agent安裝目錄下,
在userparameter_mysql.conf文件裏添加最後一行,好處是在獲取主從同步的信息時不會有在命令行上使用密碼下的提示,
UserParameter=mysql.replication,HOME=/etc/zabbix/etc /usr/local/mysql/bin/mysql -e ‘show slave status\G‘ |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk ‘{print $2}‘|grep -c Yes
重啟agent客戶端
在zabbix_server端檢查是否可以獲取主從同步信息,
用腳本方式都會有這樣的提示,
會導致在zabbix會報錯
4,在zabbix server上創建template模版
新建模版Template App MySQL Replication
Configuration|Templates|create templates,只要填寫下Template name,選擇下group即可
在新建Template App MySQL Replication上創建Applications
創建items,key那邊手動填寫mysql.replication
創建triggers觸發器,
點Add,下圖為該triggers觸發器的Expression表達式。當獲取的key值不為2時報警
添加Graphs
到Monitoring--Graphs查看監控圖表
zabbix監控mysql主從同步