作者:qweqwe | 来源:互联网 | 2017-11-03 04:20
Nagios在监控方面的强大功能,以及基于GPLv2的开源特性,使其在监控领域具有超群的性价比,深的广大运维师的好评。而今天作者这里提到的“nagios+pnp4nagios+nconf+ndoutils”是以nagios为核心、伴以多款开源软件来进行的整合部署,从而实现监控信息图形
Nagios在监控方面的强大功能,以及基于GPLv2的开源特性,使其在监控领域具有超群的性价比,深的广大运维师的好评。
而今天作者这里提到的“nagios+pnp4nagios+nconf+ndoutils”是以nagios为核心、伴以多款开源软件来进行的整合部署,从而实现监控信息图形化、web页面定义定义监控配置、监控信息存储等一系列功能的解决方案。
下面就除nagios之外需要用到的几个开源软件进行简要介绍:
pnp4nagios是基于RRD轮循(环状)数据库中所提供的综合信息,以可视化图形的方式呈现给用户的一款nagios插件;
nconf是基于PHP使用户通过web页面实现对nagios各项属性进行配置,诸如模板定义、添加修改监控的主机/服务等操作;
ndoutils可以导出nagios通过SNMP捕获到的当前和历史数据并存储到MySQL数据库中,并且自身以一个独立守护进程的状态存在。
下图简述他们之间协同工作的原理
以下的内容作者将一步步的剖析整套方案的部署过程:
一、成功安装配置nagios
在上一篇博文Nagios远程监控软件的安装与配置详解中作者已经对nagios的工作原理以和安装及配置流程进行了详细地说明,这里就不在赘述。
Ps:为了不影响后面步骤的正常进行,请保证您已成功安装nagios、nagios-plugins和nrpe。
二、rrdtool与pnp4nagios的安装与配置
1.rrdtool的安装需要一系列繁杂的依赖关系下面提供两种安装方法
i.编译安装
-
yum install -y pango pango-devel freetype freetype-devel libpng libpng-devel gettext gettext-devel libjpeg libjpeg-devel gd gd-devel libxml2 libxml2-devel libiconv libiconv-devel qpixman qpixman-devel glib glib-devel cairo cairo-devel libart*
-
-
tar xvf rrdtool-1.4.5.tar.gz
-
#解压文件
-
cd rrdtool-1.4.5
-
./configure --prefix=/usr/local/rrdtool
-
make && make install
-
#编译安装
ii.本地yum安装
-
yum localinstall -y rrdtool-perl-1.4.4-1.el5.wrl.i386.rpm rrdtool-devel-1.4.4-1.el5.wrl.i386.rpm rrdtool-1.4.4-1.el5.wrl.i386.rpm
-
#下载并安装包含所有rrdtool依赖关系的rpm包和rrdtool
Ps:由于没有找到rrdtool-1.4.5的rpm包...?澹?饫锞椭荒苁褂?.4.4版了
2.安装pnp4nagios
-
tar zxvf pnp4nagios-0.6.14.tar.gz
-
-
cd pnp4nagios-0.6.14
-
./configure --prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios --with-nagios-group=nagcmd
-
注意:这里作者在使用编译安装rrdtool时遇到报错
解决方法:
-
cp -R /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/* /usr/lib/perl5/5.8.8/i386-linux-thread-multi/
-
./configure --prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios --with-nagios-group=nagcmd
-
#将需要与perl相关文件复制过去后,重新编译
Ps:使用yum安装rrdtool,则忽略此步骤。
-
make all && make install && make install-webconf && make install-config && make install-init
-
-
cd /usr/local/pnp4nagios/etc
-
mv misccommands.cfg-sample misccommands.cfg
-
mv nagios.cfg-sample nagios.cfg
-
mv rra.cfg-sample rra.cfg
-
cd /usr/local/pnp4nagios/etc/pages/
-
mv web_traffic.cfg-sample web_traffic.cfg
-
cd ../check_commands
-
mv check_all_local_disks.cfg-sample check_all_local_disks.cfg
-
mv check_nrpe.cfg-sample check_nrpe.cfg
-
mv check_nwstat.cfg-sample check_nwstat.cfg
-
#将上述配置文件重命名,使之能够被程序识别
重启服务
-
service npcd restart
修改nagios相关配置文件中参数
-
process_performance_data=1
-
-
host_perfdata_command=process-host-perfdata
-
service_perfdata_command=process-service-perfdata
-
-
cd /usr/local/nagios/etc/objects
-
vim commands.cfg
-
#对nagios命令配置文件进行设置
-
# 'process-host-perfdata' command definition
-
define command{
-
command_name process-host-perfdata
-
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl
-
}
-
# 'process-service-perfdata' command definition
-
define command{
-
command_name process-service-perfdata
-
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl
-
}
-
#添加上面两行在文件的末行 ,并删除或注释掉原有对process-host-perfdata和process-service-perfdata进行定义的字段
说明:command.cfg文件的默认设置对process-host-perfdata 和 process-service-perfdata有定义,如果直接添加而不删除默认定义会发生冲突,进而而导致在检测配置文件时报错。
-
vim templates.cfg
-
-
define host {
-
name host-pnp
-
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
-
register 0
-
}
-
define service {
-
name srv-pnp
-
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
-
register 0
-
}
-
-
cp ../pnp4nagios-0.6.14/contrib/ssi/* /usr/local/nagios/share/ssi/
-
定义监控服务/主机
-
cd /usr/local/nagios/etc/
-
vim mylinux.cfg
-
#自定义监控主机和监控服务
-
define host{
-
use linux-server
-
host_name mylinux
-
alias mylinux
-
address 192.168.0.72
-
}
-
#定义监控主机
-
define service{
-
host_name mylinux
-
use generic-service,srv-pnp
-
service_description PING
-
check_command check_ping!100.0,20%!500.0,60%!
-
}
-
define service{
-
hostgroup_name mylinux
-
use generic-service,srv-pnp
-
service_description remote_load
-
check_command check_nrpe!check_load
-
}
-
#定义监控的服务
-
define serviceextinfo {
-
host_name mylinux #与主机名对应
-
service_description remote_load #与要显示的服务对应
-
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
-
}
-
#这是向nagios监控界面对应服务添加pnp4nagios图标的方法
说明:pnp4naigos在安装关联nagios后会对所监控的服务进行图形化显示,但是并非所有服务都会自动在nagios监视见面出现pnp4nagios的图标,故用以上字段予以定义。
Ps:具体的监控主机以及监控服务在Nagios远程监控软件的安装与配置详解中有详细说明,这里就不做重复介绍了^_^
-
nagios -v /var/www/nafios/etc/nagios.cfg
-
-
service nagios restart
-
刷新nagios界面,您会发现在之前定义的服务后面对应的回出现pnp4nagios的图标
且支持鼠标悬停显示
点击pnp4nagios图标后进图绘图界面