Grace à
SNMP, il est facile de faire des applications capable d'interroger à distance les ressources de machines
afin de faire du monitoring actif. Pour comprendre comment configurer PHP afin de supporter l'extension
SNMP, regardez cet article :
Utilisation de SNMP en PHP. Les OS modernes ( Windows, Linux ) possèdent des agents SNMP facilement installable
et configurable implémentant de base un certain nombre de compteurs ( hors propriétaires ). La branche
host (.iso.org.dod.internet.mgmt.mib-2.host )
de la MIB (
Management
Information
Base ) contient un grand nombre de compteurs très utiles pour
l'administration, par exemple :
- hrSystem : Des informations générales.
- hrStorage : La description et l'utilisation des disques.
- hrDevice : Les composants internes de la machine ( CPU, PCI,.. )
- hrSWRun : La liste des process
- hrSWRunPerf : L'utilisation CPU / Mémoire des process
- hrSWInstalled : Les applications installées
L'exemple suivant permet collecter des informations relatives aux process exécutés. Il met le résultat ( Nom du fichier,
Chemin d'accès, Temps CPU, Mémoire utilisée ) dans le tableau
$Data. Ne pas confondre temps CPU et utilisation CPU, le temps CPU correspond
à la durée pendant laquelle le process a utilisé de manière exclusive le/les processeurs.
Z:\>php -q Process.php servername community
Array
(
[0] => Array
(
[Name] => System Idle Process
[Path] =>
[CPU] => 18d 10:10:11
[Memory] => 16Ko
)
[1] => Array
(
[Name] => System
[Path] =>
[CPU] => 0d 0:19:52
[Memory] => 92Ko
)
[2] => Array
(
[Name] => SMSS.EXE
[Path] =>
[CPU] => 0d 0:0:3
[Memory] => 224Ko
)
)
Ce script accepte en entrée deux paramètres, le premier correspond à l'adresse IP de la machine à interroger, le deuxième à la communauté SNMP à utiliser lors de la session. Je fais appel à la fonction
ErrorHandler pour capturer les erreurs éventuelles ( agent SNMP qui ne répond pas, timeout, mauvaise communautée..)
Liens Complémentaires