Nagios网络监控软件配置及常见问题研究

2018-10-22 01:48刘丹崔阳
现代计算机 2018年25期
关键词:配置文件插件局域网

刘丹,崔阳

(1.南海舰队参谋部,湛江 524001;2.中国劳动关系学院大数据与安全研究所,北京 100048)

0 引言

当前大多数企业的局域网中都部署了多台服务器和主机,以实现信息共享、数据备份、并行计算、负载平衡等各种功能。怎样实时、可靠地监控这些服务器和主机的工作状态,当局域网中出现问题时能够及时、准确地将故障机的相关信息发送给网络管理人员,就成为企业面临的一个重要问题。以往人工监控的方式效率低下,也无法应对一些对局域网监控要求较高的场合(例如很多企业的局域网要求做到7×24小时全天候监控)。成熟的商业化服务器监控系统产品尽管功能强大,但价格通常较昂贵,且无法根据企业的具体应用需求对功能加以拓展[1]。在这种情况下,采用开源的Nagios、Zabbix等系统监控软件就成为首选。

Nagios配置灵活、监控和报警机制完善,可以非常好地满足企业局域网监控的各种需求;且Nagios较Zabbix更适用于规模大、IT环境复杂的企业局域网[2]。但同时,Nagios的配置过程较复杂,期间可能遇到的问题较多,这也给Nagios的顺利使用带来了很大困难。

1 Nagios的工作原理

Nagios主要包括 Core、Plugins、Frontends和 Addon Projects四部分。其中Core是实现Nagios功能的核心部分。Plugins用于扩展Nagios的功能,没有插件Nag⁃ios将无法起作用[3]。除了下载常用的插件外,用户还可以基于实际需求编写自己的插件。Frontends是前端工具,可以方便用户使用Nagios。Addon Projects则用于扩展Nagios的基础功能。Nagios能够监控所指定的本地或远程服务器和主机,并提供短信、微信通知提醒等报警功能。同时Nagios还提供一个可选的基于浏览器的Web界面,以便系统管理人员查看网络状态、各种系统问题以及日志等信息。但要注意Nagios只能安装并运行在Linux或Unix平台上[4]。

Nagios的监控主要有两种形式:直接监控和间接监控。直接监控是由Nagios监控机使用本地监控插件对局域网中的服务器或主机进行监控,但这种方式只能检测到被监控机已经开放的服务,而无法检测到其本地信息。因此Nagios提供了一个NRPE和一个NSClient++分别用于对操作系统为Linux和Windows的被监控机本地信息进行监控[5]。图1给出了Nagios直接监控的简单原理。

图1 Nagios直接监控原理示意图

Nagios间接监控是指当网络中运行Nagios的监控机无法访问到某台被监控机时,就通过某个运行NRPE的计算机充当代理,将监控请求发送至被监控机。但由于监控机与被监控机通常都处于同一网络中,所以间接监控的情况较少见。

2 Nagios的安装和配置过程

Nagios的安装过程比较简单,只需在监控机的Linux环境中下载Nagios和Nagios-plugins压缩包,解压缩后再逐步执行相应的安装命令即可。为了能够使用Web界面直观展示被监控机的各项监控信息,可以安装Apache作为Web服务器。此外,为实现对被监控机本地信息的监控,还需要在监控机上安装NRPE,同时根据被监控机不同的操作系统分别安装NRPE或NSClient++。

上述软件安装完成后都需要进行验证。对于Nag⁃ios和Nagios-plugins来说,可以在Nagios的安装路径(例如/usr/local/nagios)下查看是否存在 etc、bin、sbin、share、var这五个目录,如果是则表明Nagios已正确安装;同时在/nagios/libexec/目录下也会显示出所有已安装的插件文件。Apache服务器则可以在其安装目录下执行apachectl-t命令,如果没有提示出错就表明Apache已正确安装。NRPE和NSClient++的区别是:NRPE需要同时在监控机和被监控机上安装,而NSCli⁃ent++只需在被监控机安装。完成后可以使用check_nrpe-H或check_nt-H命令来测试NRPE和NSClient++功能是否正常。

Nagios-plugins中包含了大量插件,它们是一些实现特定功能的可执行程序,可以获取已被定义的各个被监控机的磁盘、负载、进程、用户等各种信息。局域网中哪些服务器和主机以及哪些信息需要被监控都可以通过对Nagios的配置实现。Nagios的配置文件是一些以.cfg为后缀名的文件,包括nagios.cfg(Nagios的主配置文件)、cgi.cfg、timeperiods.cfg、contacts.cfg、contact⁃groups.cfg、hosts.cfg、hostgroups.cfg、services.cfg、com⁃mands.cfg等[6]。nagios.cfg中定义了Nagios启动时基本的一些信息。除此之外,最重要的配置文件还有hosts.cfg、services.cfg和commands.cfg,它们分别定义了被监控机、监控项目和各种监控命令。在NRPE和NSCli⁃ent++的配置文件则是定义对哪些信息进行监控以及实现这些监控的命令,监控机借助check_nrpe或check_nt插件即可获取到这些信息。

例如,定义一个被监控机需要在hosts.cfg文件中添加下列语句:

为上述主机名为linux-server的被监控机增加一个监控项目(如FTP),可在services.cfg加入以下代码:

配置全部完成后,使用/usr/local/nagios/bin/nagiosd/usr/local/nagios/etc/nagios.cfg命令将Nagios作为守护进程从后台启动,并可以使用ps aux|grep nagios命令检查进程正确启动并处于运行状态。此外,对Apache也要进行配置,以使其能够用于Nagios服务。方法是首先在Apache的配置文件httpd.conf中增加nagios目录,并且设置访问此目录时需要身份验证。之后生成用户验证文件,并创建通过页面登录Nagios的用户名和密码。之后启动Apache服务,在监控主机端打开浏览器,并在地址栏输入http://localhost/nagios,如果配置正确则可看到Nagios的登录界面。输入生成的用户名和密码即可进入监控页面。如图2所示。

图2 监控主机的Nagios监控页面

单击页面左方的“Monitoring”,则主监控界面显示局域网中被监控的服务器和主机及设定的各项监控信息。如图3所示。

图3 Nagios显示的监控信息

3 常见配置问题及解决方法

Nagios的配置过程中经常会出现各种问题,使监控功能无法正常实现。这一方面需要在配置Nagios时随时注意检查配置结果的正确性,另一方面要求对一些常见问题有所了解。例如,在配置nagios.cfg文件时,应该随时使用Nagios提供的nagios-v命令测试Nagios.cfg文件是否有错误,如果命令运行结果显示为“Total Warnings:0 Total Errors:0 Things look okay-No serious problems were detected during the pre-flight check”,则表示无错;反之则应根据错误提示信息对配置内容进行逐项检查。在Apache安装并配置完成后也可以使用apachctl-t命令检查Apache配置文件是否存在语法错误,若发现错误应及时修改,等等。

总结Nagios常见的配置问题主要有:

(1)各项配置正确,但登录Nagios监控页面后提示Nagios进程不能启动。对于这种问题,可以通过监控页面左下方的Reporting->Event Log查看日志,找到错误提示信息。如果提示“nagios/var目录读写权限不足”,可以使用#chown-R nagios.nagios rw/和#chmod 777-R rw/命令提升该目录的读写权限;如果提示“某一进程占据nagios.lock文件”,则可以使用kill命令终止占据nagios.lock的进程并重启Nagios进程。其他错误也可以通过查看日志提示的类似方法加以解决。

图4 Nagios日志记录

(2)监控机无法读取Windows系统的被监控机信息。首先应检查NSClient++进程和12489端口是否都运行正常,如正常应查看被监控机NSClient++目录的nsclient.log文件,如果发现“Unauthorized access from:”的提示信息,则将NSC.ini文件中[Settings]一项的al⁃lowed_hosts设置为null,即允许局域网中所有计算机都访问。

(3)监控机安装NRPE时遇到OpenSSL安装错误。可执行#apt-get install openssl和#apt-get install libssl-dev,将openssl和libssl-dev装好。如果这之后仍有“SSL libraries...configure”错误,则继续执行#ln-s/usr/lib/x86_64-linux-gnu/libssl.so/usr/lib/libssl.so和#./configure--with-ssl=/usr/bin/openssl--with-ssl-lib=/usr/lib i386/-linux-gnu/命令即可。

(4)Apache无法启动。如果启动Apache时遇到“Httpd Could not reliably determine the server`s fully qualified domain name”的错误信息提示,则应在httpd.conf文件中加入一句 ServerName localhost:80,然后重启Apache即可。

此外,还有很多问题是在配置过程中随时出现的,可能涉及到TCP/IP协议栈的正确配置、Nagios及其插件安装包目录设置等多方面,应根据实际情况具体加以解决,这里不再赘述。

4 结语

Nagios在网络监控方面的强大功能需要在充分满足其配置要求的基础上才能最大程度地发挥出来。本文介绍的Nagios配置过程以及对这一过程中常见问题分析有助于更好地构建Nagios局域网监控平台,这些方法业已在实践中得到了较好的应用。

猜你喜欢
配置文件插件局域网
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
基于CTK插件框架的太赫兹人体安检系统软件设计
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
自编插件完善App Inventor与乐高机器人通信
互不干涉混用Chromium Edge
基于VPN的机房局域网远程控制系统
基于OSGi的军用指挥软件插件机制研究
计算机局域网组建及管理探讨
基于jQUerY的自定义插件开发