FEB
01
Utilisation de SNMP en PHP
01.02.2007 | | Auteur : Ayashi | Catégorie : Programmation
Le module SNMP fournit avec PHP est plutôt méconnus, il permet pourtant de développer des scripts de monitoring très puissant! SNMP ( Simple Network Management Protocol ) est un protocole qui a vu le jour en 1988 ( voir la RFC 1067 puis RFC 1157 ), il est aujourd'hui très largement intégré dans tous les équipements possédant des interfaces réseaux. Service natif dans Microsoft Windows ( il n'est pas installé de base, mais présent dans les composants additionels ), il se trouve aussi pour linux sous la forme de la librairie NetSNMP. Les agents SNMP plus ou moins évolués permettent d'obtenir des statistiques comme :
  • Le trafic réseau.
  • L'utilisation des ressources ( CPU, Mémoire, Disques... )
  • La température des composants
  • Des informations particulières à l'équipement
  • ...
L'interrogation de l'agent SNMP se fait via un code d'authentification échangé de façon clair dans SNMPv1 ou cryptée depuis la version 3.

Pour activer l'extension SNMP dans PHP, il est nécessaire de décommenter la ligne suivante de votre fichier PHP.ini :
extension=php_snmp.dll

Si vous avez ce genre de message d'erreur dans vos logs d'Apache :
Cannot find module (IP-MIB): At line 0 in (none)

..il faut copier le contenus du répertoire /mibs/ de votre distribution de PHP dans le répertoire C:/usr/mibs/ afin qu'au démarrage d'apache le module php_snmp.dll puisse charger en mémoire le contenus des MIBs. Vous pouvez également ajouter à la fin de la ligne de commande la redirection $2>NUL pour ignorer les messages d'erreurs. ( redirection de STDERR en DOS )

Ce petit exemple en PHP-CLI ( voir l'article PHP-CLI Command Line Interface ) permet d'énumérer les disques d'une machine à travers le réseau.

Z:\>php -q disk.php 69.69.69.1 public
- Removeable | A:\ Drive 0o (?? used)
- Hard Drive | C:\ Drive 36Go (66% used)
- Hard Drive | D:\ Drive 36Go (1% used)
- CD-ROM | E:\ Drive 433Mo (100% used)
- Hard Drive | I:\ Drive 214Go (35% used)
- Hard Drive | J:\ Drive 42Go (61% used)
- Hard Drive | K:\ Drive 214Go (42% used)
- Hard Drive | L:\ Drive 42Go (72% used)
- Hard Drive | M:\ Drive 214Go (36% used)
- Hard Drive | N:\ Drive 42Go (47% used)
- Hard Drive | O:\ Drive 214Go (29% used)
- Hard Drive | P:\ Drive 42Go (50% used)
- Hard Drive | Q:\ Drive 42Go (3% used)
- Hard Drive | S:\ Drive 214Go (0% used)
- Virtual Mem | Virtual Memory 7Go (23% used)
- Physical Mem | Physical Memory 3Go (56% used)

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. J'utilise également une fonction vers laquelle je redirige tous les messages d'erreurs ( set_error_handler("ErrorHandler"); ) cela permet d'éviter que le script bloque si la machine interrogée ne répond pas en SNMP.

Liens Complémentaires

Tags : snmp, php, server, management | Digg!
Commentaires  | Ajouter un commentaire
Aucun commentaire.
Rechercher sur internet  ?  | Rechercher!
Trackback
Utilisez le lien http://www.sunyday.net/trackback-utilisation-de-SNMP-en-PHP pour faire un trackback vers cette article depuis votre site web. Les trackbacks sont soumis à une approbation mutuelle et susceptibles d'être supprimés si jugés indésirables.
Retrieve RSS feed. Get notified by eMail. Meteo Parser.
Computing widgets...
Jean-Damien POGOLOTTI© 2k6-2k7 | Design // Code

Qui suis-je?

Touche à tout restant bouche bée devant la complexité et la cohérence de ce monde je m'évertue à essayer d'en comprendre les rouages. En passant par la météorologie, la physique ou bien l'informatique, tout est une raison d'apprendre!
Comment les gens arrivent-il ici?
 adresse  html  latitude  url  find  lldp  de  javascript  du  anomalie  avec  longitude  sunyday  pour  une  couche  fading  command  la  +  ntfs  map  coordonn%C3%A9es  resize  le  web  d%27ozone  cli  synop  ajax  dans  un  convertisseur  active  browser  convertir  metar  SUR  regexp  magn%C3%A9tique  les  des  conversion  ad  en  gps  script  snmp  trou  line  regex  ldap  et  fade  authentification  PAGE  image  explication  php  terrestre  mercator  protocole  photovoltaique  nuls  google  directory  gd  module  CODE  champ  

Sunyday.net