摘要: 网络管理员需要随时对网络的运行情况了如指掌,并在出现问题时能及时解决问题,从而维护网络的正常运转。Nagios开源网络管理系统,能很好的对网络的运行状态进行监测和控制,使网络能够有效、可靠和安全地提供服务。本文首先对Nagios软件功能进行系统分析,然后通过实例讲解如何利用它对Windows主机进行监控。
Abstract: Network ***istrators need know network movement situation at any time and can solve problems when problems arise, so as to maintain the normal operation of the network. Nagios open network management system can be very good for network operation monitoring and control, making the network be efficient, reliable and safe. This paper firstly analyses Nagios software system function, then explains how it monitors windows host by examples.
关键词: Linux;Nagios;网络监控
Key words: Linux;Nagios;network monitoring
中***分类号:TP393 文献标识码:A文章编号:1006-4311(2010)13-0254-02
0引言
随着计算机网络逐步深入到生活、学习和工作的各个方面,计算机主机和网络设备也呈现几何的增长,如何在设备发生故障时能及时发现并排除。这就需要有一个良好的监控和管理措施。Nagios监控软件可以根据网络的拓扑结构,将所有主机和网络设备纳入到监控中,并在发生故障时及时做出提示,为故障排除赢得时间,提高网络的可用率。
1Nagios功能分析
Nagios本身并不包含任何监控机制,其所有的监控工作都是通过插件(plugin)来实现的。这些插件通常是通过命令行方式监控主机或服务工作状态的脚本,由Nagios进行按需调用,并把执行结果返回给Nagios。Nagios正是根据这些返回值来进行状态显示或发出警告通知等。
Nagios能够监控Windows和Linux等主流的操作系统,也可以监控网络打印机、路由器和交换机等网络设备。在这里以Windows系统和交换机/路由器为例讲解Nagios的工作原理。
1.1 监控Windows系统
如***1所示,要使Nagios监控Windows主机,需要在Windows系统中安装NSClient++软件。Nagios通过check_nt插件,与NSClient++软件沟通,将Windows主机中的CPU、内存和磁盘信息提供给Nagios,实现监控Windows主机的目的。
1.2 监控交换机/路由器首先交换机和路由器需要开启SNMP 协议,Nagios通过 check_snmp插件与交换机/路由器的SNMP协议软件沟通,将设备的端口状态等信息提供给Nagios,实现监控交换机/路由器的目的。
2基于Linux的Nagios网管系统构建方案
2.1 运行环境说明
Nagios服务器操作系统:Red Hat Enterprise Linux 5
被监控主机系统:Windows XP
2.2 网管系统服务器安装与配置①在Linux服务器上安装Apache服务,同时设置Apache服务支持CGI和PHP;然后创建Nagios网管系统的运行用户nagios和组nagcmd,并将apache和nagios两个用户加入nagcmd组中。②从网站/download上,***最新版本的Nagios源程序和插件程序nagios-plugins并安装。③重新启动Nagios和Apache服务后,就可以使用“服务器IP或域名/nagios地址/index.php”访问Nagios系统。
2.3 要监控Windows操作系统,可以根据Windows操作系统的类型从网站/nscp/downloads上***相对应的NSClient++安装程序,使用默认的设置安装程序,并设置访问密码(本例设置密码为“123456”)。
2.4 编辑配置文件/usr/local/nagios/etc/nagios.cfg 将“#cfg_file=/usr/local/nagios/etc/objects/windows.cfg”语句前的#号去除,同时在该语句后增加下列语句。并在/usr/local/nagios/etc/objects/目录下添加用于设置需要监控的主机和主机信息项目的hosts.cfg和services.cfg两个文件。
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
2.5 修改/usr/local/nagios/etc/objects/commands.cfg配置文件中的check_nt插件命令,在将下列语句中的“-p 12489”选项后添加访问密码“-s 123456”,结果如下。
command_line$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s ygj7102 -v $ARG1$ $ARG2$
2.6 通过上述的步骤后,可以在/usr/local/nagios/etc/objects/windows.cfg配置文件中添加需要监控的主机了。如果直接在该配置文件中添加配置语句,会使配置文件的结构比较混乱,为了方便添加需要监控的主机,这里给出一个脚本事例,将要监控的主机的主机名和IP地址等信息添加到第4步中创建的hosts.cfg配置文件中,而将要监控的项目添加到services.cfg配置文件中,脚本文件名为add_hosts,代码如下。
## script begins here
#!/bin/bash
echo "Enter Host Name"
read name
echo "Enter IP Address of $name"
read ip_add
echo "
define host{
use windows-server//使用的主机组名
host_name $name//主机名
alias $name//主机别名
address $ip_add //主机IP地址
}" >> /usr/local/nagios/etc/objects/hosts.cfg
echo "
……
define service{
use generic-service//使用的通用服务类
host_name $name //监控服务主机名
service_description Uptime //监控服务类型为Uptime
check_commandcheck_nt!UPTIME //调用的Nagios命令行方及参数
}
……
" >> /usr/local/nagios/etc/objects/services.cfg
2.7 使用命令sh add_hosts就可以逐一添加需要监控的Windows主机如果还需要监控交换机和路由器等网络设备,可以通过启用/usr/local/nagios/etc/nagios.cfg配置文件中的cfg_file=/usr/local/nagios/etc/objects/switch.cfg语句,并依照监控主机的方式修改/usr/local/nagios/etc/objects/switch.cfg配置文件来实现。
3结束语
笔者所在单位通过部署Nagios监控系统,极大的降低了维护的工作量,同时提高了网络和服务的可用性。
参考文献:
[1]宋磊,王静文.OpenBSD下基于Nagios的网络服务监控报警系统的研究.电脑编程技巧与维护,2009,(14).
[2]Wojciech Kocjan. Learning Nagios 3.0. Packt Publishing 2008年10月17日.
转载请注明出处学文网 » 浅谈基于Nagios的网管系统