-
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://iyubo.blogbus.com/logs/37667505.html
我上篇日志中提到过有三种监控方式获取数据,有些严谨的SA出于安全原因可能不太愿意在服务器上安装服务。那么,我们可以走SNMP协议通过编写脚本进行抓取服务器上 的数据。这种方式SA唯一需要做的就是在目标服务器上安装SNMP协议(还是得安装,嘿嘿,怎么安装SNMP这个就不说了,不会的自己Google)。安 装完成以后设置只允许监控服务器的IP访问和Community,权限给只读就行了。
为什么要添加Performance Data的输出?
PNP是根据Performance Data进行绘图的。所以如果你需要PNP配合Nagios使用进行绘图,那么你就必须要收集这个Performance Data。
解析Performance Data
拿check_icmp的结果来举例:
OK - 127.0.0.1: rta 2.687ms, lost 0% | rta=2.687ms;3000.000;5000.000;0; pl=0%;80;100;;
管道符(|)左边的是命令执行得到的结果:
OK - 127.0.0.1: rta 2.687ms, lost 0%
右边就是我们需要的Performance Data了:
rta=2.687ms;3000.000;5000.000;0; pl=0%;80;100;;
Performance data是为自动处理设计的。格式的定义参考Developer Guidelines,下面是举例:
rta=2.687ms;3000.000;5000.000;0;
| | | | | | |
|----|--|----|---------|-----|-|----- 标签(即你想定义的名称)
|--|----|---------|-----|-|----- 当前值
|----|---------|-----|-|----- 单位
|---------|-----|-|----- warning阀值
|-----|-|----- critical阀值
|-|----- 此标签的最小值
|----- 此标签的最大值
了解了Performance Data的格式以后,我们自然就可以在脚本里面对它进行自定义并输出,这里用Perl举例。
首先定义$perfdata_output,按照上面的格式。
然后在输出里面加上管道符(|)及$perfdata_output本身。举例:
print "OK : CPU load $use%"."|".$perfdata_output."\n";."|".$perfdata_output
全部修改好以后运行Perl监控脚本来核查结果。如果你看到的运行结果已经完全符合上面举例的格式,那么恭喜你,
等着PNP画图吧:)
最后,放上我修改好的监测CPU/MEM/DISK的Perl程序(通用Windows和Linux目标服务器)
参考文档
http://www.pnp4nagios.org/pnp/doc_complete随机文章:
Nagios对Windows机器的监控 2009-04-08Nagios配合使用pnp绘图 2009-04-07Nagios升级到3.0.6 2009-04-03利用Nagios实现服务器监控(下) 2008-05-27利用Nagios实现服务器监控(中) 2008-05-27
收藏到:Del.icio.us








