Nagios安装部署

tjd0 2013-08-07

一、nagios 安装

nagios是一个分布式的服务监控系统,能够很方便地监控各服务的运行状态,它不是ganglia的替代品,而是通常与ganglia集成在一起,完成强大的系统监控功能。
在安装nagios监控系统时,至少需要安装如下已经个包。这些包都可以直接在官网上下载。
nagios-core:监控引擎及基本的监控页面
nagios-plugin:通过plugin可以监控服务,应用,度量值等指标
nagios-frontend:前端监控页面加强版
我选择安装的版本是:gd-2.0.35,nagios-3.5.0,nagios-plugins-1.4.16,nrpe-2.14
nagios依赖gd库和iconv库。gd库是一个开源的图像动态生成图片库,依赖libpng,libjpeg等图像处理库。iconv库是转化编码库,可以把文件的一种编码转换成其它的编码。安装其时可以产生一个iconv命令,有些linux系统中会自带iconv库。因此在安装 gd库之前,需要先安装  libpng-devel libjpeg-devel 这两个包,否则会在编译 nagios源码会出现 undefined reference to `gdImageCreateFromJpeg' 错误。
安装nagios命令如下:
cd gd-2.0.35&&./configure --prefix=/usr/local/gd && make && make install
cd nagios-3.5.0 && ./configure --prefix=/usr/local/nagios --with-gd-lib=/usr/local/gd/lib/ --with-gd-inc=/usr/local/gd/include/ && make all && make install
安装主程序之后,你仍然需要运行以下命令进行安装nagios:
make install-init :在/etc/rc.d/init.d下安装启动脚本
make install-config: 安装初始配置文件
make install-commandmode:配置相关文件目录权限
 
安装 nagios-plugin和nrpe都比较简单,它们安装时默认就会安装在/usr/local/nagios目录下
cd nagios-plugins-1.4.16 && ./configure && make && make install
cd nrpe-2.14 && ./configure && make && make install
如果/usr/local/nagios/etc/nrpe.conf文件不存在,可以把nrpe-2.14目录下的sample-config/nrpe.conf文件拷到/usr/local/nagios/etc目录下。

二、配置Nagios

检查配置文件是否正确安装 :
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
添加用户权限文件,供web用户界面使用
htpasswd -c htpasswd.users nagios
配置apache httpd配置文件,创建一个<httpd-conf-dir>/conf.d/nagios.conf文件,并且添加如下内容。
#以下的配置是用于执行cgi文件
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" #配置http请求相对路径与cgi存储的位置
<Directory "/usr/local/nagios/sbin">
# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
#以下的配置是用于执行php文件

Alias /nagios "/usr/local/nagios/share" #配置http请求相对路径nagios与php存储的目录
<Directory "/usr/local/nagios/share">
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>

 三、运行nagios 

service nagios start  #启动nagios服务
apachectl start #启动apache https服务
 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d  # 启动nrpe 服务,该服务是nagios的一个

四、troubleshooting

Internal Server Error错误

在发现http请求cgi文件时发现有Internal Server Error错误时,说明是你的linux的安全没有放开。请关闭SELinux防火墙。或者执行如下命令使相应目录不受防火墙控制。

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

异常信息NRPE: Unable to read output 

通过nape检测命令,检服务的可用性,例如 :可以运行如下命令

 /usr/local/nagios/libexec/check_nrpe -H localhost -c check_load 

正常情况下会输出如下服务器相关的状态信息:
OK - load average: 0.14, 0.21, 0.18|load1=0.140;15.000;30.000;0; load5=0.210;10.000;25.000;0; load15=0.180;5.000;20.000;0;
当输出异常信息NRPE: Unable to read output,可能是nape.conf配置文件没有生效,可以重启nape服务,nagios服务。

五、分布式部署配置

如果有两个节点,其中一个节点A是启动nagios服务,另一个节点B启动nrpe守护进程。假设节点A的IP为192.168.35.100,节点B的IP为192.168.35.101。如果要使节点A的nagios服务进程去访问节点B的nrpe进程,那需要进行如下配置。
在节点A的/usr/local/nagios/etc/nagios.cfg文件中添加一行:cfg_file=/usr/local/nagios/etc/objects/services.cfg
再在A上创建一个/usr/local/nagios/etc/objects/services.cfg文件,并且添加以下内容。
define host{
        use                     linux-server           
        host_name               compute-36-03.local
        alias                   compute-36-03
        address                 192.168.35.101
        }
define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       compute-36-03.local
        service_description             Current NRPE check Load
check_command check_nrpe!check_load
        }
如果想知道上述配置是否正确,可以再次运行命令:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

六、Other

安装nagios只是成功了一半,重点是配置nagios相关文件。
nagios还有一个插件叫nsca。nsca是采用推的方式主动向nagios服务器发送数据,与nrpe插件部署方式类似。
还有,除了nagios这样优秀的开源分布式集群服务监控系统外,还有一些优秀的项目也能够完成系统及网络监控的目的。例如:
zabbix是分布式系统网络监控系统。由agent和server组成,支持推拉方式和snmp(v1, v2)协议,可以与snmp(net-snmp)软件配合使用。
splunk 是分布式日志搜索引擎,能够实时索引各个节点上的数据,这样可以用于深入发现解决问题。
cacti是网络流量图形监测工具,基于php,mysql,snmp,rrdtool。


参考文献:
  1. Nagios Core Version 3.x Documentation      http://nagios.sourceforge.net/docs/nagioscore-3-en.pdf
 

相关推荐