Zabbix : monitoring de php-apc

Boris HUISGEN April 22, 2013

administration monitoring zabbix php apc

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

See also

Zabbix : monitoring des IRQ
Read more
Zabbix : partitionnement des tables MySQL
Read more
Zabbix : configuration d’un item trapper
Read more