memcached监控的几种方法(nagios等)

十一 25th, 2010 | Filed under Linux相关, 其他, 系统架构及硬件

目前我所知道的监控方法大概有以下几种:
一、memcache.php 这个东东算是最简单的了,只要支持php环境就能用,把这个文件放到你的网页存放目录下就可以了访问方法 http://ip/memcache.php

下载地址 http://livebookmark.net/memcachephp/memcachephp.zip

http://blogimg.chinaunix.net/blog/upfile2/081230231118.zip

需要注意的是,使用之前要修改里面的几个选项
vim memcache.php
…..
define(‘ADMIN_USERNAME’,'memcache’); // 定义用户名
define(‘ADMIN_PASSWORD’,'password’); // 定义密码
…..
$MEMCACHE_SERVERS[] = ‘mymemcache-server:11211′; //定义要查看的ip和端口
$MEMCACHE_SERVERS[] = ‘mymemcache-server2:11212′; //可添加多个
其他内容略

上面的图就是访问时的效果,是不是很直观?

二、利用memcached自身的命令来检查

telnet localhost 11211
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
stats
STAT pid 24567
STAT uptime 6576
STAT time 1261035123
STAT version 1.4.3
…..
STAT bytes 64035
STAT curr_items 41
STAT total_items 96
STAT evictions 0
END
不过这个方法我觉得不太方便,从网上搜到了另一个好办法,那就是利用nagios的check_tcp (mixi的方法)
check_tcp -H localhost -p 11211 -t 5 -E -s ’stats\r\nquit\r\n’ -e ‘uptime’ -M crit 输出结果和上面差不多
TCP OK – 0.001 second response time on port 11211 [STAT pid 10663
STAT uptime 76444
STAT time 1259641750
STAT version 1.4.2
.....中间省略
STAT bytes 1385408560
STAT curr_items 227799
STAT total_items 5012750
STAT evictions 0
END]|time=0.001142s;;;0.000000;5.000000
这样我们就能在nagios里面添加命令来查看他的运行状态了
不过这样还不够,我还需要在memcached出现问题的时候通过邮件或者短信来通知我,下面来介绍一个更好的办法

三、Nagios的check_memcached
下载地址:

http://search.cpan.org/CPAN/authors/id/Z/ZI/ZIGOROU/Nagios-Plugins-Memcached-0.02.tar.gz

http://cpan.uwinnipeg.ca/cpan/authors/id/Z/ZI/ZIGOROU/Nagios-Plugins-Memcached-0.02.tar.gz

这个脚本是用perl编的,所以你要先确保自己的机器里面是否有perl环境,不过一般都会默认安装
[root@nodea soft]# which perl
/usr/bin/perl

另外,还需要通过CPANPLUS安装Nagios::Plugin等插件,

参见http://hi.baidu.com/%C2%ED%B3%A4%D5%F72008/blog/item/0fb99f12a7205a8c6438db70.html

CPAN Terminal> i Nagios::Plugin

下载下来后安装
[root@nodea soft]# tar xzvf Nagios-Plugins-Memcached-0.02.tar.gz
[root@nodea soft]# cd Nagios-Plugins-Memcached-0.02
[root@nodea Nagios-Plugins-Memcached-0.02]# perl Makefile.PL
执行后会出现一些提示让你选择,按照自己想法选或者一路回车都能通过
[root@nodea Nagios-Plugins-Memcached-0.02]# make
这时他会下载一些运行时需要的东西
[root@nodea Nagios-Plugins-Memcached-0.02]# make install

默认会吧check_memcached文件放到/usr/bin/check_memcached
没关系 把他拷贝到nagios的libexec下
在 commands.cfg里面加上这么几条(这里我没有把check_memcached装在memcached服务器上,而是通过Nagios的 check_memcached直接去访问memcached服务器的11211端口,当然你也可以把他装在memcached服务器上利用 check_nrpe来取他的值)
define command {
command_name check_memcached_11211
command_line $USER1$/check_memcached -H 192.168.1.139:11211 –size-warning 80 –size-critical 90
}
上面这个是来监控memcached的内存使用比例
define command {
command_name memcached_response_11211
command_line /usr/local/bin/check_memcached -H 192.168.1.139 -w 300 -c 500
}
这个是用来监控memcached是否还有应答
define command {
command_name check_memcached_hit
command_line /usr/local/bin/check_memcached -H 192.168.1.139 –hit-warning 10 –size-critical 5
}
这个就是命中率啦
最后要在services.cfg里面加点东西
define service{
host_name babeltimeWeb1
service_description memcached_11211
check_command check_memcached_11211
max_check_attempts 3
normal_check_interval 3
retry_check_interval 2
check_period 24×7
notification_interval 10
notification_period 24×7
notification_options w,u,c,r
contact_groups babelgroup
}
其他的可以按照自己要求添加..
好了,让我们重新启动下nagios服务
/etc/init.d/nagios restart
看看结果

呵呵好了,Nagios监控memcached基本就搞定了。

另外还可以根据check_tcp -H localhost -p 11211 -t 5 -E -s ’stats\r\nquit\r\n’ -e ‘uptime’ -M crit
的输出结果自己编写脚本来检测memcached,这里我就不多说了…
还可以利用check_tcp的结果结合CACTI 来制作memcached的流量视图,当然Cacti也有专门针对memcached的模板(不过我的模板一直抓不到数据…)

希望大家看完我的文章后都能方便的实现memcached的监控 O(∩_∩)O~

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
标签: ,
目前还没有任何评论.