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_userrusage_system其实是没有的…

    于是就很好处理了,循环时直接交换下statusmstat,这里只需要注意Version是个字符串。

问题解决。

[TOC]