nagios監控web/mysql多角度實戰分享(三)

nagios監控web/mysql多角度深度實戰部署過程分享(三)mysql

#########################################################
#《老男孩linux運維高薪就業培訓中心》
#nagios監控課程課上上機考試:
#date:2011-07-17
#做者:老男孩---《老男孩linux就業培訓中心 》
#QQ:31333741 MAIL:oldboy521@hotmail.com
#linux運維技術交流羣:45039636   
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即將開放)
#pblog:http://blog.etiantian.org
##########################################################linux

《老男孩linux運維高薪就業培訓中心》-nagios監控課程課上上機考試:

問題3:監控mysql主從同步及延遲等。
##############################################################
██使用check_mysql插件 檢查mysql主從同步 (3307爲從庫)[主動方式]
#############################################################
1.調試check_mysql主從同步的命令
mysql> grant super,replication slave on *.* to monitor@'10.0.0.%' identified by 'oldboy123';
Query OK, 0 rows affected (0.00 sec)ios

[root@nagios-server libexec]#  ./check_mysql -umonitor -p oldboy123 -s /data/3307/mysql.sock -P3307  -H 10.0.0.148 -S
Slave IO: No Slave SQL: Yes Seconds Behind Master: (null)web

2.編輯commands.cfg
# 'check_mysql_slave' command definition
define command{
        command_name    check_mysql_slave
        command_line    $USER1$/check_mysql -umonitor -p oldboy123 -s /data/3307/mysql.sock -P3307  -H 10.0.0.148 -S
        }sql

3.添加檢查mysql同步的服務配置
define service {
        use                             generic-service
        host_name                       015-etiantian-1-2
        service_description             check_mysql_slave
        check_command                   check_mysql_slave
        max_check_attempts      2
        normal_check_interval   4
        retry_check_interval    4
        check_period            24x7
        notification_interval   1440
        notification_period     24x7
        notification_options    w,u,c,r
        contact_groups          admins
        process_perf_data       1
}
4.檢查語法並重起nagios
/etc/init.d/nagios checkconfig
/etc/init.d/nagios reload運維

5.進入界面查看變化
不一樣步狀態時的內容,界面服務那一行爲紅色
check_mysql_slave  CRITICAL 04-24-2011 17:20:11 0d 0h 0m 21s 1/2
Slave IO: No Slave SQL: Yes Seconds Behind Master: (null) ide

同步狀態時的內容,界面服務那一行爲綠色
check_mysql_slave OK 04-24-2011 17:28:11 0d 0h 2m 35s 1/2 Uptime: 182 Threads: 1 Questions: 7 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 6 Queries per second avg: 0.038
Slave IO: Yes Slave SQL: Yes Seconds Behind Master: 0 
提示:咱們也能夠本身寫插件來實現檢查mysql主從同步。
######################################################################linux運維

##############################################################
██使用check_mysql插件 檢查mysql主從同步 (3307爲從庫)[被動方式]
#############################################################
就不重複寫了,參考下 分享一,及分享二 有詳細描述。this


##########################################
██ 人工手寫mysql插件實現監控mysql主從同步
##########################################
一、開發MYSQL主從同步監控腳本以下
[root@nagios-server libexec]# cat check_mysql_replicationv1.0
#!/bin/sh
############################################
#     this script function is :             #
#     check_mysql and mysql repl            #
#     Create by oldboy 2010-11-03           #
#     mail:oldboy521@gmail.com              #
############################################
PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
. $PROGPATH/utils.shspa

print_usage() {
  echo "Usage:"
  echo "/bin/sh  $PROGNAME ip"
  exit 1
}

#$1 ip
if [ $# -ne 1 ];then
  print_usage
fi

#check mysql slave
declare -a slave_is
slave_is=($(mysql -umonitor -p'123' -h $1 -P3307 -e "show slave status\G"|egrep "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'))

if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]
     then
     echo "OK-Slave_IO_Running=${slave_is[0]}; Slave_SQL_Running=${slave_is[1]}"
     exit $STATE_OK
else
     echo "Critical -mysql or mysql slave is error"
     exit $STATE_CRITICA
fi

提示:咱們手寫的以上插件腳本 實際上就至關於 手寫了一個nagios自帶的插件check_mysql
部署方法也能夠是主動或被動模式 部署方法 和上面同樣,這裏就不細說了。看個人實際部署演示。

2.將腳本傳到服務端/usr/local/nagios/libexec下調試
[root@nagios-server libexec]# dos2unix check_mysql_replicationv1.0
dos2unix: converting file check_mysql_replicationv1.0 to UNIX format ...
[root@nagios-server libexec]# chmod 755 check_mysql_replicationv1.0
[root@nagios-server libexec]# ./check_mysql_replicationv1.0
Usage:
/bin/sh  check_mysql_replicationv1.0 ip
[root@nagios-server libexec]# ./check_mysql_replicationv1.0 10.0.0.148
OK-Slave_IO_Running=Yes; Slave_SQL_Running=Yes

3.編輯commands.cfg
# 'check_mysql_replication_script' command definition
define command{
        command_name    check_mysql_slave_from_script
        command_line    $USER1$/check_mysql_replicationv1.0 10.0.0.148
        }

4.增長監控服務
[root@nagios-server oldboy]# cat mysql_replication_from_script.cfg
define service {
        use                             generic-service
        host_name                       015-etiantian-1-2
        service_description             check_mysql_rep01
        check_command                   check_mysql_slave_from_script
        max_check_attempts      1
        normal_check_interval   1
        retry_check_interval    1
        check_period            24x7
        notification_interval   30
        notification_period     24x7
        notification_options    w,u,c,r
        contact_groups          admins
        process_perf_data       1
}

4.檢查語法並重起nagios
/etc/init.d/nagios checkconfig
/etc/init.d/nagios reload

5.進入界面查看變化 check_mysql_rep01  OK 04-24-2011 18:39:40 0d 0h 3m 40s 1/1 OK-Slave_IO_Running=Yes: Slave_SQL_Running=Yes 提示:時間有點緊 本篇細節還不夠,有不明白的,給我留言吧。謝謝你們瀏覽啊。

相關文章
相關標籤/搜索