最近 memcache老是出问题,所以想着把memcache的运行状态监控起来,所以就想着挂到cacti上面.
在网上找了找好多都是基于python的api去获取mc状态的,由于是现成的php环境不想再去搭建python的监控.
所以想着把他memcache.py 改造一下.直接用现在有php去获取数据.
原文教程是http://dealnews.com/developers/cacti/memcached.html
在这里下载的包里面有 cacti_memcached_host_template.xml,
还是需要安装python的类库,用于读取mc状态.
下面是安装完的python获取数据的结果
![]()
我改造了一个简单的php版本
<?php
error_reporting(0);
try{
$dataHash = array('total_items','bytes_written','uptime','bytes','cmd_get','curr_items','curr_connections','connection_structures',
'limit_maxbytes','rusage_user','total_connections','cmd_set','time','get_misses','bytes_read','rusage_system', 'get_hits');
$memcache_obj = new memcache();
$memcache_obj->addServer('192.168.0.176', 11211);
$stats = reset($memcache_obj->getExtendedStats());
foreach ($dataHash as $item) {
echo $item,':',$stats[$item],' ';
}
}catch (Exception $e) {
die('error');
}
去掉了hostname的传参,返回值和python保持一致,测试成功.
我就把外国朋友的xml改了下,数据源改成这个php的
下面是改造的php和xml,分享给需要的人~
cacti_memcache_template