Linux系统网络管理模块的实现

随着计算机网络的普及,网络管理已成为信息时代中最重要的问题之一。在现有的技术条件下,人们希望有一个更加稳定可靠的网络环境。

计算机网络管理系统就是应这样的需求而产生的。它对网络上的各种设备进行管理,提高网络的服务质量和效率。

一般来说,是采取发生问题后进行解决的方法,即基于反应的解决方案。但是这种解决方案通常的效率都是非常低的,如果反应及时,只需少数的几分钟就可以解决问题,但如果发现问题晚了,就会浪费时间带来更多损失。一个完成此类检测功能的自动化工具对于网络管理员就显得非常重要。

Nagios是一个运行干Linux系统上的开源网络管理监测系统。它强大的功能可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和http等等)的状态,服务器的状态。

1 Nagios系统

1.1Nagios系统介绍

Nagios是一个用来监视系统和网络的开源应用软件,它通常运行于一个主服务器上,这个服务器运行Liunx或Unix操作系统。Nagios利用其众多的插件实现对本机和远端服务的监控,当被监控对象出现异常,Nagios就会及时给管理人员告警。它是一个基于TCP/IP协议的软件包。包含有Nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,也可以通过自定义shell脚本进行监控服务,非常适合各类企业的网络应用。

1.2Nagios系统的主要特点

Nagios系统的特点主要有下面几点:

(1)监控主机资源和网络服务;(2)允许用户通过设计实现简单的插件来监控自己特定的服务,(3)当被监控对象出现问题时,会及时通知管理人员。(4)事先定义事件处理程序,当对象出现问题时自动调用对应的处理程序;(5)通过Web页面来监视对象状态,警告提示和日志文件。

Nagios的结构如图1.

可见,Nagios采用分布一集中的管理模式。在Nagios服务器上安装 Nagios主程序,在被监控主机上安装Nagios代理程序.通过Nagios主程序和Nagios代理程序之间的通讯,监视对象的状态。

1.3在Linux上运行Nagios系统

Nagios系统是运行在Linux或者Unix操作系统之上的,安装前确认操作系统支持TCP/IP协议并且有C语言编译器(如,gcc等)。如果没有Web服务器,例如apache,预先安装之。在Nagois官方网站下载Nagios主程序、插件和安装文档,最新版本是Nagios3.Orc2。Nagios是开源项目,它的安装也比较简单,按照文档一步步执行就可以顺利完成。

如果Nagios安装在/usr/local目录下,完成后执行如下

打开浏览器,输人http://主机IPlnagios/如果配置正确将会进入到Nagios的监视界面,然后可以查看没人情况下主机被监视的细节数据。如果出现提示 “Internal Server Error”,这可能是本机上安装并正在运行Redhat Linux。首先查看Linux是否处于Enforcing模式getenforce,然后把Linux置为permissive模式 setenforce 0重新打开浏览器就可以看到被Nagios监控的服务了。

2 运用Nagios实现对网络上服务器的监控

2.1实现原理

处于网络中的各种服务器需要管理和维护,管理员不可能及时对每一台的状态都进行监控,这时候当然需要借助软件的功能来实现了。

Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进人队列Nagios,每次都从队首开始读取信息,并进行处理后,把状态结果通过Web显示出来。

Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在Nagios主目录下的/libexec里放有Nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空问的插件,check_ load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx h来查看其使用方法和功能。Nagios可以识别4种状态返回信息,即0(0K)表示状态正常、

1(WARNING)表示出现一定的异常、

2 (CRITICAL)表示出现非常眼中的错误、

3 (UNKNOWN)表示被监控的对象已经停止了。Nagios根据插件返回来的值,来判断监控对象的状态,并通过Web显示出来,以供管理员及时发现故障。

2.2利用Nagios的NRPE插件实现网络上服务器的监控

知道Nagios是如何通过插件来管理服务器对象后,现在开始研究它是如何管理远端服务器对象的。Nagios系统提供了一个插件NRPE。Nagios通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如图2。

图2 Nagios通过NRPE来远端管理服务