http://blog.163.com/ly_89/blog/static/18690229920111129113543770/
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、網(wǎng)站設(shè)計與策劃設(shè)計,新?lián)峋W(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:新?lián)岬鹊貐^(qū)。新?lián)嶙鼍W(wǎng)站價格咨詢:18980820575作為一名運維人員,對于 Mysql 的主從同步我們并不陌生。我們?nèi)绾文艿弥鲝膸焓欠裨趯崟r的同步呢?每隔一分鐘登錄到數(shù)據(jù)庫到數(shù)據(jù)庫執(zhí)行 show slave status\G 顯然是不靠譜。不要忘記我們有監(jiān)控之神 nagios,我們可以通過 nagios 來監(jiān)控主從庫的同步狀態(tài)。那如何來實現(xiàn)nagios 監(jiān)控 mysql 主從同步狀態(tài)呢?
我們都知道登錄到 mysql 數(shù)據(jù)庫之后,通過 show slave status\G 查看其輸出,即可以判斷主從復(fù)制是否正常,下面來看某個服務(wù)器懂得輸出
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)
這個輸出,最關(guān)鍵處就是"Slave_IO_Running: Yes“和“Slave_SQL_Running: Yes”,這兩個值全是"Yes"就表明主從庫同步成功
##############################################################################################
nagios 監(jiān)控 Mysql 主從同步的操作步驟:
第一部分:客戶端配置
1. 編寫腳本/usr/local/nagios/libexec/check_mysql_slave (這個腳本是監(jiān)控mysql 主從同步狀態(tài)的核心)
#!/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 加入監(jiān)控 mysql 主從狀態(tài)同步的命令
command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave |
3. 啟動 nrpe 服務(wù),并檢查其端口是否監(jiān)聽
[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 服務(wù)手動執(zhí)行該腳本
[root@Slave_sql libexec]# ./check_mysql_slave OK C2-slave is running |
5. 關(guān)閉 mysql 服務(wù)手動執(zhí)行該腳本
[root@Slave_sql libexec]# ./check_mysql_slave Critical C2-slave is error |
第二部分:服務(wù)器端的配置:
1. 編輯 /usr/local/nagios/etc/objects/host.cfg 定義監(jiān)控的 client
define host { use linux-server |
2. 編輯 /usr/local/nagios/etc/objects/ service.cfg
define service { max_check_attempts 2 |
3. 重啟 nagios 和 apache 服務(wù)
[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 監(jiān)控圖像
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。