Nagios是一个监控运行状态和网络信息的监视系统。Nagios能监听远程和本地服务器服务,提供异常通知功能,也可以在Web页面查看监控信息、监控日志。
一、Nagios特点:
网络监视服务(SMTP,POP3,HTTP,NNTP,PING)
服务器监视(服务器磁盘,服务器进程)
可添加插件对Nagios监视服务进行扩展
可并发处理监视服务
相关安装包:
Nagios core
Nagios plugins
Nagios addons
二、服务器端:
查看安装服务器环境(LAMP)
1 | # rpm -qa | grep httpd |
没有的话安装
# yum -y install gcc glibc glibc-common gd gd-devel php openssl-devel httpd
创建用户:
# useradd -m -s /bin/bash nagios
# groupadd nagios
# usermod -G nagios nagios
# vi /etc/passwd
将其中的nagios:x:500:500::/home/nagios:/sbin/nologin
改成:nagios:x:500:500::/home/nagios:/bin/bash
创建一个用户组名为nagcmd 用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。
因为要用到 CGI 的 Web 监控面板,所以这里我们还要添加一个 nagcmd 组,用于 CGI 执行相关指令。
# /usr/sbin/groupadd nagcmd
# /usr/sbin/usermod -G nagcmd nagios
# /usr/sbin/usermod -a -G nagcmd daemon
(因为是编译方式安装的apache,默认是以daemon用户运行)
下载相关的软件包,服务器端需要安装以下三个包,客户端只需要安装后两个插件包:
[root@server ~]#cd /usr/local/src/tarbag/
[root@server tarbag]#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.2.tar.gz
[root@server tarbag]#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
[root@server tarbag]#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
解压并编译安装Nagios:
# tar xvzf nagios-3.2.2.tar.gz
# cd nagios-3.2.2
运行Nagios配置脚本并使用先前开设的用户及用户组:
# ./configure --prefix=/usr/local/nagios --with-command-group=nagcmd
编译Nagios程序包源码:
# make all
安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限:
# make install
# make install-init
//在/etc/rc.d/init.d安装启动脚本
# make install-config 
//安装示例配置文件,安装的路径是/usr/local/nagios/etc
# make install-commandmode 
//配置目录权限
# ls /usr/local/nagios/
# bin etc libexec sbin share var
三、对nagios进行配置:
样例配置文件默认安装在这个目录下/usr/local/nagios/etc
,这些样例文件可以配置Nagios使之正常运行,只需要做一个简单的修改…
用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg
配置文件,更改email地址nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。
# vi /usr/local/nagios/etc/objects/contacts.cfg
1、安装nagios插件
# cd ../
# tar zxvf nagios-plugins-1.4.16.tar.gz
# cd nagios-plugins-1.4.16
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios
//指定安装目录及用户和组
# make;make install
配置httpd`生成Nagios的Apache配置文件
# cd nagios-3.2.2
# make install-webconf
# /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
# cd sample-config
参考sample-config/httpd.conf配置内容添加到Apache的httpd.conf配置文件中
创建一个nagiosadmin的用户用于Nagios的Apache接口登录。记下你所设置的登录口令,一会儿你会用到它。
# ./htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
密码:nagiosmonitor
重启Apache服务以使设置生效。安装NRPE插件,想获取客户机上更为详细的信息,还必须在服务器及客户端上安装NRPE插件。
# cd ..
# tar zxvf nrpe-2.14.tar.gz
# cd nrpe-2.14
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/
# make all
# make install-plugin;make install-daemon;make install-daemon-config
# ls /usr/local/nagios/libexec/
# check_apt check_ftp check_mailq check_overcr check_tcp .......
验证Nagios的样例配置文件
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果没有报错,可以启动Nagios服务
启动httpd及nagios服务并验证
# chkconfig --add nagios
//设置nagios及http开机自启动
# chkconfig nagios on
# chkconfig httpd on
# service nagios start
# service httpd start
2、客户端安装
# useradd -s /sbin/nologin nagios
//添加nagios用户
安装nagios-plugins
# tar -zxvf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --prefix=/usr/local/nagios
# make<li># make install
# chown nagios.nagios /usr/local/nagios/
# chown -R nagios.nagios /usr/local/nagios/libexec/
安装nrpe插件
# tar -zxvf nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure --prefix=/usr/local/nagios/
# make all<li># make install-plugin
安装check_nrpe这个插件
# make install-daemon
安装daemon
# make install-daemon-config
安装配置文件
如果安装时报错:checking for SSL headers… configure: error: Cannot find ssl headers
# rpm -qa|grep openssl
# openssl-devel-0.9.8e-12.el5_4.6
# openssl-0.9.8e-12.el5_4.6
# yum install openssl-devel
或者下载:http://www.openssl.org/source/
# tar zxvf openssl-1.0.0a.tar.gz
# cd openssl-1.0.0a
# ./config
# make;make test
# make install
修改客户端配置文件
# vi /usr/local/nagios/etc/nrpe.cfg
# server_port:5666
# allowed_hosts=127.0.0.1,192.168.1.95 
//添加服务器端的IP地址
指定nagios监控主机ip,多个ip用逗号分隔,后面的IP地址,是nagios服务端的ip地址,也就是说只允许指定的ip通过nrpe开的端口5666取得本机的信息。
然后修改nrpe.cfg中的command部分。
启动NRPE守护进程:(可以将此命令加入/etc/rc.local,以便开机自动启动)
# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
可以将此命令加入/etc/rc.local,以便开机自动启动
# echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.local
# netstat -utpln |grep nrpe
//查看nrpe进程是否已正常启动
# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 NRPE v2.14
//nrpe测试结果,此结果为nrpe已经正常工作了
然后在nagios监控服务器上测试
# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.77
//被监控主机ip
返回信息被监控服务器上安装的NRPE版本:NRPE v2.12
3、定义监控内容
# vi /usr/local/nagios/etc/nrpe.cfg
//定义监控服务器内容
# command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
#监控登陆的用户数量
# command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
#监控CPU的负载
# command[check_sda2]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda2
#监控磁盘利用率,这里的sda2必须是实际的硬盘分区,可使用fdisk –l查
# command[check_swap]=/usr/local/nagios//libexec/check_swap -w 20 -c 10
#监控交换空间
# command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
#监控进程中的僵尸进程
# command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
#监控所有进程
注意:command后面括号中的内容就是定义的变量,变量名可以任意指定,只需和服务器配置文件中的一致即可。