8
votes

Faire un site PHP Envoyer des informations SNMP à une application de gestion de réseau

J'essaie de faire un site Web PHP Envoyer des informations via SNMP. J'ai lu Allot à propos de SNMP, mais je suis toujours un peu désemparé sur où commencer.

Je crois que j'ai besoin de créer une MIB avec tous les OID Mon site Web utilisera pour envoyer les informations. Est-ce correct? Comment et où puis-je définir ces variables (OID)? Quelqu'un peut-il me dire dans la bonne direction?

J'utilise FreeBSD sur le serveur.

Merci d'avance.


2 commentaires

Essayez-vous de faire écouter votre processus PHP pour les demandes d'objet SNMP, ou essayez-vous de l'envoyer des pièges SNMP?


En fait, j'essaie de définir des valeurs et d'envoyer des pièges. Par exemple, je voudrais prendre le temps d'exécution de la page demandée et la définir dans une SNMP OID et envoyer le piège. Ensuite, l'application Network Manager obtiendrait le piège et sachez qu'une requête de page a été faite et qu'elle a fallu n secondes à charger.


3 Réponses :


0
votes

Ce que je sais, c'est que SNMP est un protocole lorsqu'une demande d'envoi d'une valeur d'une valeur d'une OID particulière à un périphérique puis de recevoir une réponse.

Je ne suis pas sûr de pouvoir avoir un site Web PHP qui répond à ces paquets.

Les seules informations que j'ai trouvées sont que PHP a une classe client SNMP PHP SNMP

et Wikipedia vous donne des informations détaillées sur SNMP Link Texte

Mais je suis toujours sûr qu'un site Web ne peut pas servir de serveur SNMP.


2 commentaires

PHP a des fonctions de prise, il peut donc être utilisé pour écouter les demandes SNMP en créant une prise UDP avec socket_create.


Je sais que PHP a des fonctions de prise ... mais un "site Web" comme demandé dans la question ne peut pas créer de boucle d'attente pour recevoir des paquets UDP. Si la question portait sur un programme PHP fonctionne dans une boîte .. OK!



1
votes

Il y a quelques problèmes:

  • Pour obtenir votre propre identifiant de niveau supérieur, je pense que vous devez réellement le demander quelque part (et probablement payer de l'argent?) Cependant, il existe une plage expérimentale que vous pouvez utiliser pour tester. (Ce n'est pas un problème PHP, il s'agit d'une émission / une fonctionnalité SNMP)

  • Autant que je sache, le protocole suppose un processus d'écoute sur un port totalement différent du port HTTP et n'utilise pas TCP mais UDP. Il suffit de créer une page PHP à la manière habituelle ne va pas fonctionner.

    Une solution possible peut être d'utiliser un module SNMP dans Apache (ou quel que soit le serveur Web que vous utilisez) qui vous permet de programmer la logique de réponse dans PHP. Mon sentiment est que la plupart des trucs php SNMP que vous rencontrez sur le Web ne concernent pas la partie de l'agent, mais sur la partie du gestionnaire.


1 commentaires

Oui, j'utilise déjà le module SNMP sur Apache. J'ai juste besoin de pouvoir écrire une valeur OID chaque fois qu'une page soit demandée. Mais pour cela, je crois que je dois créer "la structure" dans la MIB.



4
votes

Qu'est-ce que vous essayez de faire est d'envoyer un "piège SNMP". Vous n'avez pas besoin de définir une mib nécessairement. Une MIB traduit simplement un nom "semi-humain convivial" en une OID, telle que SNMPV2-MIB :: SysContact.0 dans .1.3.6.1.2.1.1.4.0. Pour une application privée, vous pouvez utiliser théoriquement n'importe quel OID que vous souhaitez, tout comme vous pouvez utiliser théoriquement n'importe quelle adresse IP souhaitée pour un réseau privé qui n'est pas connecté aux autres. Je ne suis pas sûr de savoir s'il y a une «branche privée» préférée. Il y a de bonnes informations pour vous aider à commencer à http://www.paessler.com / Support / KB / Questions / 49 / . On dirait que PHP ne supporte pas directement l'envoi de pièges SNMP, mais vous pouvez appeler la commande "SNMPTRAP".


1 commentaires

Votre réponse m'a donné des informations précieuses pour obtenir sur le bon chemin. Merci.