2009-09-08 13 views
8

Sto provando a fare in modo che un sito Web di PHP invii informazioni tramite SNMP. Ho letto molte cose su SNMP, ma sono ancora un po 'indifferente su dove iniziare.Crea un sito PHP invia informazioni SNMP a un'app di gestione di rete

Credo di aver bisogno di creare un MIB con tutti gli OID che il mio sito Web utilizzerà per inviare le informazioni. È corretto? Come e dove posso definire queste variabili (OID)? Qualcuno può indicarmi la giusta direzione?

Sto usando FreeBSD sul server.

Grazie in anticipo.

+0

Stai cercando di far ascoltare il processo PHP per richieste SNMP oggetto-get o stai cercando di inviarlo trap SNMP? – derobert

+0

In realtà sto cercando di impostare valori e inviare trap. Ad esempio, vorrei prendere il tempo di esecuzione della pagina richiesta e impostarlo in un OID SNMP e inviare il trap. Quindi l'app di gestione della rete otterrebbe il trap e si accorgerebbe che è stata effettuata una richiesta di pagina e sono stati necessari n secondi per il caricamento. – rogeriopvl

risposta

4

Quello che stai cercando di fare è inviare un "trap SNMP". Non è necessario definire necessariamente un MIB. Un MIB traduce semplicemente un nome "semi-umano" in un OID, come SNMPv2-MIB :: sysContact.0 in .1.3.6.1.2.1.1.4.0. Per un'applicazione privata, potresti teoricamente utilizzare qualsiasi OID che desideri, proprio come potresti teoricamente utilizzare qualsiasi indirizzo IP che desideri per una rete privata che non è connessa ad altri. Non sono sicuro che esista un ramo OID "privato" preferito. Ci sono alcune buone informazioni per iniziare a http://www.paessler.com/support/kb/questions/49/. Sembra che PHP non supporti direttamente l'invio di trap SNMP, ma potresti invocare il comando "snmptrap".

+0

La tua risposta mi ha dato informazioni preziose per andare sulla giusta strada. Grazie. – rogeriopvl

0

Quello che so è che SNMP è un protocollo in cui un host invia una richiesta di valore di un particolare OID a un dispositivo e quindi riceve una risposta.

Non sono sicuro che tu possa avere un sito Web php che risponda a questi pacchetti.

L'unica informazione che ho trovato è che PHP avere una classe client SNMP PHP SNMP

E wikipedia ti dà informazioni dettagliate su SNMP link text

ma io sono ancora sicuro che un sito web non può agire come un server SNMP.

+0

PHP ha funzioni socket, quindi può essere utilizzato per ascoltare le richieste SNMP creando un socket UDP con socket_create. – derobert

+0

So che PHP ha funzioni di socket ... ma un "sito web" come richiesto nella domanda non può creare un ciclo di attesa per ricevere pacchetti UDP .. Se la domanda riguardava un programma php che viene eseguito in una scatola .. ok! –

1

ci sono un paio di questioni:

  • per ottenere il proprio identificativo livello superiore penso in realtà si deve richiedere da qualche parte però v'è una gamma sperimentale che si può (e probabilmente pagare soldi?) utilizzare per testare. (questo non è un problema php, è un problema/funzione snmp)

  • Per quanto ne so il protocollo presuppone che un processo ascolti su una porta che è totalmente diversa dalla porta http e anche che non usi TCP ma UDP. La semplice creazione di una pagina php non funzionerà normalmente.

Una possibile soluzione potrebbe essere quella di utilizzare un modulo SNMP in Apache (o qualsiasi server web che si utilizza), che permette di programmare la logica risposta in php. La mia sensazione è che la maggior parte della roba snmp php che si incontra sul web non riguarda la parte agente ma la parte manager.

+0

Sì, sto già utilizzando il modulo snmp su Apache. Devo solo essere in grado di scrivere un valore OID ogni volta che viene richiesta una pagina. Ma per questo credo di dover creare "la struttura" in MIB. – rogeriopvl