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
nader
30.04.10 / 21:27
veuillez m'indiquer si possible les méthodes pour afficher les interface convenablement.merci,
ta mer
30.04.10 / 21:25
sergou?
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?
 directory  line  javascript  mercator  conversion  active  des  convertir  longitude  le  ldap  gps  CODE  terrestre  SUR  url  ajax  metar  image  sunyday  une  cli  menu  trou  PAGE  regexp  anim%C3%A9  snmp  www.sunyday.net  et  convertisseur  regex  avec  d%27ozone  authentification  protocole  map  pour  lldp  sunyday.net  anomalie  fade  de  explication  coordonn%C3%A9es  web  fading  find  +  adresse  ntfs  latitude  script  nuls  couche  un  dans  en  synop  la  champ  photovoltaique  html  module  php  browser  google  les  ad  magn%C3%A9tique  

Sunyday.net