Monitoreando memcache desde cacti con php
June 19, 2008 – 12:31 amHace unos dias tuve la necesidad de comenzar a monitorear remotamente desde cacti mi servidor memcache.
En principio pense utilizar la implementacion original del script pero me surgio el inconveniente que este script requiere python para acceder al servidor memcache, mi primera intencion fue instalar todo lo necesario para correr el script anterior, pero como el servidor ya estaba muy “toqueteado” (y no por mi) preferi no meterme de mas con la instalacion de python (y todas sus dependecias) ya que en Centos el YUM corre con python.
En resumen, si dejaba sin andar python rompia YUM y dejaba el servidor unitilizable.
Me puse a investigar un poco el script utilzado en python, y decidi hacer mi propia implementacion en PHP, que no es gran cosa, pero que tampoco encontre por ahi.
Lo necesario para utilzar este script es:
- PHP (obvio)
- la Extension PHP-MCC (desde PECL )
Esta es la implementacion que realice, hace exactamente lo mismo que la que esta en python. Detalles: por ahora tiene el puerto fijo, cosa que solucionare en una version posterior.
Aca te adjunto un zip que contiene el script junto con el template necesario listo para salir andando en cualquier CACTI.
Que si es confiable? Bueno, para probarlo bien lo puse en paralelo en otro servidor al cual si le funcionabe python y junto con la implementacion original se obtuvieron exatamente los mismos valores, osea 100% de confiabilidad.
if (!count($argv) > 1) {
die (‘please give me the server address’);
}
define (‘MMC_PORT’, 11211);
$memcache_obj = new Memcache;
$memcache_obj->addServer($argv[1], MMC_PORT);
$stats = $memcache_obj->getExtendedStats();
$array_key = ”;
$var = $key = null;
$array_key = $argv[1].‘:’.MMC_PORT;
$tmp = array();
foreach ($stats[$array_key] as $key => $val) {
$var = $var ? $var : 0;
$tmp[] = "$key:$val";
}
?>
Ahh, casi si olvido el archivo cacti-php-memcache.zip