环境:nagios server ip:192.168.1.2  客户端:192.168.1.78

这篇文档向你介绍怎样用Nagios去监控一个Windows主机的服务,包括:
  • 内存使用Memory usage
  • CPU负载CPU load
  • 硬盘空间Disk usage
  • 服务状态Service states
  • 运行进程Running processes
原理图解

     nagios window客户端监控 

 

监控私有的服务和windows主机需要你安装一个agentwindows上,它就是NSClient++。
现在我们就在windows上来安装NSClient++ addon。用check_nt插件来和NSClient++ addon
交流信息。check_nt插件必须已经安装到Nagios server端了。
其它windows客户端(例如NC_Net)也能用来代替NSClient++。这里也不作讨论。
步骤:
监控一个新的Windows主机需要你按照一下几个步骤来进行,它们是:
1.       准备工作,也就是你有一个nagios监控系统,修改几处配置文件。
2.       安装客户端到要监控Windows
3.       创建一个新的主机和服务来监控Windows主机
4.       重新起动Nagios
为了是你的工作更加简单,一些配置文件已经为你写好,你只需要做一些修改工作。
  • 一个check_nt命令已经在commands.cfg文件中被定义,这样你就可以用check_nt插件来监控Window services了。
  • 一个Windows server host 模板(叫做windows-server)也已经为你创建好了,在一个
  • 叫做templates.cfg的文件中。这样你就可以简单的去添加一个Windows host definitions
上面提到的所有文件都在/usr/local/nagios/etc/objects/目录下。你可以根据自己的需要去修改配置文件。但是现在你需要做得就是按照下面的说明去操作。
一:准备工作
如果这是你第一次用Nagios来监控Windows machine,你必须先修改一下文件,来监控你的第一个Windows machine
A:编辑Nagios 的主配置文件
命令:vi /usr/local/nagios/etc/nagios.cfg
B添加如下
cfg_file=/usr/local/nagios/etc/objects/192.168.1.78.cfg
C:保存并退出文件
二:安装windows客户端
Before you can begin monitoring private services and attributes of Windows machi
我这里选用的是NSClient++ addon,你可以在http://sourceforge.net/projects/nscplus.
找到它的身影。那么现在就让我们来安装NSClient++ addon吧。
1:若没有下载NSClient++ addon的最新版,请来这里转悠一下
2:解压NSClient++ files C:\NSClient++ 目录
3:打开一个命令提示符界面并转到C:\NSClient++ 目录
命令:cd C:\NSClient++
4:使用一下命令注册NSClient++ system service 到系统
命令:nsclient++ /install
5:安装NSClient++ systray ('SysTray' 大小写敏感):
命令:nsclient++ SysTray
注:我在几个电脑上都试过了,此条命令有点问题,但是我还是都执行了。
6:打开计算机管理服务和应用程序,在服务项中找到NSClientpp服务,打开此服务的选项卡

,找到“登录”选项卡,将登录身份下的本地系统帐户下的“允许服务与桌面交互” 选上,如下图:

 

nagios window客户端监控 

 

7:编辑NSC.INI 文件 (C:\NSClient++ 目录下),做以下修改:
  • [modules]项中,将所有的*.dll前的注释去掉,除了CheckWMI.dllRemoteConfiguration.dll
  • [Settings]项中有客户端的密码设置,此项我还没有研究明白,暂时不做处理
  • [Settings] 项中,去掉'allowed_hosts'前的注释,并把你的Nagios server IP填上。
  • 例如allowed_hosts=127.0.0.1,192.168.1.2
 [NSClient]项中,将'port'前的注释去掉,并保证端口号为'12489' (默认端口)
TIP:去掉注释就是将该行的第一个号去掉,仅此而已。
8:在命令行下启动NSClient++ service
命令:nsclient++ /start
9:如果安装成功,在你的任务栏的右边将会出现两个十字架
10:成功了,现在Windows server 就可以添加到Nagios monitoring configuration中了...
三:配置nagios
现在是为你的nagios定义objects的时间了。为了省力,我打了如下命令
cp/usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/objects/192.168.1.78.cfg
 1:打开192.168.1.78.cfg删掉注释行,做以下编辑
命令:vi /usr/local/nagios/etc/objects/192.168.1.78.cfg
以下是192.168.1.78.cfg文件的内容
define host{
use windows-server           ;保留此行不做任何修改
host_name winserver                  可以修改为你喜欢的名字
alias My Windows Server          别名
address 192.168.1.78                  windows主机的IP
}
如果是你的第一个Windows machine,你也可以只修改IP那一项。
以下是服务的定义:
2:客户端的版本
define service{
use generic-service
host_name winserver     ;对应上面你定义的名字
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
3:客户端的开机总时间
define service{
use generic-service
host_name winserver
service_description Uptime
check_command check_nt!UPTIME
}
 
4CPU的使用
define service{
use generic-service
host_name winserver
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
 
5:内存的使用
如果超过90%则为CRITICAL,如果超过80%则为WARNING
define service{
use generic-service
host_name winserver
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
 
6C盘的使用
如果超过90%则为CRITICAL,如果超过80%则为WARNING。若要监控其它盘,将service_description C:\ Drive Space中的C改为DE,或F等,将check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90-l后的c改为对应的def等。
define service{
use generic-service
host_name winserver
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
 
 
7Explorer的监控
监控Explorer程序是否在运行,当然你也可以修改-l之后的Explorer.exe,来监控其它程序的运行
define service{
use generic-service
host_name winserver
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
8:增加Ftp监控
define service{
        use                     generic-service
        host_name               winserver
        service_description     ftp
        check_command           check_ftp
        }
保存此文件
四:密码保护(我的nagiosNSClient++没有密码设置)
如果你在NSClient++ 配置文件中定义了你的密码,你就必须修改你的check_nt命令
打开commands.cfg文件来编辑
命令:vi /usr/local/nagios/etc/commands.cfg
check_nt命令中包含的"-s <PASSWORD>" 项的PASSWORD 改为你的windows上设定的密码
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
}
Save the file.
五:重启nagios
此时你就会看到你监控的windows主机,如下图

 nagios window客户端监控