在大多数情况下Cacti + RRDtool已经实现对系统各种参数的监测。但很多企业可能不满足于仅仅监测系统基本参数的需求,而是需要监测除基本参数之外的各种应用程序的运行状况。很显然在这种情况下对于一些系统或者是自定义的程序Cacti + RRDtool的局限性就显示出来了。而此时就轮到了另外一种监测系统的登场。这就是我们现在要介绍的Nagios。
Nagios是一个功能非常强大的开源的系统网络监测程序,通过访问可以了解其基本特性。Nagios不但能够实现对系统CPU,磁盘、网络等方面参数的基本系统监测,而且还能够监测包括SMTP,POP3,HTTP,NNTP等各种基本的服务类型。另外通过一些插件的安装和监测脚本自定义用户可以针对自己的应用程序实现监测,并针对大量的监测主机和多个对象部署层次化的监测架构。而且在监测信息统计方面,Nagios也能够和例如Cacti等程序结合来提供动态统计图表。除此之外Nagios拥有强大的日志管理系统,可以实现详细的日志记录以及回卷。针对架构的扩展和服务器数量的增加可以方便地实现监测区域扩展。最难能可贵的是Nagios提供了优秀的事件报警功能,能够将一些突发的事件以电子邮件的形式通知管理员并能够针对出现的问题提供一些主动的解决建议和方案,并支持冗余监视。
相对于Mrtg以及RRDtool + Cacti而言Nagios最大的特点之一是其设计者将Nagios设计成监测的管理中心尽管其功能是监测服务和主机,但是他自身并不包括这部分功能的代码,所有的监测、监测功能都是由相关插件来完成的,包括报警功能。Nagios自身也没有报警部分的代码和插件,而是交给用户或者其他相关开源项目组去完成。对于Nagios这个监测中心来说,细致的工作必然是交给其他的软件来实现。
下面我们就开始实施Nagios的基本安装和配置。
我的操作环境是:
监测主机:IP:192.168.1.10 操作系统:RHEL 5u8
被监测主机:IP:192.168.1.220 操作系统:RHEL 5u8
Nagios的所有软件包可以从其官方网站获得。这里无论是基本软件包还是插件我都使用的最新版本。因为我使用的操作系统是Red Hat最新版本,原则上对于较新的操作系统版本通常我们都选择配合最新版本的第三方软件以避免兼容性问题。
首先在监测主机也就是192.168.1.10上安装Nagios的基本软件包,在安装Nagios之前首先需要保证系统中有下面这些软件包:Apache,gcc,gd,gd-devel,glibc,glibc-devel。可以用rpm –qa | grep的方式去逐一检查。
如果确认上面这些包都安装之后需要先建立Nagios的用户和nagcmd组:
# useradd -m nagios [ Enter ] # passwd nagios [ Enter ] 并将nagios以及apache用户加入到nagcmd组中 # groupadd nagcmd [ Enter ] # usermod -G nagcmd nagios [ Enter ] # usermod -G nagcmd apache [ Enter ]完成之后将下载的nagios压缩包拷贝到/usr/local目录中,并且执行下面的步骤进行编译和安装:
# tar -zxf nagios-3.0.3.tar.gz [ Enter ] # cd nagios-3.0.3 [ Enter ]首先初始化和建立编译的环境
# ./configure --with-command-group=nagcmd [ Enter ]如果能看到下面的基本配置信息则说明初始的环境已经成功配置完成:
*** Configuration summary for nagios 3.0.3 06-25-2008 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagcmd Embedded Perl: no Event Broker: yes Install ${prefix}: /usr/local/nagios Lock file: ${prefix}/var/nagios.lock Check result directory: ${prefix}/var/spool/checkresults Init directory: /etc/rc.d/init.d Apache conf.d directory: /etc/httpd/conf.d Mail program: /bin/mail Host OS: linux-gnu Web Interface Options: ------------------------ HTML URL: CGI URL: Traceroute (used by WAP): /bin/traceroute Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs.之后按照提示执行命令来进行编译:
# make all [ Enter ]如果编译过程顺利完成,则需要执行下面的命令:
# make install [ Enter ] # make install-init [ Enter ] # make install-config [ Enter ] # make install-commandmode [ Enter ]分别用于安装二进制文件、初始化脚本、示例配置文件和设置目录权限。
# ls /usr/local/nagios [ Enter ]安装完成之后,在/usr/local/nagios目录下如果能够看到这些目录:bin etc sbin share var就表示Naigos安装成功了。
不过在完成之后还不能启动Nagios,因为还有一些操作需要执行。
Nagios的样例配置文件默认安装在/usr/local/nagios/etc目录下,这些样例文件可以配置Nagios使之正常运行,只需要做一个简单的修改。用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email部分,在nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。
# vi /usr/local/nagios/etc/objects/contacts.cfg [ Enter ]之后执行下面的命令来安装Nagios的WEB配置文件到Apache的conf.d目录下:
# make install-webconf [ Enter ]