2009-11-01 6 views
5

Sto tentando di implementare alcune statistiche aggiuntive raccolte in un'applicazione server C#: ho circa 20 variabili che vorrei poter segnalare agli strumenti di monitoraggio della rete; quindi presumo (si spera correttamente) che SNMP sia la strada giusta da percorrere.Implementazione di un SNMP Reporter (agente) in C# (deve essere eseguito su Mono)?

Ci sono però due problemi:

  • L'applicazione è un server open source che non posso includere componenti proprietarie, e
  • Ha bisogno di girare su Mono sotto * nix dintorni, così come Windows tramite .NET .

La libreria "#SNMP" allo http://sharpsnmplib.codeplex.com/ sembra essere una soluzione promettente, ma non sono disponibili campioni; e la mia conoscenza di SNMP è carente.

Qualcuno qui ha qualche (veloce) esempio di report dei dati tramite SNMP? (Idealmente utilizzando una libreria sotto la LGPL, X/MIT, BSD o licenze Zlib)

aiuto molto apprezzato

Edit: Il problema sembra essere la mancanza di librerie in grado di agire come server SNMP, se qualcuno ne è a conoscenza, probabilmente risolverebbe il problema in modo soddisfacente.

Modifica # 2: Fondamentalmente sto cercando una libreria server SNMP o un'implementazione di riferimento di esempio.

+0

Si desidera implementare un agente SNMP o un gestore SNMP? (L'agente è in esecuzione sul dispositivo che viene monitorato, invia trap SNMP al gestore SNMP e fornisce informazioni al gestore quando interrogato.) –

+0

implementazione di un agente –

risposta

6

Come autore :) Suggerisco di controllare l'esempio di TestAgent. Può inviare messaggi TRAP o INFORM all'indirizzo IP specificato.

Si noti che questo è un piccolo esempio, che non rivela tutti i poteri di SNMP.

+1

Solo per tenerti aggiornato, sono felice di annunciare che questo TestAgent (snmpd) è in grado di eseguire operazioni SNMP v1 su alcuni oggetti di base. Questo sarà rilasciato in versione 3.5 o 4.0. –

+1

Ora è un buon momento per aggiornare qui. Poiché Change Set 39585, http://sharpsnmplib.codeplex.com/SourceControl/list/changesets, #SNMP Agent (snmpd) supporta completamente Mono 2.6.3 su openSUSE. Questo dovrebbe garantire che funzioni bene su altre distribuzioni Linux via Mono. –

+1

Basta aggiornare i lettori. #SNMP 6 ha potenziato ulteriormente questo agente SNMP in modo che sia più conforme ai documenti RFC di SNMP. http://sharpsnmplib.codeplex.com/releases/view/46604 Ubuntu è ufficialmente supportato oltre a openSUSE. –

2

# La sorgente SNMP viene fornita con alcuni campioni (in realtà sono dei test, ma si può avere un'idea di come funziona). Un'altra cosa che potresti provare è inviare le tue query snmp chiamando direttamente l'eseguibile snmpget con la classe Process. Non è il modo migliore, ma potrebbe funzionare (ho usato questo tipo di approccio con un'altra lingua).

+1

in un altro modo - Sto cercando di implementare un 'server' piuttosto che un client. Ci sono un sacco di esempi per client/richieste ma nulla che possa trovare per servire. –