Centos 5.5 安装Nagios 3.2.3记录

网上有N多安装文件,但是写的好的不多,大多是抄来抄去,本文是个人实践安装的记录,安装的时候参考过网上很多高手的杰作,在此非常感谢!

环境:

Centos 5.5 64 位,Nagios 3.2.3 Nrpe 2.12,nagios-plugin 1.4.15

需求: 安装LAMP,如果要安装pnp4nagios,php版本必须5.2以上。软件包:httpd,php,gcc,glibc,glibc-common,gd,gd-devel

安装软件包:

# yum install -y httpd
# yum install -y php
# yum install -y glibc glibc-common
# yum install -y gd gd-devel

#增加用户和组

# useradd nagios
# passwd nagios
# nagios123

#创建nagcmd组,用于从web接口执行外部命令,将nagios,apache加到这个组中

# groupadd nagcmd
# usermod -G nagcmd nagios
# usermod -G nagcmd apache

#下载源文件和插件
# cd /opt
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

#安装和配置nagios

# cd /opt
# tar zxvf nagios-3.2.3.tar.gz
# cd nagios-3.2.3
# ./configure --prefix=/usr/local/nagios --with-command-group=nagcmd
# make all
# make install
# make install-init
# 如果是freebsd系统,在执行make install-init前必须修改Makefile文件,将INIT_OPTS=-o root -g root修改为:INIT_OPTS=-o root -g wheel,否则会提示
install: root: Invalid argument
*** Error code 67
# make install-config
# make install-commandmode

#配置web接口,安装nagios的web配置文件到apache的conf目录下

# make install-webconf
#如果是freebsd,执行这步前必须修改Makefile,修改httpd的conf文件路径,否则会出错。

#配置一个nagiosadmin用户用于nagios的web接口登录。

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

#安装nagios插件

# cd /opt
# tar zxvf 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

#重启apache服务

# service httpd restart

# 验证nagios.cfg文件,建议在每次修改配置文件后都验证,确认无误后,然后启动nagios服务

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

# 启动nagios服务
# service nagios start

#修改SElinux设置,也可以修改/etc/selinux/config使之永久有效

# setenforce 0


#到目前为止,基础的安装已经完成了!打开IE访问Nagios

http://ip/nagios

 

#设置联系人邮件通知,在系统有故障时通过邮件告知管理员,假定设置2个联系人。

# vi /usr/local/nagios/etc/objects/contacts.cfg

#找到define contact,修改mail地址为第一联系人地址,再添加一个联系人信息,如果要添加多个地址,可以在邮件地址后面用逗号隔开。

define  contact{
        contact_name                    user2
        use                             generic-contact
        alias                           contact user2     
       service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           [email protected]
}


# 修改联系人组,找到define contactgroup,在members里增加联系人名字,用逗号分隔。

 


# 添加Windows 服务器到监控平台


# Windows 客户端设置

#下载windows 监控客户端NSclient++0.3.8-win32.msi到被监控的服务上

#下载地址http://files.nsclient.org/x-0.3.x/NSClient%2B%2B-0.3.8-Win32.msi

# 安装NSClient++
# 修改服务,勾选允许桌面交互
services.msc--NSClient++ (Win32)--登录--允许桌面交互
#修改nsc.ini,该文件在NSClient++安装目录下
#去掉[modules]段的模块程序注释,除了CheckWMI.dll,RemoteConfiguration.dll
#检查[Settings]里德allowed_hosts注释,添加Nagios服务器IP地址,或者设置为空,允许全部主机
#确认[NSClient]port12489全的注释是否去掉
#并且在防火墙上开启该端口
#启动nsclient++服务


#Nagios 服务器端设置
#配置Nagios,添加被监控的windows server

#编辑nagios.cfg
# vi /usr/local/nagios/etc/nagios.cfg
#去掉以下注释,保存后退出
# cfg_file=/usr/local/nagios/etc/objects/windows.cfg

#修改主机对象 host_name,alias,address,将这3个对象修改成被监控的windows server信息。
#如果有一台以上主机,可以通过host_group或者增加define host,define service,将新的主机添加进去
# 也可以单独建立被监控的服务器cfg文件,放在/usr/local/nagios/etc/objects下面,然后在nagios.cfg里把文件添加进去即可:
cfg_file=/usr/local/nagios/etc/objects/server-name.cfg


#验证配置文件
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

#验证无误后,重启nagios 服务
# service nagios restart

#至此,添加Windows Server 服务器完成!

 


# 添加Linux 服务器到监控平台

#监控linux 客户机必须在客户机和服务器上安装插件

# linux 客户机安装

# cd /opt
# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz/download

# useradd nagios
# passwd nagios #aerohive
# groupadd nagios
# usermod -G nagios nagios
# tar zxvf nagios-plugins-1.4.15.tar.gz
# tar zxvf nrpe-2.12.tar.gz
# cd nagios-plugins-1.4.15/
# ./configure
# make
# make install
# 默认会在/usr/local/nagios/下生成两个目录libexec和share
# chown -R nagios.nagios nagios
# cd /opt/nrpe-2.12/
# ./configure
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config

#修改nrpg.cfg,添加nagios server ip

# vi /usr/local/nagios/etc/nrpe.cfg
#修改allowed_hosts=127.0.0.1为allowed_hosts=10.155.50.166

#启动nrpe

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
#验证本地nrpe是否开启,如果没有开启,需要再防火墙上开放该端口
# netstat -an|grep 5666

# nagios 服务器端设置

# cd /opt
#tar zxvf nagios-nrpe_2.12.tar.gz
# cd nagios-nrpe_2.12
# ./configure
# make all
# make install-plugin
# 测试与Linux客户机的连通性

# /usr/local/nagios/libexec/check_nrpe -H 被监控端ip

# 如果返回nrpe版本号,则表示服务器与客户机连接正常!

安装时的问题:

1、在linux 客户机上编译nrpe的时候提示:

checking for SSL headers... configure: error: Cannot find ssl headers

解决:

1). 先查看是否安装openssl,如果安装,查看ssl安装路径,编译的时候指定ssl,ssl lib路径,例如
#  ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/opt/open-ssl/lib

2). 如果指定路径也不行,可能缺少该文件,将/usr/lib/libssl.so.0.9.8或者/lib/libssl.so.0.9.8做一个软链接,链接成libssl.so,重新编译即可。
# cd /usr/lib
# ln -s /usr/lib/libssl.so.0.9.8 libssl.so

3). 如果以上两个办法都不行,检查是否安装openssl-devel ,如果没有,则安装yum install openssl-devel

4). 也可以在编译的时候禁用ssl,但是安装成功后客户机与主机不能通信,不能使用check_nrpe方式

# ./configure --enable-commands-args --disable-ssl


2、服务器端显示检查内存失败:NRPE: Unable to read output

解决:在LINUX客户机查看nrpe.cfg关于内存检查的设置:

command[check_memory]=/usr/local/nagios/libexec/check_memory -w 80% -c 90%
在命令行执行该命令提示出错,修改为check_memory -w 20 -c 10后正常。说明是脚本问题。
将客户端以及服务器端nrpe.cfg关于内存的语句修改正确后重启nrpe和nagios进程后正常。

对于nrpe.cfg文件,在linux 客户端的设置必须和nagios服务器端配置一样,否则就会出错。

 

# 配置邮件通知功能

# 配置邮件监控,利用sendmail进行邮件通知

#增加邮件和短信通知信息,notify-service-by-email是邮件通知,service-by-sms为短信


# vi /usr/local/nagios/etc/object/contacts.cfg

#在默认的define contact 里增加:
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email [email protected]


# 定义联系人(略)

# sendmail设置
#检查系统是否安装sendmail,rpm -qa sendmail,如果没有,直接运行yum -y install sendmail

# 设置sendmail邮件接收和转发功能(非必须,可使用默认的)
# cd /etc/mail/access
# vi /etc/mail/access

#增加转发地址,保存后执行:
# makemap hash access < access
# chmod 777 /var/spool/mqueue

#测试sendmail
# /usr/lib/sendmail -bp
/var/spool/mqueue is empty
#发封邮件测试一下sendmail是否正常
# echo testmail | /usr/sbin/sendmail -v mail [email protected]

#重新启动nagios,等下就可以收到邮件了!

问题:

1、邮件通知可以发给163.com等其他信箱,但是公司信箱收不到。
解决:编辑/etc/mail/sendmail.cf
# "Smart" relay host (may be null)
DS
修改为DSma1.abc.com
#abc.com为公司信箱域名
#设置smart relay host是可以让其他邮件服务器代为转发邮件。
#service sendmail restart

#重启后测试正常!


# 安装pnp4nagios 输出图形和图表


#安装pnp4nagios前必须将php升级到5.2,另外需要安装rrdtool

# yum install rrdtool
# yum install php
# yum install php-gd


#下载安装 pnp4nagios-0.6.7.tar.gz

# cd /opt
# wget wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.7.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpnp4nagios%2F&ts=1292162865&use_mirror=ncu
# tar zxvf pnp4nagios-0.6.7.tar.gz
# cd pnp4nagios0.6.7
# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
# make all
# make install
# make install-webconf
# make install-config
# make install-init

# 修改配置

# cd /usr/local/pnp4nagios/etc
# cp misccommands.cfg-sample  misccommands.cfg
# cp nagios.cfg-sample  nagios.cfg
# cp npcd.cfg-sample npcd.cfg
# cp process_perfdata.cfg-sample  process_perfdata.cfg
# cp rra.cfg-sample rra.cfg

# cd pages
# cp web_traffic.cfg-sample web_traffic.cfg
# cd ../check_commands
# cp check_all_local_disks.cfg-sample  check_all_local_disks.cfg
# cp check_nrpe.cfg-sample  check_nrpe.cfg
# cp check_nwstat.cfg-sample  check_nwstat.cfg

# 启动npcd服务
# service npcd start


#修改nagios.cfg
# cd /usr/local/nagios/etc
# vi  nagios.cfg
#修改配置为:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata

#修改 commands.cfg

# cd /usr/local/nagios/etc/objects
# vi commands.cfg
#添加
# 'process-host-perfdata' command definition
define command{
        command_name    process-host-perfdata
        command_line    command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA #后面的-d HOSTPERFDATA很重要!没有的话就不能产生图形文件了!
        }
# 'process-service-perfdata' command definition
define command{
        command_name    process-service-perfdata
        command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
        }
 
#修改模板,添加小太阳镶嵌在nagios页面上。

# templates.cfg
# 在最后添加
define host {
name       host-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_
register   0
}
define service {
name       srv-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register   0
}


# 修改主机配置文件,例如windows.cfg

# cd /usr/local/nagios/etc/objects
# vi windows.cfg
#增加host-pnp,srv-pnp
define host{
        use                     linux-server,host-pnp 
        host_name  Windows Server
        alias                   Windows 2003 server
        address                 1.2.3.4
        }


define service{
        use                      generic-service,srv-pnp     
        host_name                Windows Server
        service_description        PING
        check_command            check_ping!100.0,20%!500.0,60%

其他相关的define host, define service都要修改。

#验证配置文件,无误后重启nagios和httpd 服务
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

#重启服务

# service nagios restart
# service httpd restart

# 最后删除instal.php,安装完成,登录nagios控制台,选择host--主机名旁边的小太阳,即可看到图形界面!
# cd /usr/local/pnp4nagios/share
# rm install.php


问题1:安装rrdtool的时候提示:

No package rrd-tool* available.
Nothing to do

解决:

重新下载x86_64位的rpmforge-release
#RHEL5 / CentOS-5
i386: http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
x86_64: http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
# yum install rrdtool

问题2:安装php5.2的时候提示Nothing to do
解决:

编辑CentOS-Base.repo

# vi /etc/yum.repos.d/CentOS-Base.repo
# 添加以下内容:
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
#保存后执行
# yum --disablerepo=\* --enablerepo=c5-testing install php
# yum  install php


问题3:安装完成后,点击小太阳,提示:
PNP Error
Please check the Kohana documentation for information about the following error.

application/models/data.php [143]:

perfdata directory "/usr/local/pnp4nagios/var/perfdata/BK-AD" for host "BK-AD" does not exist. Read FAQ online

在perfdata.log里显示:

2010-12-13 15:43:08 [7608] [1] process_perfdata.pl-0.6.7 starting
in SYNC Mode
2010-12-13 15:43:08 [7608] [2] Datatype set to 'SERVICEPERFDATA'
2010-12-13 15:43:08 [7608] [1] No Performance Data for AD-Srv / 
2010-12-13 15:43:08 [7608] [1] PNP exiting ...

在/usr/local/pnp4nagios/var/perfdata下面没有主机名目录,手动创建后各目录下也不能产生文件

 

解决:

1.权限问题
在/usr/local/pnp4nagios/var/perfdata下的各个主机名如果是手动创建,必须确认目录权限是否正确

2.开启日志,查看原因

没有目录产生的原因,可以先DEBUG日志,将perfdata日志开启,日志文件在/usr/local/pnp4nagios/var/perfdata.log,编辑/usr/local/pnp4nagios/etc/process_perfdata.cfg
设置LOG_LEVEL = 2

3. 确认nagios下正确修改以下语句:
nagios.cfg 中修改:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata

commands.cfg中修改:
define command {
command_name    process-host-perfdata
command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
}

define command {
command_name    process-service-perfdata
command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl
}

这步比较重要,网上很多人说没有图,但是看过他们的配置文件,好像都没有加上-d HOSTPERFDATA,应该就是这个原因!

4.关于pnp的类型
可以执行
# ./verify_pnp_config -m <mode>

类型在commands.cfg里设置,例如:
define command{
        command_name    process-host-perfdata-file
        command_line    $USER1$/process_perfdata.pl --bulk=/usr/local/nagios/var/host-perfdata
 }

5. 目前关于pnp图形显示还有个问题,点击主机名左边Service的小太阳图片出不来,总是提示:
PNP Error
Please check the Kohana documentation for information about the following error.

application/models/data.php [286]:

XML file "/usr/local/pnp4nagios/var/perfdata/AD-Srv/C___Drive_Space.xml" not found.

好像没有这些xml文件生成,不知道什么原因?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章