设为首页 收藏本站
查看: 1690|回复: 0

pnp4nagios安装配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-24 12:00:53 | 显示全部楼层 |阅读模式
pnp4nagios的安装

(1)安装
#tar -zxvf php4nagios-*.tar.gz
#cd php4nagios
#./configure --with-nagios-user=nagios --with-nagios-group=nagios   (如果单独编译安装的rrdtoool,则使用--with-rrdtool=/usr/local/rrdtool-1.2.xx/bin/rrdtool这样的形式)
#make all
#make install
#make install-webconf
#make install-config
#make install-init
(使用这条命令替换所有的make命令, make fullinstall)
#service httpd restart

(2)配置
pnp4nagios有三种模式,配置方法分别如下
Synchronous Mode:
#vi /usr/local/nagios/etc/nagios.cfg
process_performance_data=1
enable_environment_macros=1
service_perfdata_command=process-service-perfdata
host_perfdata_command=process-host-perfdata
#vi /usr/local/nagios/etc/command.cfg
define command {
command_name process-service-perfdata
command_line  /usr/local/pnp4nagios/libexec/process_perfdata.pl
}
define command {
command_name  process-host-perfdata
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
}



Bulk Mode:
#vi /usr/local/nagios/etc/nagios.cfg
process_performance_data=1
service_perfdata_file=/usr/local/pnp4nagios/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$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

#vi /usr/local/nagios/etc/command.cfg
define command{
       command_name    process-service-perfdata-file
       command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}
define command{
       command_name    process-host-perfdata-file
       command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}
由于一次处理的性能数据比较多,有可能超时,可以更改etc/process_perfdata.cfg里的timeout时间。



Bulk Mode with NPCD: (我们现在使用的是这种方式)
更改方法同bulk mode,只有定义command部分不同:
#vi /usr/local/nagios/etc/command.cfg
define command{
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
define command{
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

#/usr/local/pnp4nagios/bin/npcd -d -f /usr/local/pnp4nagios/etc/npcd.cfg(确保npcd.cfg中设置了正确的spool目录)

(3)检查
第一次访问http://ip/php4nagios
将会执行一个必要部分的检查。如果看到“PHP magic_quotes_gpc is deprecated”,那么到php.ini文件中找到相应的设置并off掉。
调试日志
如果想产生调试日志,则更改process_perfdata.cfg中的
LOG_LEVEL=2,
一般情况下设置为0即可。

(4)排错verify_pnp_config
在运行pnp4nagios之前,我们最好运行一下scritps下的verify_pnp_config.pl来检查一下PNP的配置。

(5)将性能图集成到nagios的web页面中

更改定义主机和服务的模板文件:
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
}

再定义主机和服务时,添加上use行,来使用模板主机和服务:
define host{
        use                     linux-server,host-pnp    ; Name of host templates to use
                                                         ; This host definition will inherit all variables that are defined
                                                         ; in (or inherited by) the linux-server host template definition.
        host_name               localhost
        alias                   localhost
        address                 127.0.0.1
        }

define service{
        use                     local-service,srv-pnp   ; Name of service template to use
        host_name               localhost
        service_description     PING
        check_command           check_ping!100.0,20%!500.0,60%
        }

你可以定义PNP集成到Nagios中,不需要点击任何图表就显示性能数据
1. 安装并运行PNP
2. 将contrib/ssi目录下的status-header.ssi拷贝到/usr/local/nagios/share/ssi/下。不要添加可执行权限。
3.更改相关的主机和服务模板设置:
define host {
   name       host-pnp
   action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_
   register   0
}
define service {
   name       srv-pnp
   action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
   register   0
}

(6)设置PNP Web前端
通过更改etc/config.php来实现对PNP Web前端的更改。一般我们将自己的调整写在etc/config_local.php中,
但是如果这个文件不存在,则config.php可以作为一个参考。

(7)定义page
在/usr/local/pnp4nagios/etc/pages下创建*.cfg的文件,文件定义了要显示在一个页面上的性能数据:例如
define page {
       use_regex 1  # 0 = use no regular expressions, 1 = use regular expressions
       page_name test-page # page description
}
define graph {
       host_name       host1,host2,host3   #将显示host1,host2,host3三台主机的Current_Load服务性能图在test-page页面上
       service_desc    Current_Load
}
define graph {
       host_name       host1,host2       #将显示host1和host2上所有包含a或者o的服务的性能图到test-page页面上
       service_desc    a|o
}

(8)模板
模板存放在两个位置
share/template.dist         存放PNP包中的模板
share/template  自定义的模板存放位置
如果显示localhost上http服务的图形,那么PNP将会通过perfdata/localhost/http.xml文件中的TEMPLATE定义部分来决定使用什么模板(这个文件是自动生成的)。
PNP查找模板的顺序如下:
1. templates/check_http.php
2. templates.dist/check_http.php
3. templates/default.php
4. templates/default.php

创建自己的模板
模板必须遵循如下原则:
1.必须是有效的php语句
2.模板不能产生任何输出
3.队列$opt[]和$def[]必须被填充

另外一个需要注意的是,PNP4nagios是这样一个画图流程。
nagios里定义的命令名字 => pnp4nagios在etc/check_commands/ 目录下找跟命令名一样的 command_name.cfg => 这个配置文件中定义了模板的名字规则  
个人总结:如果要创建某个nagios服务的画图模板,我们可以先确认这个服务的名称是什么,服务命令的名称是什么,然后到perfdata/hostname/下找到对应的“服务名.xml”,打开文件,看TEMPLATE定义部分的内容,这个内容便是这个相应检查命令默认使用的模板名称,模板后缀为php。
例如主机AAA的服务ALL_DISK,使用的命令是snmp_linux_alldisk_check.sh, 那么我们可以查看perfdata/AAA/ALL_DISK.xml文件,TEMPLATE部分的内容是snmp_linux_alldisk_check,则说明这个服务使用模板snmp_linux_alldisk_check.php,而你可以自己创建这个文件,并放在share/tmplates下,来实现自定义显示效果。
(9)NCPD的介绍
当nagios服务器运行大量的服务(即检查),高负载可能导致这样一个问题,定义的检查轮训是5分钟,也许它10分钟才执行。如果这时,nagios服务器再执行性能数据的采集,将会加重其检查的延迟,为了使nagios core摆脱性能数据的处理部分,我们使用ncpd。通过上面的配置部分,我们可以发现原本由nagios core处理性能数据的命令,变成了仅仅将性能数据拷贝到/usr/local/pnp4nagios/var/spool目录下,并打上时间戳,这个速度是非常快的。剩下性能数据处理工作就由ncpd进程来完成,更新到rrd文件中。
使用ncpd还有一个好处,防止性能数据的丢失,因为即使你的ncpd进程死掉活着重启之后没有启动ncpd,在/usr/local/pnp4nagios/var/spool目录下也保存着包含时间戳的数据,当重启ncpd进程时,它会对所有搜索到的数据进行处理,并更新到rrd文件中。

(10)nagios性能数据
nagios将插件输出中”|”号后的内容作为性能数据。性能数据格式如下:
'label'=value[UOM];[warn];[crit];[min];[max]
注意:
1. 多个性能数据之间用空格分割
2. label 可以包含任何字符
3. 如果label中包含空格、等号、或者单引号,则label需要用单引号来括起来
4. warn/crit/min/max可以为null值
5. 如果UOM单位是%,则min和max不需要再指定
6. UOM单位可以是如下: 默认空,表示数量(用于用户数、处理器数等)
       s    表示秒(也可以用us,ms)
       %    表示百分比
       B    表示字节(也可以用KB,MB,TB,GB)
       c    一个连续的计数(如:接口传输的字节数)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-155684-1-1.html 上篇帖子: nagios+cacti整合(中文版) 下篇帖子: CentOS 6.2+Nginx+Nagios,手机短信和qq邮箱提醒
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表