简介
Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。
Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。

Nagios更进一步的特征包括:

免费内容:
监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
监控主机资源(处理器负荷、磁盘利用率等);
简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
并行服务检查机制;
具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
自动的日志回滚;
可以支持并实现对主机的冗余监控;

可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

Nagios跟Cacti一样,也是需要一个LAMP的环境,MySQL可以安装,也可以不安装,一般情况Nagios都是把数据放入文件中的。如果需要把文件放入到数据库,则需要安装MySQL



一、准备工作,搭建LAMP

搭建LAMP的方法可以使用源码编译安装,也可以使用rpm包的形式来安装,为了简化步骤,这里使用rpm包的形式来安装。

1、配置好YUM源,如果配置好的,可以省略此步骤

复制内容到剪贴板

代码:

# vim /etc/yum.repos.d/cacti.repo     //新建文件或者在已有文件中添加以下内容
[dag]
name=Dag RPM Repository for
Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1




2、安装LAMP 

复制内容到剪贴板

代码:

# yum install -y mysql mysql-server php-mysql httpd php php-pdo lm_sensors net-snmp php-snmp net-snmp-utils perl-Net-Daemon perl-PlRPC perl-DBI rrdtool perl-rrdtool perl-DBD-MySQL net-snmp-libs libart_lgpl-devel




3、启动服务及设置开机启动

复制内容到剪贴板

代码:

# service httpd start
# service mysqld start

# chkconfig httpd on
# chkconfig mysqld on




4、防火墙开户端口或者关掉防火墙

复制内容到剪贴板

代码:

# service iptables stop          //关闭防火墙
# iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT     //防火墙开户端口




5、验证LAMP是否正常工作 

复制内容到剪贴板

代码:

# vim /var/www/html/index.php
<?
phpinfo();
?>




使用WEB访问http://IP/index.php,如果可以看到PHP的信息,说明LAMP配置成功


二、安装Nagios

1、添加用户和组 

复制内容到剪贴板

代码:

# groupadd nagcmd
# useradd -m nagios
# usermod -a -G nagcmd nagios
把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
# usermod -a -G nagcmd apache



2、下载Nagios,开始编译安装

复制内容到剪贴板

代码:

#http://sourceforge.net/projects/nagios/?source=directory
# 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



执行如下命令,实现在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:
# make install-webconf 

创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

以上过程配置结束以后需要重新启动httpd:

# service httpd restart


3、编译、安装nagios-plugins
Nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件 

复制内容到剪贴板

代码:

# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install




4、配置并启动Nagios
(1)把nagios添加为系统服务并将之加入到自动启动服务队列: 

复制内容到剪贴板

代码:

# chkconfig --add nagios
# chkconfig nagios on




(2)检查其主配置文件的语法是否正确:

复制内容到剪贴板

代码:

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg




(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了: 

复制内容到剪贴板

代码:

# service nagios start




(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
#getenforce

如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
#setenforce 0
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。
当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:

复制内容到剪贴板

代码:

# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share



(5)通过web界面查看nagios:
http://your_nagios_IP/nagios
登录时需要指定前面设定的web认证帐号和密码。

(6)安装NRPE

复制内容到剪贴板

代码:

# wget http://sourceforge.net/projects/ ... 13/nrpe-2.13.tar.gz
# tar zxvf nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure
# make all
# cp src/check_nrpe /usr/local/nagios/libexec/

三、被监控端

如果被监控端是Linux,那么需要安装NRPE和nagios-plugin
如果是Windows,需要安装NSClien++
1、Linux

1.1、编译、安装nagios-plugins

Nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件 

复制内容到剪贴板

代码:

# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install



1.2、安装配置NRPE 

复制内容到剪贴板

代码:

# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz
# tar zxvf nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config
# make install-xinetd
# cp src/check_nrpe /usr/local/nagios/libexec/

# vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,SERVER_IP

# vim /etc/xinetd.d/nrpe

# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe {
     flags     = REUSE
     socket_type =stream
     port = 5666
     wait = no
     user = nagios
     group = nagios
     server = /usr/local/nagios/bin/nrpe
     log_on_failure += USERID
     disable = no
     only_from = 127.0.0.1 IP
}

# vim /etc/services
nrpe     5666/tcp     #nrpe
# service xinetd start



1.3 为服务端增加NRPE命令 

复制内容到剪贴板

代码:

# vim /usr/local/nagios/etc/objects/commands.cfg
define command {
        command_name check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}