自由的风's Archivers

From 自由的风 on 2013-04-28 14:43:50

Nagios监控配置

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服务器地址,并加载相应的模块。



<img src="http://loosky.net/Upload/2013/04/NSClientplus-install-step1.png" alt="NSClient++安装第一步" />



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

<img src="http://loosky.net/Upload/2013/04/NSClientplus-install-step2.png" alt="验证服务是否正常启动" />



<img src="http://loosky.net/Upload/2013/04/NSClientplus-install-step3.png" alt="允许服务与桌面交互" />



3、验证NSClient++端口

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


<img src="http://loosky.net/Upload/2013/04/netstat.png" alt="验证NSClient端口" />



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



4、IPv6配置

如果Windows客户机启用了IPv6地址,那么NSClient++默认监听的就是IPv6的端口了 <img src="http://loosky.net/Upload/2013/04/netstat2.png" alt="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监控配置

Tags: Linux, Nagios, 监控


©自由的风