Zabbix : monitoring de php-apc

Boris HUISGEN
|
Un petit billet sur le monitoring de PHP-APC avec Zabbix.
Scripts web
Deux scripts PHP sont à placer dans le répertoire de votre serveur Web :
root@www:/var/www# cat apc-stats_mem.php
<?php print(serialize(apc_sma_info())); ?>
root@www:/var/www# cat apc-stats.php
<?php print(serialize(apc_cache_info('', true))); ?>
Script de monitoring Zabbix
Au niveau du monitoring, un nouveau script PHP va se charger de récupérer les valeurs actuelles d’APC :
root@www:/etc/zabbix/scripts# cat apc.php
<?php
$url_stats = "http://localhost/apc-stats.php";
$url_memstats = "http://localhost/apc-stats_mem.php";
$results = file_get_contents($url_stats);
if ($results == "")
exit(1);
$results = unserialize($results);
$num_hits = $results["num_hits" ];
$num_misses = $results["num_misses" ];
$hits_ratio = $num_hits / ($num_hits + $num_misses) * 100;
$entries = $results["num_entries" ];
$results = file_get_contents($url_memstats);
if ($results == "")
exit(1);
$results = unserialize($results);
$mem_used = $results["seg_size" ] * $results["num_seg" ] - $results["avail_mem" ];
$mem_available = $results["avail_mem" ];
echo("num_hits=$num_hits\n");
echo("num_misses=$num_misses\n");
echo("hits_ratio=$hits_ratio\n");
echo("entries=$entries\n");
echo("mem_used=$mem_used\n");
echo("mem_available=$mem_available\n");
?>
Configuration de l’agent Zabbix
Reste à modifier l’agent Zabbix en y insérant les nouveaux paramètres :
root@www:/etc/zabbix# vim zabbix_agentd.conf
UserParameter=apc.num_hits,/usr/bin/php /etc/zabbix/scripts/apc.php|grep num_hits|cut -d"=" -f2
UserParameter=apc.num_misses,/usr/bin/php /etc/zabbix/scripts/apc.php|grep num_misses|cut -d"=" -f2
UserParameter=apc.hits_ratio,/usr/bin/php /etc/zabbix/scripts/apc.php|grep hits_ratio|cut -d"=" -f2
UserParameter=apc.entries,/usr/bin/php /etc/zabbix/scripts/apc.php|grep entries|cut -d"=" -f2
UserParameter=apc.mem_used,/usr/bin/php /etc/zabbix/scripts/apc.php|grep mem_used|cut -d"=" -f2
UserParameter=apc.mem_available,/usr/bin/php /etc/zabbix/scripts/apc.php|grep mem_available|cut -d"=" -f2