sudo apt-get install build-essential
sudo apt-get install libgd2-dev(这个包可能名称有修改)
passwd nagios
在Ubuntu服务器版(6.01或更高版本),创建一个用户组名为nagios(默认是不创建的)。在Ubuntu桌面版上要跳过这一步。
/usr/sbin/usermod -G nagios nagios
创建一个用户组名为nagcmd用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd www-data
cd nagios-3.0rc1
make install-init
make install-config
make install-commandmode
libgd-devel
libpng
libpng-devel
libjpeg
libjpeg-devel
zlib
zlib-devel
<li><a href="<?php echo $cfg["cgi_base_url"];?>/statuswrl.cgi" target="<?php echo $link_target;?>">3D拓扑图</a></li>
4、编译并安装Nagios插件
cd nagios-plugins-1.4.11
make all
make install
check_http.o(.text+0x120b):/home/machielr/nagios-plugins-1.4.13/plugins/check_http.c:789: undefined reference to `np_net_ssl_read'
check_http.o(.text+0x12bd):/home/machielr/nagios-plugins-1.4.13/plugins/check_http.c:828: undefined reference to `np_net_ssl_cleanup'
check_http.o(.text+0x14f4):/home/machielr/nagios-plugins-1.4.13/plugins/check_http.c:734: undefined reference to `np_net_ssl_init'
check_http.o(.text+0x1513):/home/machielr/nagios-plugins-1.4.13/plugins/check_http.c:736: undefined reference to `np_net_ssl_check_cert'
check_http.o(.text+0x151a):/home/machielr/nagios-plugins-1.4.13/plugins/check_http.c:737: undefined reference to `np_net_ssl_cleanup'
等错误
查一下这个包有没有装 libssl-dev ,要是有装在做下面的步骤。
在 Make 出错后,用make distclean 在重新Configure 在Make all 一切正常了。
tar -zxvf nrpe-2.8.1.tar.gz
cd nrpe-2.8.1
./configure
*** Configuration summary for nrpe 2.8.1 05-10-2007 ***:
General Options:
-------------------------
NRPE port: 5666
NRPE user: nagios
NRPE group: nagios
Nagios user: nagios
Nagios group: nagios
Review the options above for accuracy. If they look okay,
type 'make all' to compile the NRPE daemon and client.
输出如下
*** Compile finished ***
If the NRPE daemon and client compiled without any errors, you
can continue with the installation or upgrade process.
Read the PDF documentation (NRPE.pdf) for information on the next
steps you should take to complete the installation or upgrade.
安装check_nrpe这个插件
make install-plugin
之前说过监控机需要安装check_nrpe这个插件,被监控机并不需要,我们在这里安装它是为了测试的目的
make install-daemon
make install-daemon-config
[root@dbpi nrpe-2.8.1]# make install-xinetd
输出如下
/usr/bin/install -c -m 644 sample-config/nrpe.xinetd /etc/xinetd.d/nrpe
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在后面增加监控主机的地址0.111,以空格间隔
}
only_from = 127.0.0.1 192.168.0.111
(6)编辑/etc/services文件,增加NRPE服务
增加如下
# Local services
nrpe 5666/tcp # nrpe
[root@dbpi nrpe-2.8.1]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@dbpi nrpe-2.8.1]# netstat -at|grep nrpe
tcp 0 0 *:nrpe *:* LISTEN
[root@dbpi nrpe-2.8.1]# netstat -an|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
可以看到5666端口已经在监听了
之前我们在安装了check_nrpe这个插件用于测试,现在就是用的时候.执行
/usr/local/nagios/libexec/check_nrpe -H localhost
会返回当前NRPE的版本
[root@dbpi nrpe-2.8.1]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.8.1
注:为了后面工作的顺利进行,注意本地防火墙要打开5666能让外部的监控机访问
cd /usr/local/nagios/etc
vi nrpe.cfg
找到下面这段话
# The following examples use hardcoded command arguments...
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
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/hda1
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
vi /usr/local/nagios/etc/commands.cfg
在最后面增加如下内容
########################################################################
#
# 2007.9.5 add by yahoon
# NRPE COMMAND
#
########################################################################
# 'check_nrpe ' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
use local-service
host_name NAGIOS
service_description SYSTEMLOAD
check_command check_nrpe!check_load
}
在被监控机上增加check_swap命令的定义
vi /usr/local/nagios/etc/nrpe.cfg
增加下面这一行
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
修改了配置文件,当然要重启.但是
如果你是以独立的daemon运行的nrpe,那么需要手动重启.
如果你是在xinetd或者inetd下面运行的,则不需要.
由于我们是xinetd下运行的,所以不需要重启服务
use local-service
host_name NAGIOS
service_description SYSTEMSWAP
check_command check_nrpe!check_swap
}
RRDtool >= 1.x
PHP >= 4.3.8
zlib
GD
php-gd
Nagios 2.x以上版本
PNP-0.4.13
#tar zxvf ../pnp-0.4.13.tar.gz
#cd pnp-0.4.13
#./configure
注: 这一步注意检查gd的相关软件是否都检测到了,如没有需要手动安装。最后,检查pnp的相关全部配置,全部没问题了再进行下一步安装
------------------------- -------------------
Nagios user/group: nagios nagios
Install directory: /usr/local/nagios
HTML Dir: /usr/local/nagios/share/pnp
Config Dir: /usr/local/nagios/etc/pnp
Path to rrdtool: /usr/bin/rrdtool (Version 1.2.23)
RRDs Perl Modules: FOUND (Version 1.2023)
RRD Files stored in: /usr/local/nagios/share/perfdata
process_perfdata.pl Logfile: /usr/local/nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/nagios/var/spool/perfdata/
#make install
#make install-config
#make install-init
为什么要使用Bulk Mode?
Bulk mode is a bit more complicated than the default-mode but reduces the load on the nagios server significantly because the data collector process_perfdata.pl is not invoked for every service.
关于Perfdata的收集模式可以参考这里
修改nagios.cfg
#修改此项值为1
process_performance_data=1
#
# service performance data
#
service_perfdata_file=/usr/local/nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$\tSERVICEOUTPUT::$SERVICEOUTPUT$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
# host performance data starting with Nagios 3.0
#
host_perfdata_file=/usr/local/nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tHOSTOUTPUT::$HOSTOUTPUT$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
service/host_perfdata_file 包含performance data的临时文件存放路径
service/host_perfdata_file_template 临时文件的格式。使用nagios宏来定义数据
service/host_perfdata_file_mode a指定数据追加记录到文件中
service/host_perfdata_file_processing_interval 每15秒执行一次
service/host_perfdata_file_processing_command 执行时调用的命令
command_name process-service-perfdata-file
command_line $USER1$/process_perfdata.pl --bulk=/usr/local/nagios/var/service-perfdata
}
command_name process-host-perfdata-file
command_line $USER1$/process_perfdata.pl --bulk=/usr/local/nagios/var/host-perfdata
}
编辑templates.cfg,增加pnp的主机和service定义
name host-pnp
register 0
action_url /nagios/pnp/index.php?host=$HOSTNAME$
}
name srv-pnp
register 0
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
}
use web-server,host-pnp
host_name localhost
alias localhost
address 127.0.0.1
}
use local-service,srv-pnp
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
#/etc/init.d/nagios reload
(8)如果在查看pnp图时显示GD库没有安装,请安装php-gd,并重启apache2