Nagios是一款企业级网络监控系统,它功能之强大,管理之简单,使得很多大型网络公司都对它有高度的称赞,并把它投入到自己的网络环境,下面是安装过程,本文是基于turboLinux11环境安装的,同时分为监控端和被监控端。
1、安装前准备
1.1安装所需环境的软件
包括Apache 2.x gcc编译器 gd 库 和 gd-devel 开发库,因为我的系统是完全安装的,所以就省略了。
yum install http
yum install gcc
yum install gd
yuminstall gd-devel
1.2下载nagios软件和插件
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz/download
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
当然我们也可以登录nagios官网,下载最新的软件http://www.nagios.org/download/
2、监控端nagios安装过程
2.1添加用户和用户组
#useradd nagios
#useradd apache (turbolinux 默认有该用户)
#passwd nagios
#groupadd nagcmd //创建用户组用于从web接口执行外部命令,并将nagios和Apache用户添加到这个组里
#usermod -G nagcmd nagios
#usermod -G nagcmd nagios
2.2编译和安装
#tar -zxvf nagios-3.2.1.tar.gz
#cd nagios-3.2.1.tar.gz
#./configure --with-command-group=nagcmd
#make all
#make install
#make install-init
#make install-config
#make install-commandmode
#make install-webconf
安装nagios-plugins
#tar -zxvf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15.tar.gz
#./configure --with-nagios-user=nagios --with-nagios-group=nagcmd --enable-ssl --enable-command-args
注意:RedHat可能会出现checking for redhat spopen problem.... 停住
添加 --enable-redhat-pthread-workaround
#make all
#make install
ls /usr/local/nagios/libexec
会显示安装的插件文件,即所有的插件都安装在libexec这个目录下
将Nagios加入到服务列表中以使之在系统启动时自动启动
#chkconfig --add nagios
#chkconfig nagios on
安装check_nrpe插件
#tar -zxvf nrpe-2.12.tar.gz
#./configure
#make
#make install
至此监控服务器上的软件就安装完了,我们来看看软件安装完后他的结构
# ll /usr/local/nagios/ |awk '{print $8}'
bin Nagios执行程序所在目录,nagios文件即为主程序
etc Nagios配置文件位置
include 不清楚,哈哈!!!!
libexec nagios-plugins安装后放置插件目录,
sbin Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
share Nagios网页文件所在的目录
var Nagios日志文件,包括归档日志
3、配置WEB接口
方法一:直接在安装nagios时 make install‐webconf
创建一个nagiosadmin的用户用于Nagios的WEB接口登录。记下你所设置的登录口令,一会儿你会用到它。
htpasswd ‐c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重启Apache服务以使设置生效。
service httpd restart
方法二:在httpd.conf最后添加如下内容:
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用于此目录访问身份验证的文件
Require valid-user
</Directory>
Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用于此目录访问身份验证的文件
Require valid-user
</Directory>
添加用户test
/usr/local/apache2/bin/htpasswd ‐c /usr/local/nagios/etc/htpasswd test
New password: (输入12345)
Re‐type new password: (再输入一次密码)
Adding password for user test
查看认证文件的内容
less /usr/local/nagios/etc/htpasswd
test:OmWGEsBnoGpIc 前半部分是用户名test,后面是加密后的密码
4、启动nagios
验证Nagios的样例配置文件
/usr/local/nagios/bin/nagios ‐v /usr/local/nagios/etc/nagios.cfg
如果没有报错,可以启动Nagios服务
方法一:因为前面我们已经将nagios添加到系统服务器里,所以可以直接启动
#service nagios start
方法二:手动输入命令启动
#/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
5、更改SELinux设置
SELinux(安全增强型Linux)同步发行与安装后将默认使用强制模式。这会在你尝试联入Nagios的CGI时导致一个"内部服务错误"消息。
如果是SELinux处于强制安全模式时需要做
getenforce
令SELinux处于容许模式
setenforce 0
如果要永久性更变它,需要更改/etc/selinux/config里的设置并重启系统。
不关闭SELinux或是永久性变更它的方法是让CGI模块在SELinux下指定强制目标模式:
chcon ‐R ‐t httpd_sys_content_t /usr/local/nagios/sbin/
chcon ‐R ‐t httpd_sys_content_t /usr/local/nagios/share/
6、测试
登录 http://localhost/nagios/ 输入用户名和密码就可以正常登录了
7、被监控机器上安装软件
在被监控主机上
增加用户
useradd nagios
设置密码
passwd nagios
2安装nagios插件
tar ‐zxvf nagios‐plugins‐***.tar.gz
cd nagios‐plugins‐***
./configure
make
make install
chown nagios.nagios /usr/local/nagios
chown ‐R nagios.nagios /usr/local/nagios/libexec
安装nrpe (监控机也安裝)
tar ‐zxvf nrpe‐***.tar.gz
cd nrpe‐2.1.2
./configure --enable-ssl --enable-command-args
make all
make install‐plugin
make install‐daemon
make install‐daemon‐config
/usr/local/nagios/libexec/check_nrpe ‐H localhost
会返回当前NRPE的版本
# /usr/local/nagios/libexec/check_nrpe ‐H localhost
NRPE v2.1.2
也就是在本地用check_nrpe连接nrpe daemon是正常的
注:为了后面工作的顺利进行,注意本地防火墙要打开5666能让外部的监控机访问
同时修改nrpe配置文件,添加监控端ip,允许监控端访问
allowed_hosts=127.0.0.1,192.168.99.2
/usr/local/nagios/libexec/check_nrpe –h查看这个命令的用法
可以看到用法是check_nrpe –H 被监控的主机 ‐c要执行的监控命令
注意:‐c后面接的监控命令必须是nrpe.cfg文件中定义的.也就是NRPE daemon只运行nrpe.cfg中所定义的命令
在监控与被监控机上启动NRPE:
方法一:手动输入命令启动
/usr/local/nagios/bin/nrpe ‐c /usr/local/nagios/etc/nrpe.cfg ‐d
方法二:将服务添加到xinetd (前提是服务器安装了xinetd服务)
在安装nrpe的时候最后将启动添加到xinetd
#make install-xinetd
vi /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
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.99.2(添加监控端ip,允许监控端访问)
}
vi /etc/service
添加如下:
nrpe 5666/tcp #nrpe Daemon
启动:
#service xinetd restart
查看nrpe是否启动监听端口
#netstat -an|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
在监控服务器上查看被监控机器是否访问nrpe
# /usr/local/nagios/libexec/check_nrpe ‐H 192.168.99.3
NRPE v2.1.2