SNMP
Funzione | Interroga un dispositivo (di solito un tipo di dispositivo di rete) per ottenere dati SNMP richiedendo un OID. Consente la ricerca di OID. |
---|---|
Allarme | Tempo di trasferimento, valori definiti dall'utente, valori diff e valori stringa |
Il Simple Network Management Protocol (SNMP) è di gran lunga il protocollo dominante nella gestione delle reti. Uno dei motivi principali della sua ampia accettazione, oltre al fatto di essere il principale standard Internet per la gestione delle reti, è la sua relativa semplicità. L'implementazione della gestione SNMP in un dispositivo di rete è molto più semplice rispetto alla maggior parte degli altri approcci standard o non standard alla gestione della rete.
Il gestore SNMP o l'applicazione di gestione utilizza una sintassi di denominazione ben definita per specificare le variabili all'agente SNMP. I nomi degli oggetti in questa sintassi sono chiamati identificatori di oggetti (Object ID o OID).
Gli OID sono una serie di numeri che identificano in modo univoco un oggetto per un agente SNMP. Gli OID sono disposti in una struttura gerarchica ad albero rovesciato. L'albero degli OID inizia con la radice e si espande in rami. Ogni punto dell'albero OID è chiamato nodo e ogni nodo avrà uno o più rami o terminerà con un nodo foglia. Il formato dell'OID è una sequenza di numeri con punti intermedi.
Per i valori sono supportati i seguenti tipi di variabili SNMP:
ASN_COUNTER | Numero intero non negativo a 32 bit che può solo aumentare. |
ASN_GAUGE | Numero intero a 32 bit |
ASN_INTEGRO | intero a 32 bit (da -232 a232) rfc 1442 |
ASN_INTEGRO64 | Numero intero a 64 bit (da -264 a264) rfc 1442 |
ASN_OPAQUE | float e double supportati |
ASN_UNSIGNED64 | 64 bit senza segno |
ASN_COUNTER64 | 64 bit senza segno |
ASN_TIMETICHE | senza segno |
Tutti questi valori e la differenza rispetto all'ultima misurazione vengono convertiti in float e quindi trasferiti al server.
I valori diff dei tipi sopra indicati vengono automaticamente divisi per il tempo trascorso dall'ultima misurazione ((currentValue - previousValue) / (currentTimeSeconds - previousTimeSeconds)). Ciò significa che per questi valori di differenza si ottiene sempre un tasso al secondo.
ASN_BIT_STR |
ASN_OCTET_STR |
Questi valori sono stringhe e possono contenere qualsiasi carattere stampabile.
Caratteristiche SNMP
Browser MIB online per la selezione degli OID
Infiniti file MIB, posizione: /usr/share/snmp/mibs su ogni SKOOR Engine Collector
Unità di misura configurabile
Valori differenziali automatici
Supporto PDU versione 1, 2c e v3
Supporto della crittografia v3
Allarme di livello n
Selezione dell'interfaccia MIB2 per nome
Riferimento dei nomi OID ai numeri OID
Ripetizioni e timeout regolabili
Valori sopprimibili (riduce la dimensione del DB)
Stringhe (riferimento di un numero a un testo)
Parsing di numeri da OID di testo (solo il primo valore)
Dettaglio SNMP
Parametri SNMP
La sezione di input Autenticazione viene visualizzata solo quando è selezionata la versione 3 di SNMP.
Parametro | Descrizione |
---|---|
Porta UDP | Selezionare la porta UDP (l'impostazione predefinita è 161). |
Ripetizioni | Numero di tentativi se la richiesta fallisce. L'impostazione predefinita è 2 tentativi. |
Timeout | Selezionare il timeout per la richiesta. Nella maggior parte dei dispositivi, le richieste SNMP sono gestite con bassa priorità, quindi utilizzare un timeout sufficientemente alto. L'impostazione predefinita è 2s. |
Versione | Selezionare la versione SNMP servita dal demone snmp remoto. Sono disponibili le seguenti scelte: Versione 1 |
Livello di sicurezza | Il livello di sicurezza definisce la modalità di invio della richiesta SNMP. Questa scelta è disponibile solo quando si utilizza SNMP v3. Sono disponibili le seguenti opzioni: |
Nome utente | Per l'autenticazione, visibile solo quando si utilizza SNMP v3. |
Passphrase di autenticazione | Passphrase per l'autenticazione, visibile solo quando si utilizza SNMP con autenticazione. |
Protocollo di autenticazione | Protocollo per l'autenticazione, visibile solo quando si utilizza SNMP con autenticazione. Le opzioni attualmente disponibili sono MD5 o SHA. L'impostazione predefinita è MD5. |
Passphrase privacy | Per la crittografia, visibile solo quando si utilizza SNMP con autenticazione e crittografia. |
Protocollo privacy | Per la crittografia, visibile solo quando si utilizza SNMP con autenticazione e crittografia. Le opzioni attualmente disponibili sono DES e AES. L'impostazione predefinita è DES. |
Comunità | La maggior parte dei dispositivi di rete consente diversi livelli di accesso SNMP, ad esempio: SOLO LETTURA o LETTURA/SCRITTURA. Ciascuno di questi livelli di accesso ha solitamente una stringa di comunità diversa. Per leggere i dati, è necessario conoscere solo la comunità READ, che di solito è: public. |
Richiesta OID | Inserire l'OID della base informativa di gestione (MIB) per la richiesta. Se l'OID è sconosciuto, può essere consultato sul dispositivo di lavoro con il browser online. È possibile richiedere ulteriori OID da un singolo lavoro SNMP facendo clic sul pulsante "+" accanto al pulsante Sfoglia. Se viene immesso più di un OID, l'output di tutti gli OID viene aggiunto allo stesso file di output, uno dopo l'altro. |
Overflow | Lasciare questa impostazione su Auto. Se il contatore viene azzerato, il calcolo del valore di differenza viene gestito da Auto. In questo modo si evitano valori di differenza negativi. |
Sopprimere il tempo di trasferimento | Per impostazione predefinita, il tempo necessario per trasferire i dati SNMP viene registrato nel database. Se questa informazione è irrilevante, selezionare questa casella per risparmiare spazio nel database. |
Sopprimi valore | Selezionare i tipi di output SNMP che non devono essere considerati. Se la casella di controllo Sopprimi messaggio info è attivata, l'output stringa SNMP non verrà inviato al server. Il valore di ritorno sarà impostato su Valore non valido solo se si desidera un valore o un valore differenziale e non è possibile estrarre un valore dalla stringa. Le caselle di controllo Sopprimi valore, Sopprimi valore diff e |
Mappa stringa a valore | Definiscono una mappatura degli oggetti stringa SNMP in valori numerici. Un valore di stringa può essere estratto come valore di stringa direttamente o definendo una mappa di stringa del formato 1=pippo,2=bar,0=*, il che significa che la stringa pippo sarà convertita nel valore numerico 1, la stringa bar nel valore numerico 2 e (facoltativo) tutto il resto nel valore 0. Gli spazi non sono ammessi in questa definizione. Se non viene definita una mappa di stringhe o se l'assegnazione fallisce (non viene definito un operatore predefinito), la stringa viene analizzata per la prima occorrenza di caratteri numerici e il risultato viene trasferito al server come richiesto (valore e/o valore differito). |
Definire l'unità | Vedere la sezione Unità/Divisore SNMP più avanti. |
L'elenco a discesa Tag consente di inserire variabili predefinite nei campi precedenti, ad esempio $NAME$ per il nome del lavoro.
Sfogliare online
Per trovare un OID SNMP specifico sull'agente SNMP remoto e utilizzarlo come richiesta SNMP, fare clic sul pulsante Sfoglia online. È utile conoscere la posizione approssimativa nell'albero, per limitare il tempo di ricerca, il traffico di rete e le dimensioni dell'output. Immettere la stringa di comunità corretta per l'agente SNMP e selezionare la versione SNMP nella sezione Connessione. Dal menu a tendina è possibile selezionare le MIB più utilizzate, a partire da Root, che deve essere selezionata solo se la posizione dell'oggetto richiesto è completamente sconosciuta:
Avviare il processo con il pulsante Avvia scansione:
La scansione può richiedere un certo tempo per essere completata, a seconda del numero di oggetti sotto l'OID radice selezionato. Fare clic su Aggiorna finché lo stato di download non indica Completato:
Il contatore del download mostra il numero di OID trovati. Per visualizzarli, selezionare Mostra albero o Mostra piatto. Per selezionare un OID, è sufficiente fare clic sul link OID.
Esempio 1 - Visualizzazione ad albero con tipo e valore
Esempio 2 - Visualizzazione piatta con valore
Se l'output dell'albero scansionato non mostra informazioni di testo ma solo OID della forma
1.3.6.1.4.1.13424.11.1.1.25
è probabile che la MIB per il dispositivo scansionato non sia installata. Per cercare le MIB SNMP, cercare sul sito web del produttore del dispositivo o cercare sulla homepage di MIB Depot le MIB disponibili pubblicamente.
Risoluzione del nome generico SNMP
Alcuni server SNMP non fanno sempre corrispondere lo stesso OID allo stesso valore. La lettura dell'utilizzo del disco da un MIB dell'host potrebbe funzionare finché non viene aggiunto un nuovo disco al sistema. È possibile che l'indice (che nell'esempio seguente è .2) cambi.
Per evitare questo inconveniente, SKOOR Engine può utilizzare un Resolve OID definito dall'utente per la mappatura del nome con l'indice. Per ottenere questo risultato, sostituiamo l'indice con una stringa da abbinare all'OID di Resolve con il pattern tra due caratteri $. Prima di eseguire la query, SKOOR Engine sostituisce la $stringa$ con l'indice corrispondente trovato. Ecco un esempio di OID da cui si vuole leggere un valore:
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2
Invece di inserire questa stringa come Request OID, cercare prima la stringa di descrizione SNMP del disco che è memorizzata sotto il seguente OID:
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
Il suo valore è: C:\ Label: Numero di serie dc133042
Ora sostituite il numero 2 con il valore sopra indicato circondato da due caratteri $:
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Numero di serie dc133042$
Non appena viene inserita la seconda stringa $, sotto la riga Request OID1 appare una nuova riga chiamata Resolve OID. Inserire qui la descrizione OID di cui sopra:
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr
$C:\ Etichetta: Il numero di serie dc133042$ verrà sostituito con 2.
Valore predefinito SNMP
Se la risoluzione del nome OID fallisce (vedere la sezione precedente), è possibile definire un indice predefinito. Nell'esempio precedente, si dovrebbe scrivere l'indice predefinito dopo l'OID della richiesta, separato da uno spazio:
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Numero di serie dc133042$ 2
Unità/Divisore SNMP
L'output SNMP nell'esempio della sezione precedente è:
hrStorageDescr.2 C:\ Label: Serial Number dc133042 hrStorageAllocationUnits.2 4096 Bytes hrStorageSize.2 2120572 hrStorageUsed.2 1839613
Per ottenere invece il risultato della capacità di archiviazione utilizzata in GB, è necessario impostare il divisore corretto.
Windows Explorer ci dice quanto segue sul file system dell'unità C:\:
Volume: 8283MB, 8.08GB Total Size, Freespace 1.07GB
Pertanto è necessario moltiplicare hrStorageUsed.2 per 4096 per ottenere il valore in byte e poi dividere per 1024 tre volte per ottenere il valore in GB.
1839613 x 4096 / 1024 / 1024 / 1024 = 7,01 GB utilizzati (in linea con i dati di Explorer).
Per impostare il divisore di SKOOR Engine, combinare 1024 x 1024 x 1024 / 4096 = 262144
Premere il pulsante Unità per definire il nome del valore, la sua unità e il suo divisore:
Il risultato nella sezione valori dopo l'esecuzione del lavoro SNMP sarà 7,01 GB.
Per ottenere invece la % utilizzata, utilizzare questa formula: hrStorageUsed / hrStorageSize x 100, quindi il divisore sarà 21205,72.
Lavori SNMP con più OID
È possibile valutare più OID all'interno dello stesso lavoro SNMP. Tutte le query SNMP devono essere valide per il dispositivo a cui il lavoro SNMP è collegato (non è possibile definire query per dispositivi diversi in un lavoro SNMP). Gli OID aggiuntivi si attivano facendo clic sul pulsante più accanto al pulsante Sfoglia online. Una volta aggiunti altri OID, nella sezione Risultati appaiono altri campi:
Ogni OID ha una sezione di output configurabile separatamente e una propria definizione di Map string to value e un pulsante Unit. Il tempo di trasferimento può essere soppresso a livello globale.
L'esempio utilizza Risolvi OID per ciascuno dei 3 OID. Per maggiori dettagli, vedere la sezione Risoluzione dei nomi generici SNMP.
Il primo e il secondo OID richiedono i contatori ifInOctets e ifOutOctets da un'interfaccia di un dispositivo di rete. Per questi contatori il valore assoluto non è rilevante, ciò che interessa è la variazione nel tempo, pertanto i campi Result di questi due OID sopprimono i valori stessi ed eventuali valori di stringa (che non vengono comunque restituiti da questo OID).
La definizione dell'unità per il primo risultato dell'OID ha le unità del valore e del valore di stringa opportunamente ombreggiate:
Per convertire l'output in kBit/s viene specificato un divisore.
byte/s → kBit/s
kbit = byte / 1000 * 8
kbit = byte / (1000 / 8)
kbit = byte / 125
Il terzo OID richiede l'ifOperStatus dell'interfaccia di rete, che viene restituito come stringa (non come oggetto stringa in sé, ma l'output è ad esempio: up(1)) dall'agente SNMP. Questo si può vedere quando si usa il pulsante Sfoglia online con l'OID .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus come Root:
Poiché i valori numerici sono gestiti più velocemente dallo SKOOR Engine, di solito è meglio convertire la stringa nota in un valore numerico usando il campo Map string to value:
Ciò significa che il risultato inviato al server sarà un valore e non più una stringa, in modo da poter sopprimere i valori stringa e i valori diff.
La definizione dell'unità per il terzo risultato OID è specificata come segue:
I risultati vengono quindi visualizzati nella sezione Valori:
Se uno degli OID definiti produce un errore, viene visualizzato il messaggio di errore di questo OID e l'intero lavoro fallisce. Tutti gli OID successivi non vengono elaborati se un OID fallisce:
Valori SNMP e limiti di allarme
Valore / Limite di allarme | Descrizione |
---|---|
Valore1-n | Valore numerico personalizzato definito dal pulsante Unità di risultato OIDs. |
Valore differenziale1-n | Valore numerico personalizzato definito dal pulsante Unità di risultato OIDs. |
Valore stringa1-n | Valore di stringa personalizzato definito dal pulsante OIDs Result Unit. |
Codice di errore | Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro). |
Esempi SNMP
Esempio 1 - Selezione dell'interfaccia SNMP mib-2 in base alla descrizione
È possibile selezionare automaticamente il numero di interfaccia in base alla sua descrizione. Ciò può essere utile se il numero di interfacce di un router è soggetto a modifiche. Quindi deve essere possibile selezionare l'interfaccia in base alla sua descrizione.
Vogliamo cercare l'OID
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.<interface id>
per il numero di ottetti che sono passati all'interno dell'interfaccia della VLAN 10. Per fare ciò, cerchiamo prima la descrizione dell'interfaccia sotto .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr:
e scopriamo che la descrizione è:
em0_vlan10
Ora sostituire l'indice numerico dopo ifInOctets con la stringa $em0_vlan10$ e utilizzare questo come OID della richiesta:
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.$em0_vlan10$
Come OID di risoluzione, utilizzare
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr
La ricerca di una stringa di descrizione corrispondente è sensibile alle maiuscole e alle minuscole. Il lavoro ricorderà l'ultimo indice. Se il numero è cambiato, viene effettuata una nuova ricerca delle descrizioni.