Cacti Memcached监控脚本报错的问题
Cacti是常用的一款比较流行的服务器及网络监控工具,和Nagios一样有着许多插件,最近我在使用Cacti监控Memcached的时候遇到了一些问题。
使用Python版的Memcached监控端的时候,如果监控的Memcached的版本<=1.2.6
会报错。
原版地址:http://dealnews.com/developers/cacti/memcached.html
可以监控多个端口的版本:http://tag1consulting.com/blog/cacti-memcache-multi-port-templates
问题的原因其实是作者在编写代码时候欠缺考虑造成的。但是也不能怪作者,谁让我们还苦逼的抱死在1.2.6版本之前的Memcached上。
注意 :以下都是Windows平台的,如果你是Linux平台的,Memcached装个新版本的,没有这种问题!
查看Cacti的日志,我们发现memcached.py返回的是空数据。实际直接CMD里运行,则报如下错误:
1 2 3 4 5 | >python memcached.py -p 11211 192.168.1.54 Traceback (most recent call last): File "memcached.py", line 44, in stats[key] = float(mstat[key]) KeyError: 'rusage_user' |
查看代码很容易发现,作者定义了一个基本字典stats,然后循环stats,用mstat里面的值替换,最后输出stats。可是蛋疼的是rusage_user
和rusage_system
其实是没有的…
于是就很好处理了,循环时直接交换下status
和mstat
,这里只需要注意Version是个字符串。
问题解决。
[TOC]