14.6.1 服务器端安装PNP生成图形监控曲线
您可以在百度里搜索“跟老男孩学Linux运维:Web集群实战 艾草文学(www.321553.xyz)”查找最新章节!
14.6.1 服务器端安装PNP生成图形监控曲线
PNP是一款配合Nagios出图的软件,官方站点为:http://www.pnp4nagios.org。
1.PNP出图基础依赖软件安装
先通过下面的命令安装PNP软件需要的基础包,如果有部分是重复安装,再执行一下也不会有问题。
[root@nagios-server ~]# yum install cairo pango zlib zlib-develfreetype freetype-devel gd gd-devel -y [root@nagios-server ~]# rpm-qa cairo pango zlib zlib-devel freetype freetype-devel gd gd-develzlib-devel-1.2.3-29.el6.x86_64freetype-devel-2.3.11-15.el6_6.1.x86_64 gd-2.0.35-11.el6.x86_64gd-devel-2.0.35-11.el6.x86_64 freetype-2.3.11-15.el6_6.1.x86_64zlib-1.2.3-29.el6.x86_64 pango-1.28.1-10.el6.x86_64cairo-1.8.8-6.el6_6.x86_64
然后安装rrdtool依赖的libart_lgpl相关软件包,这个软件包要优先于rrdtool安装。
[root@nagios-server ~]# yum install libart_lgpllibart_lgpl-devel -y [root@nagios-server ~]# rpm -qa libart_lgpllibart_lgpl-devel libart_lgpl-2.3.20-5.1.el6.x86_64libart_lgpl-devel-2.3.20-5.1.el6.x86_64
PNP工具最终是通过rrdtool实现的画图,因此需要提前安装rrdtool。
[root@nagios-server ~]# yum install rrdtool rrdtool-devel -y[root@nagios-server ~]# rpm -qa rrdtool rrdtool-develrrdtool-1.3.8-7.el6.x86_64 rrdtool-devel-1.3.8-7.el6.x86_64[root@nagios-server ~]# which rrdtool /usr/bin/rrdtool
2.安装出图Web界面展示软件PNP
此处选择0.4.14的PNP版本,如果选择高版本在出图方面可能会有坑,正常情况下,选0.4版已经足够了,因此,如果没有特殊需求,建议最好完全按照本书测试步骤,在弄清楚之后再变通版本。
PNP软件无法yum安装,可通过编译的方式进行安装,编辑过程的命令集如下:
wget -O pnp-0.4.14.tar.gz http://downloads.sourceforge.net/project/pnp4nagios/PNP/pnp-0.4.14/pnp-0.4.14.tar.gzuse_mirror=cdnetworks-kr-2&80495215yum install perl-Time-HiRes -y tar zxf pnp-0.4.14.tar.gz cdpnp-0.4.14 ./configure --with-rrdtool #<==配置出图的rrdtool--with-perfdata-dir=/usr/local/nagios/share/perfdata/#<==出图所用的数据路径 make all make install make install-config makeinstall-init ll /usr/local/nagios/libexec/ |grep process
如果configure后出现如下警告信息,请忽略:
################# # WARNING: The RRDs Perl Modules are not foundon your System # Using RRDs will speedup things in largerInstalltions. #####################
安装Nagios PNP时可能会有报错,如下:
configure: error: Perl Module Time::HiRes not available
解决方案为:
yum install perl-Time-HiRes -y
PNP提供了一个获取数据出图的Perl脚本,可以用如下命令查到:
[root@nagios-server pnp-0.4.14]# ll /usr/local/nagios/libexec/|grep process -rwxr-xr-x 1 nagios nagios 31813 Jul 1 18:50process_perfdata.pl
此时打开浏览器访问"http://10.0.0.7/nagios/pnp/",应该会出现如图14-22所示的图形界面,但是没有业务数据显示。
图14-22 刚部署完无数据时PNP图形
如果出现如图14-23所示的问题图形显示,先别着急,可能过一会重新访问上述地址就会恢复正常。
图14-23 刚部署完PNP时可能出现的问题图
如果过了很长时间重新访问上述地址还不正常,可以执行如下命令看看,或者继续后面的操作,然后在访问试试:
yum install php-gd gd gd-devel -y
提示:如果是按照本书步骤安装的Nagios,应该不会出现上面图14-23无法显示图形的问题了。上述问题已经在本文的开始部分提前处理掉了。
3.Nagios出图相关配置
1)执行编辑命令“vi/usr/local/nagios/etc/nagios.cfg+835”,修改nagios.cfg主配置文件第835行,将如下参数对应的值从0改为1,表示记录数据。
process_performance_data=1 #<==默认值为0,改为1。
然后继续向下从大概第848行开始,找到如下两项,取消参数开头的注释,修改后的最终结果如下:
host_perfdata_command=process-host-perfdataservice_perfdata_command=process-service-perfdata
2)执行编辑命令“vi/usr/local/nagios/etc/objects/commands.cfg+227”,修改commands.cfgNagios命令配置文件,定义出图获取数据的命令。
要修改的是commands.cfg配置文件的第227~238行,默认的配置如下:
[root@nagios-server pnp-0.4.14]# sed -n '227,238p'/usr/local/nagios/etc/objects/commands.cfg #'process-host-perfdata' command definition define command{command_name process-host-perfdata command_line /usr/bin/printf"%b""$LASTHOSTCHECK$$HOSTNAME$$HOSTSTATE$$HOSTATTEMPT$$HOSTSTATETYPE$$HOSTEXECUTIONTIME$$HOSTOUTPUT$$HOSTPERFDATA$">> /usr/local/nagios/var/host-perfdata.out } #'process-service-perfdata' command definition define command{command_name process-service-perfdata command_line /usr/bin/printf"%b""$LASTSERVICECHECK$$HOSTNAME$$SERVICEDESC$$SERVICESTATE$$SERVICEATTEMPT$$SERVICESTATETYPE$$SERVICEEXECUTIONTIME$$SERVICELATENCY$$SERVICEOUTPUT$$SERVICEPERFDATA$">> /usr/local/nagios/var/service-perfdata.out }
现在删除上述的默认配置,然后将其改为如下的配置内容:
# 'process-host-perfdata' command definition define command{command_name process-host-perfdata command_line/usr/local/nagios/libexec/process_perfdata.pl } #'process-service-perfdata' command definition define command{command_name process-service-perfdata command_line/usr/local/nagios/libexec/process_perfdata.pl }
也可以用Nagios变量$USER1$替代/usr/local/nagios/libexec/路径。特别要说明的是,上面的和下面的配置是等价的。
# 'process-host-perfdata' command definition define command{command_name process-host-perfdata command_line$USER1$/process_perfdata.pl } # 'process-service-perfdata' commanddefinition define command{ command_name process-service-perfdatacommand_line $USER1$/process_perfdata.pl }
3)执行检查语法命令。
[root@nagios-server objects]# /etc/init.d/nagios reload…… TotalWarnings: 0 Total Errors: 0……
从提示来看,警告和错误数都为0个,表示配置通过。
4)执行命令使Nagios配置文件生效。
[root@nagios-server objects]# /etc/init.d/nagios reload Runningconfiguration check...done. Reloading nagiosconfiguration...done
5)此时在浏览器输入“http://10.0.0.7/nagios/pnp/index.php”打开页面,正确的PNP界面如图14-24所示。
图14-24 正确的PNP界面
到这里为止,PNP软件的出图就OK了,但是还没有业务数据的图形趋势,因为还没有配置呢,接下去就来配置。 跟老男孩学Linux运维:Web集群实战