好的爱情是你通过一个人看到整个世界,坏的爱情是你为了一个人舍弃世界。

Nagios监控配置

技术文档 8284浏览 0评论
文章目录[隐藏]

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备以及打印机等。

Nagios安装和配置: http://loosky.net/archives/2758.html

想获取客户机上更为详细的信息,还必须在服务器及客户端上安装NRPE插件。

NRPE下载地址: http://www.nagios.org/download/addons

服务器端监控程序安装

#cd /usr/local/src
#tar zxvf nrpe-2.14.tar.gz
#cd nrpe-2.14
# ./configure --with-nagios-user=nagios -with-nagios-group=nagios --prefix=/usr/local/nagios/
# make all;make install-plugin ; make install-daemon;make install-daemon-config   //将check_nrpe插件安装到/usr/local/nagios/libexec/目录下
#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

    NRPE v2.14 

Linux客户机监控

安装nagios插件

#useradd -s /sbin/nologin nagios //添加nagios用户
#cd /usr/local/src
#tar zxvf nagios-plugins-1.4.16.tar.gz
#cd nagios-plugins-1.4.16
#./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/   //指定安装目录及运行该软件用户和组
#make;make install

安装nrpe

#cd ..
#tar zxvf nrpe-2.14.tar.gz
#cd nrpe-2.14
#./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/
# make all
# make install-plugin;make install-daemon;make install-daemon-config
# ls /usr/local/nagios/libexec/ //验证安装
    check_apt check_ftp check_mailq check_overcr check_tcp

配置、启动、测试NRPE

# cd /usr/local/nagios/
# vi etc/nrpe.cfg

    allowed_hosts=127.0.0.1,192.168.80.200   //添加服务器端的IP地址

#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d  //启动NRPE守护进程
#netstat -utpln |grep nrpe        //查看nrpe进程是否已正常启动

    tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 17619/nrpe

#echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >>/etc/rc.local     //添加nrpe为开机自动启动 
#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 
    NRPE v2.14    //nrpe测试结果,此结果为nrpe已经正常工作了

定义监控内容

# vi /usr/local/nagios/etc/nrpe.cfg   //定义监控服务器内容

    command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 #监控登陆的用户数量
    command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20 #监控CPU的负载
    command[check_sda2]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2 #监控磁盘利用率,这里的sda2必须是实际的硬盘分区,可使用fdisk –l查
    command[check_swap]=/usr/local/nagios//libexec/check_swap -w 20 -c 10 #监控交换空间
    command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z #监控进程中的僵尸进程
    command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 #监控所有进程

    注意:command后面括号中的内容就是定义的变量,变量名可以任意指定,只需和服务器配置文件中的一致即可

磁盘自动监控脚本

上面的check_sda2命令是对具体的某个分区空间进行监控,但因为每台Linux主机的磁盘分区状况都不一样,而且有多少个分区就需要定义多少个命令,所以通过自定义写一个shell脚本来监控所有的磁盘分区:

1、在客户端上创建脚本check_disk.sh
#vi  /usr/local/nagios/libexec/check_disk.sh 写入如下内容

    #!/bin/bash
        row=`df -h -P|wc -l`
        status=0
        for i in `seq 2 $row`
        do
                spare=`df -h -P|sed -n "$i"p|awk '{print $4}'`
                use_percentage=`df -h -P|sed -n "$i"p|sed -n "s/\%//"p|awk '{print $5}'`
                spare_percentage=`expr 100 - $use_percentage`
                partition_name=`df -h -P|sed -n "$i"p|awk '{print $6}'`
                if [ "$spare_percentage" -lt "3"  ];then
                    echo -n "$partition_name CRITICAL ${spare_percentage}% $spare  "
                    status[$i]=2
                elif [ "$spare_percentage" -lt "5" ];then
                    echo -n  "$partition_name WARNING! ${spare_percentage}% $spare  "
                    status[$i]=1
                else
                    echo -n  "$partition_name OK ${spare_percentage}% $spare  "
                    status[$i]=0
                fi
        done
        zhuangtai=0
        for j in `seq 2 $row`
        do
                if [ "${status[$j]}" -gt "$zhuangtai"  ];then
                    zhuangtai=${status[$j]}
                fi
        done
        exit $zhuangtai
2、修改该脚本的权限
#chmod +x  /usr/local/nagios/libexec/check_disk.sh
3、编辑/usr/local/nagios/etc/nrpe.cfg文件
#vi /usr/local/nagios/etc/nrpe.cfg  # 加入一行
    command[check_disk]=/usr/local/nagios/libexec/check_disk.sh

#killall nrpe
#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d  //重启nrpe服务
4、检测脚本是否运行正常

在Nagios服务器端执行如下命令:

#/usr/local/nagios/libexec/check_nrpe -H 192.168.80.201 -c check_disk  //192.168.80.201为客户机IP地址

如果正常的话,会输出一行磁盘检测的数据,否则可能会报错。

5、在服务器端上添加相应的service
#cd  /usr/local/nagios/etc/
#vi  services.cfg   # 加入如下内容:
    define service{
        use     generic-service
        host_name       192.168.80.201
        service_description     check_disk
        check_command           check_nrpe!check_disk
        max_check_attempts 5
        normal_check_interval 1
    }
6、在服务器端重启nagios服务
#service nagios restart

Windows主机监控

Windows主机可以通过NSClient++来进行监控,在Windows机器上安装NSClient++外部构件并使用check_nt插件检测和与NSClient++构件进行通讯。

注:如果按照正常的安装步骤来安装的话,check_nt插件已经安装到了Nagios服务器上。

NSClient++下载地址: http://sourceforge.net/projects/nscplus

1、NSClient++安装

下载安装包后,双击进行安装,注意要填入正确的Nagios服务器地址,并加载相应的模块。

NSClient++安装第一步

2、验证服务是否启动并允许服务与桌面交互

验证服务是否正常启动

允许服务与桌面交互

3、验证NSClient++端口

在Windows的命令行中输入:netstat -an

验证NSClient端口

至此配置就基本完成了,这台Windows机器可以加到Nagios监控配置里了。

4、IPv6配置

如果Windows客户机启用了IPv6地址,那么NSClient++默认监听的就是IPv6的端口了 IPv6主机

解决办法: 方法1、在服务器端也开启IPv6地址,并在客户机上添加服务器的的IP地址。修改安装目录下的nsclient.ini,在allowed_hosts选项中加入服务器的IPv6地址,然后重启NSClient++服务

方法2、在Windows的命令行界面下,进入安装目录,输入:

nscp settings --generate --add-defaults --advanced

软件会重新生成nsclient.ini文件,在nsclient.ini文件中找到bind to在后面就可以设置监听到IPv4地址。

参考:http://nsclient.org/nscp/ticket/575

5、配置Nagios

在服务器上定义相应的监控项目即可实现对Windows主机的监控。

示例:

#############Windows Nsclient############
define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     Uptime
        check_command           check_nt!UPTIME   --> 系统运行时间
}

define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     CPU Load
        check_command           check_nt!CPULOAD!-l 5,80,90 --> 系统运行负载
}

define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 90 -c 95  -->  系统内存占用量
}

define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90 -->系统C盘磁盘空间
}

define service{
        use                     generic-service
        hostgroup_name          windows-servers
        service_description     D:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l d -w 80 -c 90  -->系统D盘磁盘空间
}

define service{
        use                     generic-service
        host_name               192.168.185.4
        service_description     MMLogOrder
        check_command           check_nt!PROCSTATE!-d SHOWALL -l MakeMM.exe  -->系统管理器中MakeMM.exe进程存活性
}

转载请注明:自由的风 » Nagios监控配置

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址