Nagios是多功能的网络监控系统,可以帮助你轻松监控数据中心的各个设备。它对Linux系统支持一定的开箱即用性,但对于通过使用NSClient++,你也可以利用Nagios监控Windows Server。
在Nagios的环境中监控Windows有几种不同的模式。本文讨论的比较简单的方法是使用check_nt命令,这条命令在Nagios的commands.cfg文件中已经被定义了。在以后的文章中,你还会学到怎样配置Nagios Remote Plugin Executor(NRPE)。
首先,监控你的Windows环境的***步是到http://sourceforge.net/projects/nscplus下载并安装NSClient++。在下载之前先确定你需要哪种版本的软件。默认下载的是支持64位的版本。如果你需要在32位Windows下运行NSClient++,就需要从下载页的Files section下载32-bit MSI。
下载了NSClient++之后,打开Windows服务界面,配置NSClient++服务以便让它自动开始。同样的你还要确保服务日志与本地系统账户一同存在,而且可以从桌面自动运行。***一步就是检查Windows防火墙。NSClient++在12489端口运行,确保你防火墙里这一端口是开着的。
配置Nagios服务器
配置好Windows的部分之后,你还得配置Nagios服务器。首先,确保check_nt命令在/etc/nagios/objects/commands.cfg都被定义了。还有一点改变,应用默认配置不使用密码了,所以在命令行末尾,加-s nagios(参见例1),以便让check_nt命令使用默认的密码“nagios”。
# 'check_nt' command definition define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s nagios }
例1:在命令行末尾加-s nagios,来让check_nt命令使用默认密码。
然后,在/etc/nagios/objects/templates.cfg,你需要模板来定义Windows主机应该怎样配置(例2会告诉你这个定义在默认状态下是怎么样的):
define host{ name windows-server ;(本主机模板的名字) use generic-host
(继承通用主机模板的默认值)
check_period 24x7 ;(默认将日夜不间断监控Windows servers) check_interval 5 ;(每五分钟主动检查服务器) retry_interval 1 ;(每隔一分钟,重试日程主机检查。) max_check_attempts 10 ; (每个服务器检查十遍(最多)) check_command check-host-alive ;(检查服务器是否运转的默认命令。) notification_period 24x7 ;(在任何时段发送报告。) notification_interval 30 ;(每隔30分钟重复发送报告。) notification_options d,r ;(只为特定主机状况发送报告。) contact_groups admins ;(默认把报告发送给admins。) hostgroups windows-servers ;(主机把Windows servers分组为成员。) register 0 ;(不要注册这个,这只是个模板) }
例2:# Windows主机定义模板——不是真的主机,只是模板!
核实模板存在之后,你需要通知Nagios还得监视Windows。通过取消注解cfg_file 行(例3会讲到)的方法,让Nagios看windows.cfg文件:
# Definitions for monitoring a Windows machine cfg_file=/etc/nagios/objects/windows.cfg
例3:取消对cfg_file行的注解。
这样做之后,你可以定义Windows主机被监视。这一步在每个要被监视的windows主机都要做。你需要一个在windows.cfg文件中的定义主机项(见例4):
define host{ use windows-server ;(从模板继承默认值。) host_name winserver ;(我们给这台主机起的名字。) alias My Windows Server ;(更长的名字来联系这个主机。) address 192.168.1.54 ; IP address of the host (主机的IP地址) }
例4:定义主机部分
现在,为Windows配置Nagios的***一步就是定义你想要监控的设备。这也从windows.cfg文件发生。你可以在下文(例5)中找到这些设备的其中两个的例子。
######################################################################### ######################################################################### # # SERVICE DEFINITIONS # ######################################################################### ######################################################################### # Create a service for monitoring the version of NSCLient++ that is installed (创建一个设备来监视已安装NSCLient++的版本) # Change the host_name to match the name of the host you defined above (改变host_name以符合之前已经定义的主机名称) define service{ use generic-service host_name winserver service_description NSClient++ Version check_command check_nt!CLIENTVERSION } # Create a service for monitoring the uptime of the server (创建一个设备来监控服务器的正常运行时间) # Change the host_name to match the name of the host you defined above (改变host_name以符合之前已经定义的主机名称) define service{ use generic-service host_name winserver service_description Uptime check_command check_nt!UPTIME }
例5:定义Nagios要监控的设备
阅读windows.cfg文件剩余的内容,找出哪些设备检查是可用的,确保所有需要的设备能用。一旦你做完这些,就可以保存你的改变并重启Nagios服务器,使用Nagios主机上的service nagios restart。这就可以激活改变,然后,你就能从Nagios界面监控Windows主机上的设备了。
在这篇文章,你学会了怎样为Windows配置Nagios,怎样使用check_nt程序监控基础Windows服务器范围。使用check_nt选项给你开了个好头,但是没法帮你监控更大的范围。你需要NRPE来进行深入研究。在以后的文章中,你将会学到如何配置NRPE来进行精确的调整。
【编辑推荐】