nagios监控web/mysql多角度实战分享(二 )

nagios监控web/mysql多角度深度实战部署过程分享(二)

#########################################################
#《老男孩linux运维高薪就业培训中心》
#nagios监控课程课上上机考试:
#date:2011-07-17
#作者:老男孩---《老男孩linux就业培训中心 》
#QQ:31333741 MAIL:[email protected]
#linux运维技术交流群:45039636   
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即将开放)
#pblog:http://blog.etiantian.org
##########################################################

《老男孩linux运维高薪就业培训中心》-nagios监控课程课上上机考试:


� �问题2:假如从nagios服务器可以通过命令 mysql -utest -ptest  -S /data/3306/mysql.sock -h 10.0.0.16 连接mysql服务
        1.请分别使用主动及被动方式监控mysql服务是否正常。
        2.请自行开发插件实现对MYSQL主动及被动的监控

##########################
�� 被动方式监控服务的配置方法
##########################
被动方式监控mysql服务的配置方法

一、客户端client(被监控的mysql服务器):

1.调试check_mysql命令

� 1.1 进入被监控的mysql服务器,登陆到mysql中,执行行下面命令建立测试帐号帐户供监控使用
[root@nagios-client objects]# mysql -uroot -p -S /data/3306/mysql.sock
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.56-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant select on test.* to passivemonitor@'localhost' identified by 'oldboy123';
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
提示:
1.用被动方式监测在授权时可以尽量的小。比如只给localhost.
2.有关mysql的grant命令请大家查阅mysql相关文档,或参考老男的相关数据库教案或文档

� 1.2进入nagios libexec插件目录,测试check_mysql插件。
[root@nagios-client etc]# /usr/local/nagios/libexec/check_mysql -upassivemonitor -p oldboy123 -s /data/3306/mysql.sock  
Uptime: 5594  Threads: 1  Questions: 422  Slow queries: 0  Opens: 11  Flush tables: 1  Open tables: 6  Queries per second avg: 0.075

� 1.3 编辑nrpe.cfg,在结尾加入如下内容:
command[check_mysql]=/usr/local/nagios/libexec/check_mysql -upassivemonitor -p oldboy123 -s /data/3306/mysql.sock -H localhost
提示:这里这里假设你mysql服务客户端nrpe的已正确安装。

� 1.4 重起nrpe:
pkill nrpe && /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d && ps -ef|grep nrpe

二、服务端nagios server的配置:
� 2.1 在nagios中加入如下配置:
[root@nagios-server oldboy]# cat mysql_check.cfg
define service {
        use                             generic-service
        host_name                       151-oldboytest
        service_description             check_mysql-151
        check_command                   check_nrpe!check_mysql
        max_check_attempts      2
        normal_check_interval   4
        retry_check_interval    4
        check_period            24x7
        notification_interval   1200
        notification_period     24x7
        notification_options    w,u,c,r
        contact_groups          admins
        process_perf_data       1
}

� 2.2 检查语法并重起nagios
/etc/init.d/nagios checkconfig #======》修改过的检查语法脚本,比敲一行检查语法命令,舒服多了
/etc/init.d/nagios reload

� 2.3 进入界面查看变化
check_mysql-151  OK 04-24-2011 16:34:05 0d 0h 0m 39s 1/2 Uptime: 998 Threads: 1 Questions: 14 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 6 Queries per second avg: 0.014 


※提示:被动监控方式遇到问题判断及检查办法 首先可在[客户端]执行如下命令检查

/usr/local/nagios/libexec/check_mysql -upassivemonitor -p oldboy123 -s /data/3306/mysql.sock 

如果没问题,再在nagios服务器端通过nrpe检查:
/usr/local/nagios/libexec/check_nrpe -H 10.0.0.151 -c check_mysql 
====》这里的check_mysql就是调用客户端的nrpe中的配置。10.0.0.151为客户端的IP
如果没有,那可能是服务端的配置不对等问题了。这样问题就能被最小化的定位了,排查起来就方便了。

上面几行是本文的重点。

例:
[root@nagios-server objects]# /usr/local/nagios/libexec/check_nrpe -H 172.16.1.35 -c check_load
OK - load average: 0.00, 0.00, 0.00|load1=0.000;15.000;30.000;0; load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;

[root@nagios-server objects]# /usr/local/nagios/libexec/check_nrpe -H 10.0.0.163 -c check_disk
DISK OK - free space: / 4481 MB (62% inode=93%);| /=2681MB;6041;6947;0;7552
这是个从服务端以被动方式通过客户端nrpe的配置取负载及磁盘数据,这个命令很典型。

 

##########################
��主动方式监控服务的配置方法
##########################
主动方式监控MYSQL服务的配置方法

提示:以下完全在nagios服务器端操作

� 1.首先来调试check_mysql命令
[root@nagios-server /]# cd /usr/local/nagios/libexec/
[root@ha1 libexec]# ./check_mysql -utest -ptest -s /data/3306/mysql.socket -H 10.0.0.16
Uptime: 4150  Threads: 1  Questions: 13  Slow queries: 0  Opens: 11  Flush tables: 1  Open tables: 6  Queries per second avg: 0.003

提示:check_mysql具体用法可执行./check_mysql -h 查看

� 2.在命令行调试正确后,我们来编辑command.cfg,定义mysql服务检查命令
# 'check_mysql' command definition
define command{
        command_name    check_mysql #======》这个名称会在service.cfg中被调用。
        command_line    $USER1$/check_mysql -utest -ptest -s /data/3306/mysql.socket -H 10.0.0.16 #======》这里就是实际的操作命令了。
        }

� 3.编辑host.cfg配置文件,增加如下内容
# Define hosts
#written by oldboy
#qq 31333741
define host{
        use                     linux-server
        host_name               151-oldboymysql
        alias                   151-oldboymysql
        address                 10.0.0.16
        process_perf_data       1
        }

# Define an optional hostgroup for Linux machines

define hostgroup{
        hostgroup_name  linux-servers
        alias           Linux Servers
        members         ldap-master,151-oldboytest,151-oldboymysql
        }

#graphic for hosts create by (oldboy)!
define hostextinfo {
        host_name             ldap-master,151-oldboytest,151-oldboymysql
        action_url            /nagios/pnp/index.php?host=$HOSTNAME$ #======》主机增加太阳图标,即出图。
}
提示:如果没配好PNP服务,上面的hostextinfo 段不需要配


� 4.编辑服务配置service.cfg
define service {
        use                             generic-service
        host_name                       151-oldboymysql    #======》这里使用host.cfg中定义的配置
        service_description             check_mysql
        check_command                   check_mysql  #======》这里是调用command.cfg中的check_mysql
        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
        action_url            /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
 #======》监控mysql服务增加太阳图标,即出图。
}

� 5.检查语法并重起nagios
/etc/init.d/nagios checkconfig  #======》修改过的检查语法脚本,比敲一行检查语法命令,舒服多了
/etc/init.d/nagios reload

� 6.进入界面查看变化
151-oldboymysql check_mysql  OK 07-17-2011 11:16:22 0d 0h 9m 3s 1/2 Uptime: 4368 Threads: 1 Questions: 18 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 6 Queries per second avg: 0.004 
截图:
提示:如果没有check_mysql,可以从老师的安装包中找到,然后yum install mysql* -y 执行mysql相关包安装。
      如果还不行,那就需要重新安装nagios-plugin插件包。

提示:主动方式遇到遇到问题判断及检查办法
[root@nagios-server libexec]# ./check_http -I 10.0.0.151 -w 15 -c 30
HTTP OK HTTP/1.1 200 OK - 266 bytes in 0.004 seconds |time=0.003504s;15.000000;30.000000;0.000000 size=266B;;;0

[root@nagios-server libexec]# ./check_http -I www.baidu.com -w 15 -c 30
HTTP OK HTTP/1.1 200 OK - 8073 bytes in 0.112 seconds |time=0.111934s;15.000000;30.000000;0.000000 size=8073B;;;0
####################################################################################

##########################
��手工开发脚本监控mysql服务的配置方法
� 1、check_mysql通用脚本如下
##########################
#!/bin/sh
############################################
#     this script function is :             #
#     check_mysql                             #
#     Create by oldboy 2011-07-17           #
#     mail:[email protected] qq:31333741  #
############################################
PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
. $PROGPATH/utils.sh


� 部署过程就不多费笔墨了,大家可以参考WEB手工开发插件的部分,
如果有不会的,告诉我,我以后补上。
nagios监控web/mysql多角度深度实战部署过程分享(二)完。

请关注 nagios监控web/mysql多角度深度实战部署过程分享(三)

你可能感兴趣的:(http,mysql,nagios,nagios实战,深度多角度nagios监控)