2009-09-08 27 views
8

Estoy tratando de hacer que un sitio web PHP envíe información a través de SNMP. He estado leyendo sobre SNMP, pero todavía no tengo ni idea de por dónde empezar.Hacer que un sitio PHP envíe información SNMP a una aplicación de administración de red

Creo que necesito crear una MIB con todos los OID que utilizará mi sitio web para enviar la información. ¿Es esto correcto? ¿Cómo y dónde puedo definir esas variables (OID)? ¿Alguien me puede apuntar en la dirección correcta?

Estoy usando FreeBSD en el servidor.

Gracias de antemano.

+0

¿Está intentando que su proceso de PHP escuche las solicitudes de obtención de objetos SNMP, o está intentando que envíe capturas SNMP? – derobert

+0

En realidad estoy tratando de establecer valores y enviar trampas. Por ejemplo, me gustaría tomar el tiempo de ejecución de la página solicitada y configurarlo en un OID SNMP, y enviar la trampa. Luego, la aplicación de administrador de red obtendría la trampa y se daría cuenta de que se realizó una solicitud de página y tardo unos segundos en cargarse. – rogeriopvl

Respuesta

4

Lo que intenta hacer es enviar una "trampa SNMP". No necesita definir un MIB necesariamente. Una MIB solo traduce un nombre "semi human-friendly" en un OID, como SNMPv2-MIB :: sysContact.0 en .1.3.6.1.2.1.1.4.0. Para una aplicación privada, en teoría podría usar cualquier OID que desee, del mismo modo que podría usar teóricamente cualquier dirección IP que desee para una red privada que no esté conectada a otras. No estoy seguro de si hay una rama de OID "privada" preferida. Hay información buena para comenzar en http://www.paessler.com/support/kb/questions/49/. Parece que PHP no admite directamente el envío de capturas SNMP, pero puede invocar el comando "snmptrap".

+0

Su respuesta me dio información valiosa para estar en el camino correcto. Gracias. – rogeriopvl

0

Lo que sé es que SNMP es un protocolo en el que un host envía una solicitud de valor de un OID particular a un dispositivo y luego recibe una respuesta.

No estoy seguro de que pueda tener un sitio web php que responda a estos paquetes.

La única información que he encontrado es que PHP tiene una clase de cliente SNMP PHP SNMP

y la Wikipedia le da información detallada acerca de SNMP link text

pero todavía estoy seguro de que un sitio web no puede actuar como un servidor SNMP.

+0

PHP tiene funciones de socket, por lo que se puede usar para escuchar solicitudes SNMP creando un socket UDP con socket_create. – derobert

+0

Sé que PHP tiene funciones de socket ... pero un "sitio web" como se le preguntó en la pregunta no puede crear un bucle de espera para recibir el paquete UDP ... Si la pregunta era sobre un programa php que se ejecuta en una caja ... ¡vale! –

1

Hay un par de cuestiones:

  • para obtener su propio identificador de nivel superior que creo que realmente tiene que solicitar en algún lugar sin embargo hay un rango experimental que se puede (y probablemente pagar dinero?) usar para probar (esto no es un problema php, es un problema/característica snmp)

  • Por lo que sé, el protocolo asume un proceso para escuchar en un puerto que es totalmente diferente del puerto http, y tampoco usa TCP pero UDP. Solo crear una página php de la forma habitual no va a funcionar.

Una posible solución podría ser utilizar un módulo SNMP en Apache (servidor web o lo que sea que esté utilizando) que le permite programar la lógica respuesta en php. Mi sensación es que la mayoría de las cosas snmp php que encuentras en la web no se trata de la parte del agente, sino de la parte del administrador.

+0

Sí, ya estoy usando el módulo snmp en Apache. Solo necesito poder escribir un valor de OID cada vez que se solicite una página. Pero para esto creo que tengo que crear "la estructura" en MIB. – rogeriopvl

Cuestiones relacionadas