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
Versione 2c
Versione 3

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:
Nessuna autenticazione, nessuna crittografia
Autenticazione, nessuna crittografia
Autenticazione, crittografia

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
Sopprime il valore diff
Sopprimi il valore della stringa
Sopprimi messaggio info

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.