Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知.我最近在我们部门在搞这个东东,呵呵,顺便把一些心得放到博客上给大家分享分享.(注意下面的文章不是笔者的原创,我是在前辈的基础上加入自己的心得和排除一些错误信息,加以修改而已)
一、安装配置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 -q httpd gcc glibc glibc-common gd gd-devel
对于缺少的rpm包,您可以挂载光盘直接使用rpm命令进行安装.如果不想总是被rpm的依赖关系所困扰,您可以通过yum结合本地源来实现rpm包的管理.对于本地源的建立,可以参考笔者的另外一篇关于yum的文章.
说明:以上软件包您也可以通过编译源代码的方式安装,只是后面许多要用到的相关文件的路径等需要按照您的源代码安装时的配置逐一修改.
(2)添加nagios运行所需要的用户和组:
# groupadd nagcmd
# useradd -m nagios
# usermod -a -G nagcmd nagios
把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
# usermod -a -G nagcmd apache
3、编译安装nagios:
# tar zxf nagios-3.1.2.tar.gz
# cd nagios-3.1.2
# ./configure --with-command-group=nagcmd
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nag |