`

用Cacti监控多个不同端口的memcached!

 
阅读更多

标签:Cacti memcached
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://storysky.blog.51cto.com/628458/251870
  
  
  
  前几天我写了一篇文章,是关于memcached监控的几种方法,这几天开发的同事希望我能把memcached的每天的负载情况做成图表发给他们用来做日后的分析。知道了需求那就开始动手吧!
  开始我尝试用 Nagios+pnp+rrdtool 来生成memcached流量图表,但是过程中出现很多问题,最终结果也不太满意。所以还是决定改用Cacti来做了。
  首先Cacti需要一个memcached的模板,我们可以从这里下载
  http://dealnews.com/developers/cacti/memcached.html
  不过他需要Python运行环境,让我们看一下
rpm -qa |grep python
python-2.4.3-24.el5
python-devel-2.4.3-24.el5
...
python-iniparse-0.2.3-4.el5
gnome-python2-gnomeprint-2.16.0-2.el5
还真装了不少,不过上面的网页上说需要一个 Python memcached Client API
让我们把他下载下来装上他。
wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.45.tar.gz
tar xzvf python-memcached-1.45.tar.gz
cd python-memcached-1.45
python setup.py install
Traceback (most recent call last):
  File "setup.py", line 3, in ?
    from setuptools import setup
ImportError: No module named setuptools
出错了...原来我之前没有装setuptools模块。不过没关系,装他很快
yum install python-setuptools
安装成功后再次 python setup.py install 安装就可以成功了。
接下来我们下载 cacti_memcached
wget http://content.dealnews.com/dealnews/developers/cacti-memcached-1.0.tar.gz
tar zxvf cacti-memcached-1.0.tar.gz
cd cacti-memcached
可以看到下面几个文件
cacti_memcached_host_template.xml  INSTALL  memcached.py  README
把memcached.py 拷贝到Cacti 的scripts目录下,然后进入Cacti控制界面点击
Import Templates --> Import Template from Local File
在浏览里面选择 
cacti_memcached_host_template.xml 这个文件,然后点击save 后可以看到下图内容。之后的操作我就不用说了吧。就是增加设备什么的。

添加好以后不久,图片就出来了,下图是运行12小时候的流量图


不过问题又来了,这个模板默认只能监听一个端口的流量,虽然可以通过在模版中用 -p port 来指定端口号监听,但是像我们的服务器那样 一个服务器上面memcached好几个端口的情况他就无能为力了,网上有个朋友修改了一下memcached.py 使用host 后面加 “-”来指定端口号,我试了下好像不行,一加上 “-”就报 snmp error。看来这个方法行不通,后来群里有个叫寒号鸟的朋友给了我个地址
http://tag1consulting.com/blog/cacti-memcache-multi-port-templates
让我用上面的模板试试看,我一看说明 这正是我想要的...
下载到机器上解压缩看了下,作者修改了原来的模板和memcached.py,版本变成了1.0.2 。导入方法和1.0 一样,只不过Host Template变成了 “Memcached Server - Multiport”而且在添加设备的时候多了一步指定端口 如下图:

在里面输入memcached服务的端口就可以了。你可以把这几个端口加到Graph Trees 里面便于查看。
几分钟后就可以看到图表里的数据了,不过我遇到个很奇怪的问题。

在其他模板里的数据都正常的情况下,Memcached Bytes Used 这个模板里却只有memcached的上限值,而没有已用值,观察了一段时间还是没有,用debug模式查看发现 确实接收不到 已用值 已用值都是non。把Memcached Bytes Used模板删掉后重新建了一遍,还是如此。我仔细观察了一下 发现在 Graph Templates Memcached Bytes Used模板里面 Use Per-Graph Value (Ignore this Value) 这个选项是被勾选的,大家仔细看看上面的图,在添加Bytes Used 的端口时这两个似乎是在一起的,我估计是被他给忽略了。不过没关系,我们可以把他找回来,在 控制界面里找到 Data Templates 在里面找到
 Custom Data [data input: Memcached - Statistics - Multiport]
这个选项,并在 Port to query for memcached statistics. 的输入框里面 输入 11213也就是你自定义的端口后点击 SAVE ,再观察一段时间,就会发现能收到memcached已用内存的数据了 。



Cacti 的功能很强大,我只用到了其中最简单的部分,目前还不能自己制作模板,还有很多要学。希望我这篇文章能给刚刚学习Cacti的朋友们提供一些帮助 O(∩_∩)O~

本文出自 “story的天空” 博客,请务必保留此出处http://storysky.blog.51cto.com/628458/251870

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics