nagios添加监控配置

jopen 8年前

nagios添加一个主机的一些经典定义,拿出来分享下。自己把这些配置写成shell,并用servlet+jsp自动生成shell,方便添加监控。目前监控项目已经有两千多个。

1: nagios添加主机监控配置如下:

    define host{

     use linux-server

     host_name 192.168.1.1

     address 192.168.1.1

    }

    可以定义成一个文件,然后把配置文件加入到nagios.cfg里面,脚本如下:

    cat <<EOF >/usr/local/nagios/etc/objects/192.168.1.1.cfg

    define host{

     use linux-server

     host_name 192.168.1.1

     address 192.168.1.1

    }

    EOF

    echo "cfg_file=/usr/local/nagios/etc/objects/192.168.1.1.cfg" >> /usr/local/nagios/etc/nagios.cfg


2: nagios添加简单的监控,比如ping,监控端口等等无需nrpe的配置:

    define service{

     use generic-service

     host_name 192.168.1.1

     service_description Check Port 80

     check_command check_tcp!80

    }

    也可以写成脚本自动添加到主机的配置中,个人习惯一个主机中的所有监控项目在一个配置文件里面,好check。

    cat <<EOF >>/usr/local/nagios/etc/objects/192.168.1.1.cfg

    define service{

     use generic-service

     host_name 192.168.1.1

     service_description Check Port 80

     check_command check_tcp!80

    }

    EOF


3: nagios添加调用远程nrpe的配置,这个需要使用check_nrpe去调用,监控远程主机负载、磁盘情况等等。可以直接上脚本了,上面两个是举例,例子在脚本里面都有:

    cat <<EOF >>/usr/local/nagios/etc/objects/192.168.1.1.cfg

    define service{

     use generic-service

     host_name 192.168.1.1

     service_description Load Average

     check_command check_nrpe!check_load

    }

    EOF


4: 另外,nagios添加主机组的配置也是比较常见的,因为这个让人看监控情况看起来比较直观,也是直接上脚本了。比如你想定义一个web组,web组有两台主机分别是192.168.1.1和192.168.1.2,个人比较习惯一个组定义一个配置文件:

    cat <<EOF >/usr/local/nagios/etc/objects/web.cfg

    define hostgroup{

     hostgroup_name web

     alias web

     members  192.168.1.1,192.168.1.2

    }

    EOF

    echo "cfg_file=/usr/local/nagios/etc/objects/web.cfg" >>/usr/local/nagios/etc/nagios.cfg


5: nagios添加联系人也是非常常见的,配置如下,这个一般需求没那么多,都是直接修改contact.cfg配置文件。先定义联系人组,再定义联系人,定义联系人的时候得写一下邮箱:

    define contactgroup{

            contactgroup_name       web

            alias                   web

            members                 web

            }

    define contact{

            contact_name                    web

            use                             generic-contact

            alias                           web

            email                           web@163.com,web@126.com

            }


6: nagios定义时间顺便也说一下,这个我定义的不是很多,timeperiods.cfg,底下复制一个,想定义什么时间,可以自己定义一下:

    define timeperiod{

            timeperiod_name 24x7

            alias           24 Hours A Day, 7 Days A Week

            sunday          00:00-24:00

            monday          00:00-24:00

            tuesday         00:00-24:00

            wednesday       00:00-24:00

            thursday        00:00-24:00

            friday          00:00-24:00

            saturday        00:00-24:00

            }


7: 当然nagios定义发送邮件的命令也是比较重要的,看一下command的定义(如果是自己写的脚本,第一参数是标题,第二个参数是内容,第三个参数是给谁发送邮件。当然,想传再多的参数都可以,随意传,自定义):

define command{

        command_name    notify-host-by-email

        command_line    $USER1$/email.sh "Host Alert: $HOSTNAME$ is $HOSTSTATE$" "[nagios]<br>Notification Type: $NOTIFICATIONTYPE$<br>Host: $HOSTNAME$<br>State: $HOSTSTATE$<br>Address: $HOSTADDRESS$<br>Info: $HOSTOUTPUT$<br><br>Date/Time: $LONGDATETIME$<br>" "$CONTACTEMAIL$" "$HOSTALIAS$" "Host Alert: $HOSTNAME$ is $HOSTSTATE$"

        }


8: nrpe的配置肯定也是要的,不然nagios运行起来不够漂亮,定义nrpe要两个地方,一个是安装nrpe(被监控端),需要配置两个:1: xxx.xxx.xxx.xxx改成nagios监控端的地址,当然,一直变的话,就比较难办了。2: check_load是以后nagios监控端要用check_nrpe去调用的,后面的程序要怎么调用由自己定义(自定义脚本监控就在这)。

    allowed_hosts=xxx.xxx.xxx.xxx

    command[check_load]=/usr/local/nagios/libexec/check_load -w 15,15,15 -c 30,30,30

    定义完nrpe被监控端只是个开始,后续还得增加nagios监控的配置。主要也是两个配置:1: check_nrpe命令的配置,只需要传一个参数,就是类似上面的check_load传给它就好了。2: 定义监控项目,只需要传个参数给check_nrpe就可以了。

        define command{

                command_name    check_nrpe

                command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$

                }


        define service{

             use generic-service

             host_name 192.168.1.1

             service_description Load Average

             check_command check_nrpe!check_load

            }


9: 最后,送两个配置nagios经常用的命令,nagioscheck和nagiosreload,一个是检查nagios的配置(这个也可以:/etc/init.d/nagios configtest),一个是重载nagios配置:

    alias nagioscheck='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'

    alias nagiosreload='/etc/init.d/nagios reload'

    nagioscheck一定要以下结果才标准

        Total Warnings: 0

        Total Errors:   0


还要什么配置,还要什么命令,留言找我要吧,可以汇总成一个总的nagios要配置的博客,呵呵,开玩笑的。。。