您好,登錄后才能下訂單哦!
http://blog.163.com/ly_89/blog/static/18690229920111129113543770/
作為一名運維人員,對于 Mysql 的主從同步我們并不陌生。我們如何能得知主從庫是否在實時的同步呢?每隔一分鐘登錄到數據庫到數據庫執行 show slave status\G 顯然是不靠譜。不要忘記我們有監控之神 nagios,我們可以通過 nagios 來監控主從庫的同步狀態。那如何來實現nagios 監控 mysql 主從同步狀態呢?
我們都知道登錄到 mysql 數據庫之后,通過 show slave status\G 查看其輸出,即可以判斷主從復制是否正常,下面來看某個服務器懂得輸出
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.117.251
Master_User: test1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000008
Read_Master_Log_Pos: 16755097
Relay_Log_File: Slave_sql-relay-bin.000728
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000008
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 16755097
Relay_Log_Space: 235
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
這個輸出,最關鍵處就是"Slave_IO_Running: Yes“和“Slave_SQL_Running: Yes”,這兩個值全是"Yes"就表明主從庫同步成功
##############################################################################################
nagios 監控 Mysql 主從同步的操作步驟:
第一部分:客戶端配置
1. 編寫腳本/usr/local/nagios/libexec/check_mysql_slave (這個腳本是監控mysql 主從同步狀態的核心)
#!/bin/sh slave_is=($(/usr/local/mysql/bin/mysql -uroot -pabc -e "show slave status\G"|grep Running |awk '{print $2}')) if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ] then echo "OK C2-slave is running" exit 0 else echo "Critical C2-slave is error" exit 2 fi |
2. 編輯 /usr/local/nagios/libexec/etc/nrpe.cfg 加入監控 mysql 主從狀態同步的命令
command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave |
3. 啟動 nrpe 服務,并檢查其端口是否監聽
[root@Slave_sql libexec]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d [root@Slave_sql libexec]# netstat -npl | grep nrpe tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 27500/nrpe |
4. 啟動 mysql 服務手動執行該腳本
[root@Slave_sql libexec]# ./check_mysql_slave OK C2-slave is running |
5. 關閉 mysql 服務手動執行該腳本
[root@Slave_sql libexec]# ./check_mysql_slave Critical C2-slave is error |
第二部分:服務器端的配置:
1. 編輯 /usr/local/nagios/etc/objects/host.cfg 定義監控的 client
define host { use linux-server |
2. 編輯 /usr/local/nagios/etc/objects/ service.cfg
define service { max_check_attempts 2 |
3. 重啟 nagios 和 apache 服務
[root@node2 objects]# /etc/init.d/nagios restart Running configuration check...done. Stopping nagios: done. Starting nagios: done. [root@node2 objects]# /etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] |
查看 nagios 監控圖像
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。