网上有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文件生成,不知道什么原因?