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监控课程课上上机考试:

█ █ 问题1:请监控URL地址 http://10.0.0.151 (或配置host 10.0.0.151 www.etiantian.org,然后监控http://www.etiantian.org

█ 问题1解答参考1:
◇ 1.1在host.cfg中添加

define host{
        use                     linux-server
        host_name               151-oldboytest
        alias                   151-oldboytest
        address                 10.0.0.151
        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-oldboytest,不同名字用逗号隔开。
        }

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

◇ 1.2 在commmand.cfg中添加
# 'check_weburl' command definition
define command{
        command_name    check_weburl
        command_line    $USER1$/check_http  $ARG1$  -w 15 -c 30
        }
提示:也可以不定义命令而直接使用带参数的check_http

◇ 1.3 在service.cfg中添加
define service{
        use                             generic-service
        host_name                       151-oldboytest
        service_description             151_url
        check_command                  check_weburl!-H 10.0.0.151
        #check_command                 check_weburl!-H oldboy.cc -u /checkstatus.jsp
        #check_command                 check_http! -I 10.0.0.151 -w 15 -c 30
        #check_command                 check_tcp!80   ===》这三行注释表示三种不同的方式监控配置方法。
        max_check_attempts      3
        normal_check_interval   1
        retry_check_interval    3
        check_period            24x7
        notification_interval   30
        notification_period     24x7
        notification_options    w,u,c,r
        contact_groups          admins
        process_perf_data       1
        }
提示:service段中的注释,提供了不同的监控思路方法,大家根据需求来选择使用。


█ 问题1解答参考2:手工开发nagiosURL监控插件实操部署过程(主动监控方式)

2 nagios服务器端部署:
◇ 2.1 上传监控脚本到指定目录并设置执行授权可执行权限
[root@nagios-server /]# cd /usr/local/nagios/libexec/ #=====》上传check_url.sh到此目录
[root@nagios-server libexec]# chmod +x check_url.sh

提示:check_url.sh脚本内容见下文

◇ 2.2 手动测试:
[root@nagios-server libexec]# /usr/local/nagios/libexec/check_url.sh
HTTP/1.1 OK

3.修改nagios配置:
◇ 3.1 编辑service.cfg
[root@nagios-server libexec]# cd /usr/local/nagios/etc/objects
[root@nagios-server objects]# vi service.cfg
define service{
        use                             generic-service
        host_name                       151-oldboytest
        service_description             151_url-myself
        check_command                   check_url 
       #check_command                   check_url! http://10.0.0.151 #===脚本改为传参后,service.cfg中的命令调用方法
        max_check_attempts      3
        normal_check_interval   1
        retry_check_interval    3
        check_period            24x7
        notification_interval   30
        notification_period     24x7
        notification_options    w,u,c,r
        contact_groups          admins
        process_perf_data       1
        }

◇ 3.2 编辑commands.cfg
[root@nagios-server objects]# vi commands.cfg

# 'check_url' command definition by oldboy 110717
define command{
        command_name    check_url
        command_line    $USER1$/check_url.sh  #===这里就是我们自己写的插件呦!初始没改进的脚本的部署
       #command_line    $USER1$/check_url.sh $ARG1$ #===这里是将脚本改为传URL参数的command.cfg中的部署:
        }

◇ 3.3 检查语法,重起nagios
[root@nagios-server objects]# /etc/init.d/nagios checkconfig 
#====》这个启动脚本是改过的,可以省取敲一堆字符检查语法的麻烦。
Running configuration check...
...省略部分内容...
Checking misc settings...

Total Warnings: 0  #==》警告不为0,可以忽略
Total Errors:   0  #==》这里为0就OK。

Things look okay - No serious problems were detected during the pre-flight check
 OK.
[root@nagios-server objects]# /etc/init.d/nagios reload #==》reload好于restart
Running configuration check...done.
Reloading nagios configuration...done

◇ 3.4 查看页面监控结果
151_url-myself  OK 07-17-2011 15:19:49 0d 0h 3m 55s 1/3 HTTP/1.1 OK 

 ======自主开发监控weburl的插件脚本======

◇ 4.1 写nagios插件前的几个变量测试
[root@ha2 etc]# cat oldboy.sh
echo $0
PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
echo $PROGNAME
echo $PROGPATH
[root@ha2 etc]# sh /usr/local/nagios/etc/oldboy.sh
/usr/local/nagios/etc/oldboy.sh
oldboy.sh
/usr/local/nagios/etc
提示:大家看明白了么?

nagios监控web/mysql多角度实战分享(一)_第1张图片 

nagios监控web/mysql多角度实战分享(一)_第2张图片


◇ 4.4 测试改进的脚本
[root@nagios-server libexec]# sh /usr/local/nagios/libexec/check_url.sh
Usage:
/bin/sh  check_url.sh url
For example:
/bin/sh check_url.sh http//www.etiantian.org

[root@nagios-server libexec]# sh /usr/local/nagios/libexec/check_url.sh http://www.etiantian.org
HTTP/1.1 OK
[root@nagios-server libexec]# sh /usr/local/nagios/libexec/check_url.sh http://oldboy.blog.51cto.com
HTTP/1.1 OK
 

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

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