一、安装配置Nagios 1、Nagios简介 Nagios是一款遵循GPLv2的开源网络监控软件,可用来监控指定的多种系统的主机、服务,并可在它们的工作状态发生变化时通知管理员。它的特性包括: 1)监控网络服务(HTTP、POP3、SMTP、PING、MySQL等) 2)监控主机资源(磁盘空间利用率、内存利用率、CPU负载等) 3)简洁的插件设计接口,使得用户可以轻松开发所需的检测脚本 4)并行服务模式 5)轻松描述网络结构,并且能够区辨“宕机”和“主机不可达” 6)通过邮件或用户自定义的方式将主机或服务的工作状态变化情况通知给管理员 7)自动日志滚动 8)支持以冗余方式进行主机监控 9)可以通过web方式直观的查看当前网络状态、通知和问题历史、日志文件等等,此组件为可选 Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、NSClient++和NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。而四个ADDON中,NRPE用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控;NSCA用来让被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到);NSClient++是用来监控Windows主机时安装在Windows主机上的组件;而NDOUtils则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理。这四个ADDON(附件)中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端。 下图是笔者根据自己的理解给出的Nagios各组件的关系图,希望能帮助读者理解。如果您对此构图中的关系持有异议,欢迎通过各种方式跟笔者交流。
目前,Nagios只能安装在Linux系统主机上,其编译需要用到gcc。同时,如果打算使用web界面的管理工具的话,还需要有apache服务器和GD图形库的支持。 2、安装前的准备工作 (1)解决安装Nagios的依赖关系: Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装:
对于缺少的rpm包,您可以挂载光盘直接使用rpm命令进行安装。如果不想总是被rpm的依赖关系所困扰,您可以通过yum结合本地源来实现rpm包的管理。对于本地源的建立,可以参考笔者的另外一篇关于yum的文章。 说明:以上软件包您也可以通过编译源代码的方式安装,只是后面许多要用到的相关文件的路径等需要按照您的源代码安装时的配置逐一修改。 (2)添加nagios运行所需要的用户和组:
把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
3、编译安装nagios:
为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:
在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:
创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:
以上过程配置结束以后需要重新启动httpd:
4、编译、安装nagios-plugins nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。
5、配置并启动Nagios (1)把nagios添加为系统服务并将之加入到自动启动服务队列:
(2)检查其主配置文件的语法是否正确:
(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
(4)配置selinux 如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。 当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
(5)通过web界面查看nagios:http://your_nagios_IP/nagios 登录时需要指定前面设定的web认证帐号和密码。 注意:为了nagios系统的安全,建议您使用信息摘要强认证模式(如MD5),强制使用web的TSL/SSL安全通讯模式,并且通过访问控制列表设定能访问nagios的web界面的客户端地址。 (责任编辑:IT) |