可见,Nagios 采用分布--集中的管理模式。在 Nagios 服务器上安装 Nagios 主程序,
在被监控主机上安装 Nagios 代理程序。通过 Nagios 主程序和 Nagios 代理程序之间的通讯,监视对象的状态。
2.3 在Linux上运行 Nagios 系统
Nagios 系统是运行在 Linux 或者 Unix 操作系统之上的,安装前确认操作系统支持 TCP/IP协议并且有 C 语言编译器(如,gcc 等)。如果没有 web 服务器,例如 apache,预先安装之。在 Nagois 官方网站 http://www.nagios.org 下载 Nagios 主程序、插件和安装文档,最新版本是 Nagios 3.2.3。Nagios 是开源项目,它的安装也比较简单,按照文档一步步执行就可以顺利完成。
如果 Nagios 安装在/usr/local 目录下,完成后执行如下命令:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
这个操作用来预先检查 nagios 配置的是否正确。如果没有错误,开始运行 Nagios。
service nagios start (后面也可跟这些:restart, stop, reload.),也可以这样启动:
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
Nagios 启动正常后,登录到 nagios CGIs
打开浏览器,输入 http://主机 IP/nagios/如果配置正确将会进入到 nagios 的监视界面,然后可以查看没人情况下主机被监视的细节数据。如果出现提示“Internal Server Error”,这可能是本机上安装并正在运行Redhat Linux. 首先查看 Linux 是否处于 Enforcing 模式getenforce然后把 Linux 置为 permissive 模式setenforce 0重新打开浏览器就可以看到被 Nagios 监控的服务了。
现在访问nagios的服务器web界面,界面如下图2。
访问界面图2
3. 运用 Nagios 实现对网络上服务器的监控
3.1 实现原理
处于网络中的各种服务器需要管理和维护,管理员不可能及时对每一台的状态都进行监
控,这时候当然需要借助软件的功能来实现了。Nagios 的功能是监控服务和主机,但是他
自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。启动 Nagios后,它会周期性的自动调用插件去检测服务器状态,同时 Nagios 会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios 每次都从队首开始读取信息,并进行处理后,把状态结果通过 web 显示出来。Nagios 提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios 主目录下的/libexec 里放有 nagios 自带的可以使用的所有插件,如,check_disk 是检查磁盘空间的插件,check_load 是检查 CPU 负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。Nagios 可以识别 4 种状态返回信息,即 0(OK)表示状态正常、1(WARNING)表示出现一定的异常、2(CRITICAL)表示出现非常眼中的错误、3(UNKNOWN)表示被监控的对象已经停止了。Nagios 根据插件返回来的值,来判断监控对象的状态,并通过 web 显示出来,以供管理员及时发现故障。
3.2 利用 Nagios 的 NRPE 插件实现网络上服务器的监控
知道 Nagios 是如何通过插件来管理服务器对象后,现在开始研究它是如何管理远端服
务器对象的。Nagios 系统提供了一个插件 NRPE。Nagios 通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如下图 3 所示:
图 3 Nagios 通过 NRPE 来远端管理服务[
1. Nagios 执行安装在它里面的 check_nrpe 插件,并告诉 check_nrpe 去检测哪些服务。
2. 通过 SSL,check_nrpe 连接远端机子上的 NRPE daemon
3. NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)
4. 最后,NRPE 把检测的结果传给主机端的 check_nrpe,check_nrpe 再把结果送到 Nagios状态队列中。
5. Nagios 依次读取队列中的信息,再把结果显示出来。
下面通过一个监控远端服务器 CPU 负载情况的实例,研究如何实现通过 NRPE 来管理远端服务器。假设有一台远端服务器的 IP 是 10.20.0.110,Nagios 服务主机 IP 是:10.20.10.1。它们都已经安装上了 nagios 系统,主机通过 NRPE 检查运行中的服务器 CPU 的负载量,当负载量超过 80%是发出警告(WARNING)报告,超过 95%时发出紧急(CRITICAL)报告。在Nagios 的插件中存在 check_load -w $ARG1$ -c $ARG2$插件,通过查看其帮助,当 Nagios 调用它时,就会去检查对象主机的 CPU 负载,达到$ARG1$指定的数值时就会发出警告(WARNING),达到$ARG2$时发出紧急报告(CRITICAL)。
首先是在远端服务器上的修改:
1. 让 Nagios 用户拥有对如下文件的所用权:
chown nagios.nagios /usr/local/nagios
chown –R nagios.nagios /usr/local/nagios/libexec
然后如果没有安装 xinetd,则先安装 xinetd。
2. 按照 Nagios 文档安装好 nrpe 插件。
3. 修改文件/etc/xinetd.d/nrpe:
only_from = 127.0.0.1 10.20.10.1(这个是 Nagios 主机的 IP)
nrpe 允许以上 IP 的机器通过 nrpe 查询服务
4. 在/etc/service 文件里添加:
nrpe 5666/tcp #nrpe
然后 service xinetd restart
5. 执行:netstat –at | grep nrpe
如果出现:tcp 0 0 *:nrpe *:* LISTEN 说明NRPE监听已经成功启动了
6. 执行 /usr/local/nagios/libexec/check_nrpe –H localhost
出现 NRPE v 2.8.1 则安装成功。
7. 确认本地防火墙允许远端服务器访问 NRPE daemon:
iptables -IRH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
service iptables save
8. 打开/usr/local/nagios/etc/commands.cfg,找到 check_load 服务,修改如下:
define command{
command_name check_server_load
command_line $USER1$/check_load -w 80% -c 95%
}
9. 打开 /usr/local/nagios/etc/nrpe.cfg 可以看到里面已经默认定义了一些检测服务,如:
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1
注释掉除 check_load 外的其它服务定义。
最后是 Nagios 主机上的修改:
1 在 Nagios 主机上安装 nrpe 插件。
2 打开/usr/local/nagios/etc/command.cfg 添加如下行:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe –H 10.20.0.110 -c $ARG1$
}
3再在对象定义的配置文件里(host.cfg 文件),修改 host 为要检测的主机的 IP 地址,然后
在服务中添加要检测的命令:
define service{
use linux-service
service_description remote_CPU_Load
check_command check_nrpe!check_load
}
4 在 nagios.cfg 主配置文件中,cfg_file 值为 host.cfg,运行
/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
如果没有错 就启动 nagios:
service nagios start(restart,stop)
5 打开浏览器:http://主机 IP/nagios
可以看到所监控的远端机器的这个信息了(check_server_load 的返回结果),参看图2.正常状态用绿色表示,一旦远端服务器负载超过 80%,状态信息就会变成红色警告管理员。
4. 对 Nagios 系统的评价和建议
本文是对 Nagios 的远端监控功能的应用和研究,要想得到更加复杂的服务,还需要进
一步的研究它的文档,并且不断的去尝试。和所有的网络管理工具一样,要想进行充分利用
Nagios 进行全面的监控服务,需要进行相当复杂的设置,并且需要在运行时进行调整,以
确保所提供的信息是正确的,这些都会随着对 Nagios 的进一步了解而慢慢容易起来。虽然
Nagios 配置复杂,但是一旦配置成功后它的操作很简单,大部分是基于 web 的操作,而且
易于扩展,这是它的两大特点。它还可以很轻松的与其他的工具进行整合和扩展,可以从其他的应用软件中接收数据,或者向一些报告引擎或者工具中发送数据等,例如,它可以借助 mrtg 软件来义图表的形式显示监控的服务状态,限于篇幅在此就不细说了。Nagios 是一个非常强大的工具,在它运行后,它能够让你的 IT 工作变得更加容易。而相比商业版的类似软件,它也具有低成本的优势。自然,最好的特点是由于它是开放源代码的软件,因此我们随时可以从整个 Nagios 社区中获得帮助,能够共享社区中的各种插件和经验。最后对使用 Nagios 系统提出一点建议。在使用 Nagios 之前,开始考虑需要监控哪些服务和主机,对它们进行统一的规划,首先对重要资源服务进行管理,接着再去实现对其它服务进行管理;在配置完 Nagios 后,保存其配置文档,做好必要的注释,这将会使所监控管理的资源和所运行的插件更加清晰,也方便其他人以后能够在已有 Nagios 上继续工作。
相关推荐
基于Nagios系统的网络管理模块的实现,成军,孟祥武,网络是信息时代的基础,保证网络系统的高效运作,维护信息快速、可靠的传递是非常重要的。因此网络管理已成为信息时代中最重要的
基于Linux的Nagios服务器监控系统的研究与实现.pdf
基于Linux平台Nagios的网络监控研究.pdf
Linux下Nagios的安装与配置,详细说明开源软件Nagios的部署
基于Linux平台下Nagios监控服务系统的设计与实现.pdf
linux下的nagios网络监视器的安装与部署
基于nagios网络监控管理系统的设计与实现毕业论文.doc
Nagios 是一种开源的网络监控系统,可用于监控网络设备、服务器和应用程序。它提供了强大的监控和报警功能,使网络管理员能够实时了解系统的状态并及时采取措施。 Nagios 具有以下主要功能: 监控服务:Nagios 可以...
基于linux系统nagios安装配置。实现linux、windows远程主机监控。
基于Ganglia和Nagios的云计算平台智能监控系统.pdf
基于Nagios的网络监控系统的设计.docx
nagios监控linux主机、web等各种服务,并实现飞信自动报警
Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。 Nagios的主要功能特点: - 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING...
Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后...
nagios-plugins-linux:适用于Linux的Nagios插件
服务器监控利器nagios,网络管理员和服务器开发工程师必备参考
nagios安装snmp所需模块: nagios-snmp-plugins.1.1.1.tgz、 Crypt-DES-2.07.tar.gz、 Digest-HMAC-1.03.tar.gz、 Digest-MD5-2.55.tar.gz、 Digest-SHA1-2.13.tar.gz、 Net-SNMP-v6.0.1.tar.gz
很详细。对网上所有相关资料的整合。特别是nagios.cfg的详细解释