此文章转自:http://storysky.blog.51cto.com/628458/583787/

  



  其实我们一直都在用cacti来做性能图表,不过看到很多朋友都说nagios直接就可以出图,也跟着尝试了一下,确实可以出图,但并不是所有的nagios插件都可以出图的。网上大部分的文章都只说如何配置nagios 结合pnp和rrdtool出图,却没有提醒大家nagios自带的插件很多都是不能结合pnp输出图表的,而且即使自己diy nagios插件也需要进行一些设置才能生成pnp和rrdtool 能用的数值,而且即使nagios 能弄出很多图来,效果也没有cacti等一些专门的工具好。所以大家如果打算用nagios+pnp来代替cacti的话还是三思而后行吧!
  好了,有朋友问我怎么才能看出来哪个nagios插件能出图,其实很简单 举个例子:
./check_nrpe -c check_swap -H 192.168.3.3
SWAP OK - 100% free (34169 MB out of 34169 MB) |swap=34169MB;20501;13667;0;34169

上面输出的结果中 "|" 后面的值就可以提供给pnp rrdtool 生成数据图表,注意 “|” 后面的几个 “;” 每个“;” 前面都分别代表不同的意思 第一个就是当前的值,第二个是warning值,第三个是 临界值,第四个为最小值,第五个为最大值,其实后面还有几个值,不过我想不起来是做什么的了-_-。如果 nagios的插件输出结果中没有 "|"的话,就不会有相关的数值提供
给pnp和rrdtool了,就像 check_mysql
./check_nrpe -c check_mysql -H 192.168.3.3
Uptime: 22321  Threads: 11  Questions: 247909  Slow queries: 105  Opens: 29351  Flush tables: 17  Open tables: 20  Queries per second avg: 1110.774

可以看到并没有 "|"(其实要是非要给他加上 "|"也可以,就是需要把他的输出搞成变量在放到自己的脚本里面去^_^,一样可以输出图表)
我们从nagios的监控页面也能看出来,还是以check_mysql为例 如下图:





这里我们可以看到 Performance Data: 后面是空的,所以他不会有数据给pnp和rrdtool,更不会出图。
所以如果以后大家想让自己编写的脚本生成图表的话 别忘了在 输出结果的语句后面加上 "|" 当前值;警告值;临界值;最小值;最大值 这几个基本的设置。