最近 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