SNMP

Funzione

Interroga un dispositivo (di solito un dispositivo di rete) per ottenere dati SNMP richiedendo un OID. Consente la ricerca degli OID.

Allarmi

Tempo di trasferimento, valori definiti dall'utente, valori di differenza 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 diffusione, 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 collegato in rete è molto più semplice rispetto alla maggior parte degli altri approcci, standard o non standard, alla gestione delle reti.

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 Oggetto (Object ID o OID).

Gli OID sono serie di numeri che identificano in modo univoco un oggetto per un agente SNMP. Gli OID sono organizzati in una struttura ad albero gerarchica e invertita. L’albero degli OID inizia dalla radice e si espande in rami. Ogni punto nell’albero degli OID è chiamato nodo e ogni nodo avrà uno o più rami, oppure terminerà con un nodo foglia. Il formato di un OID è una sequenza di numeri separati da punti.

Per i valori sono supportati i seguenti tipi di variabili SNMP:

ASN_COUNTER

Intero non negativo a 32 bit che può solo aumentare

ASN_GAUGE

intero a 32 bit

ASN_INTEGER

Numero intero a 32 bit (da -2³² a 2³²) RFC 1442

ASN_INTEGER64

Intero a 64 bit (da -264 a 264) RFC 1442

ASN_OPAQUE

Supporta i tipi float e double

ASN_UNSIGNED64

64 bit senza segno

ASN_COUNTER64

64 bit senza segno

ASN_TIMETICKS

senza segno

Tutti questi valori e la differenza rispetto all'ultima misurazione vengono convertiti in float e quindi trasferiti al server.

I valori di differenza dei tipi sopra indicati vengono automaticamente divisi per il tempo trascorso dall’ultima misurazione ((valoreAttuale - valorePrecedente) / (tempoAttualeInSecondi - tempoPrecedenteInSecondi)). Ciò significa che per tali valori di differenza si ottiene sempre una frequenza al secondo.

ASN_BIT_STR

ASN_OCTET_STR

Questi valori sono stringhe e possono contenere qualsiasi carattere stampabile.

Funzionalità SNMP

  • Browser MIB online per la selezione degli OID

  • File MIB illimitati, posizione: /usr/share/snmp/mibs su ciascun SKOOR Engine Collector

  • Unità di misura configurabile

  • Valori differenziali automatici

  • Supporto PDU versione 1, 2c e v3

  • Supporto della crittografia v3

  • Allarmi a n livelli

  • Selezione dell'interfaccia MIB2 in base al nome

  • Riferimento dei nomi OID ai numeri OID

  • Ripetizioni e timeout regolabili

  • Valori sopprimibili (riduce le dimensioni del database)

  • Stringhe (riferimento da un numero a un testo)

  • Estrazione di numeri da un OID testuale (solo il primo valore)

Dettagli SNMP

Parametri SNMP

La sezione di immissione dei dati di autenticazione viene visualizzata solo quando è selezionata la versione 3 di SNMP.

Parametro

Descrizione

Porta UDP

Selezionare la porta UDP (il valore predefinito è 161)

Tentativi

Numero di tentativi in caso di fallimento della richiesta. Il valore predefinito è 2.

Timeout

Selezionare il timeout per la richiesta. Sulla maggior parte dei dispositivi, le richieste SNMP vengono gestite con priorità bassa, pertanto è consigliabile impostare un timeout sufficientemente lungo. Il valore predefinito è 2 s.

Versione

Selezionare la versione SNMP fornita dal demone SNMP remoto. Sono disponibili le seguenti opzioni:

Versione 1
Versione 2c
Versione 3

Livello di sicurezza

Il livello di sicurezza definisce le modalità di invio della richiesta SNMP. Questa opzione è 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 di autenticazione, visibile solo quando si utilizza SNMP con autenticazione. Le opzioni attualmente disponibili sono MD5 o SHA. L'impostazione predefinita è MD5.

Passphrase
di privacy

Per la crittografia, visibile solo quando si utilizza SNMP con autenticazione e crittografia.

Protocollo di 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, è sufficiente conoscere la comunità di LETTURA, che di solito è: public.

OID della richiesta

Inserire l’OID della base di informazioni di gestione (MIB) per la richiesta. Se l’OID è sconosciuto, è possibile cercarlo sul dispositivo dei lavori tramite 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". In questo modo verrà gestito il calcolo del valore Diff nel caso in cui il contatore venga azzerato. Ciò impedisce la presenza di valori Diff negativi.

Nascondi il tempo
di trasferimento

Per impostazione predefinita, il tempo necessario per il trasferimento dei dati SNMP viene registrato nel database. Se queste informazioni non sono rilevanti, selezionare questa casella per risparmiare spazio nel database.

Nascondi valore
Nascondi valore
di differenza Nascondi valore
stringa Nascondi messaggio informativo

Selezionare i tipi di output SNMP che non devono essere presi in considerazione.

Se la casella di controllo "Ometti messaggio informativo" è abilitata, l'output di stringa SNMP non verrà inviato al server. Il valore di ritorno verrà impostato su "Valore non valido" solo se si desidera il valore o il valore di differenza e non è possibile estrarre un valore dalla stringa.

Le caselle di controllo «Sopprime valore», «Sopprime valore di differenza» e

Mappa stringa su valore

Definire una mappatura degli oggetti stringa SNMP ai valori numerici.

Un valore stringa può essere estratto direttamente come valore stringa oppure definendo una mappatura stringa nel formato 1=foo,2=bar,0=*, il che significa che la stringa foo verrà convertita nel valore numerico 1, la stringa bar nel valore numerico 2 e (facoltativamente) tutto il resto nel valore 0. In questa definizione non sono ammessi spazi.

Se non è definita alcuna mappatura delle stringhe o l’assegnazione fallisce (nessun operatore predefinito), la stringa viene analizzata alla ricerca della prima occorrenza di caratteri numerici e il risultato viene trasferito al server come richiesto (valore e/o valore di differenza).

Definizione dell’unità

Vedere la sezione "Unità/Divisore SNMP" di seguito.

L'elenco a discesa "Tag" consente di inserire variabili predefinite nei campi sopra indicati, ad esempio $NAME$ per il nome del processo.

Cerca 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 la dimensione dell’output. Inserire la stringa di comunità corretta per l’agente SNMP e selezionare la versione SNMP nella sezione “Connessione”. Le MIB utilizzate più frequentemente possono essere selezionate dal menu a tendina, a partire da “Root”, che dovrebbe essere selezionata solo se la posizione dell’oggetto richiesto è completamente sconosciuta:

Avviare il processo con il pulsante «Avvia scansione»:

La scansione potrebbe richiedere un po’ di tempo per completarsi, a seconda del numero di oggetti presenti sotto l’OID Root selezionato. Fare clic su “Aggiorna” finché lo stato del download non indica “Completato”:

Il contatore «Download» mostra il numero di OID trovati. Per visualizzarli, selezionare «Mostra albero» o «Mostra in piano». Per selezionare un OID, è sufficiente fare clic sul link corrispondente.

Esempio 1 - Visualizzazione ad albero con tipo e valore

    

Esempio 2 - Visualizzazione piatta con valore

    

Se l’output dell’albero analizzato non mostra informazioni testuali ma solo OID della forma

1.3.6.1.4.1.13424.11.1.1.25

probabilmente la MIB del dispositivo analizzato non è installata. Per cercare le MIB SNMP, consultare il sito web del produttore del dispositivo oppure cercare le MIB disponibili pubblicamente sulla homepage di MIB Depot.

Risoluzione dei nomi generici SNMP

Alcuni server SNMP non associano sempre lo stesso OID allo stesso valore. La lettura dell’utilizzo del disco da una MIB host potrebbe funzionare fino a quando non viene aggiunto un nuovo disco a quel sistema. È possibile che l’indice (che nell’esempio seguente è .2) cambi.

Per evitare ciò, SKOOR Engine può utilizzare un OID di risoluzione definito dall’utente per la mappatura da nome a indice. A tal fine, si sostituisce l’indice con una stringa da confrontare con l’OID di risoluzione, utilizzando il pattern racchiuso tra due caratteri $. Prima di eseguire la query, SKOOR Engine sostituirà $string$ con l’indice corrispondente individuato. Ecco un esempio di OID da cui si desidera leggere un valore:

   .iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2

Invece di inserire questa stringa come OID di richiesta, cerca innanzitutto 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:\ Etichetta: Numero di serie dc133042

Ora sostituisci il numero 2 con il valore sopra indicato racchiuso tra due caratteri $:

   iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Etichetta: Numero di serie dc133042$

Non appena viene inserita la seconda stringa $, sotto la riga «Request OID1» compare una nuova riga denominata «Resolve OID». Inserisci qui l’OID della descrizione sopra riportata:

   .iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr

$C:\ Etichetta: Numero di serie dc133042$ verrà sostituito con 2.

Valore predefinito SNMP

Se la risoluzione del nome OID non va a buon fine (vedere la sezione precedente), è possibile definire un indice predefinito. Nell’esempio sopra riportato, si dovrebbe scrivere l’indice predefinito dopo l’OID di richiesta, separato da uno spazio:

   iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Etichetta: 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.

Esplora risorse di Windows ci fornisce le seguenti informazioni 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 dividerlo per 1024 tre volte per ottenere il valore in GB.

   1839613 x 4096 / 1024 / 1024 / 1024 = 7,01 GB utilizzati (il che è in linea con i dati di Esplora risorse)

Per impostare il divisore di SKOOR Engine, calcolare 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 dei valori dopo l’esecuzione del processo SNMP sarà 7,01 GB.

Per ottenere invece la % utilizzata, utilizzare questa formula: hrStorageUsed / hrStorageSize x 100, quindi il divisore sarebbe 21205,72.

Processi SNMP con più OID

È possibile valutare più OID all’interno dello stesso processo SNMP. Tutte le query SNMP devono essere valide per il dispositivo a cui è associato il processo SNMP (non è possibile definire query per dispositivi diversi in un unico processo SNMP). È possibile abilitare OID aggiuntivi facendo clic sul pulsante con il segno più accanto al pulsante "Sfoglia online". Una volta aggiunti gli OID aggiuntivi, nella sezione "Risultati" sottostante compaiono ulteriori campi:

Ogni OID dispone di una sezione di output configurabile separatamente, nonché di una propria definizione «Mappa stringa a valore» e del pulsante «Unità». Il tempo di trasferimento può essere disattivato a livello globale.

L’esempio utilizza "Risolvi OID" per ciascuno dei 3 OID. Per i dettagli, consultare la sezione "Risoluzione dei nomi generici SNMP" sopra riportata.

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 "Risultato" per questi due OID nascondono i valori stessi e qualsiasi valore stringa (che comunque non vengono restituiti da questo OID).

Nella definizione dell’unità per il risultato del primo OID, le unità di misura del valore e del valore stringa sono disattivate di conseguenza:

Viene specificato un divisore per convertire l’output in kBit/s.

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. Ciò è visibile quando si utilizza il pulsante «Browse online» con l’OID .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus come Root:

Poiché i valori numerici vengono elaborati più rapidamente dal SKOOR Engine, di solito è preferibile convertire la stringa nota in un valore numerico utilizzando il campo «Mappa stringa a valore»:

Ciò significa che il risultato inviato al server sarà un valore e non più una stringa, consentendo così di escludere i valori stringa e confrontare i valori.

La definizione dell’unità per il risultato del terzo OID è specificata come segue:

I risultati vengono quindi visualizzati nella sezione «Valori»:

Se uno degli OID definiti genera un errore, viene visualizzato il messaggio di errore relativo a tale OID e l’intero processo fallisce. Se un OID fallisce, tutti gli OID successivi non vengono elaborati:

Valori SNMP e limiti di allarme

Valore / Limite di allarme

Descrizione

Valore1-n

Valore numerico personalizzato definito tramite il pulsante "Unità di risultato" degli OID.

Valore di differenza 1-n

Valore numerico di differenza personalizzato definito dal pulsante "Unità risultato" degli OID.

Valore stringa 1-n

Valore stringa personalizzato definito dal pulsante "Unità di risultato" degli OID.

Codice di errore

Codice di errore generico del processo (vedere la sezione Codici di errore dei processi)

Esempi SNMP

Esempio 1 - Selezione dell’interfaccia MIB-2 SNMP tramite descrizione

È possibile selezionare automaticamente il numero dell’interfaccia in base alla sua descrizione. Ciò può risultare utile se il numero di interfacce di un router è soggetto a variazioni. In tal caso, 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.<ID interfaccia>

relativo al numero di ottetti che sono transitati in entrata attraverso l’interfaccia della VLAN 10. Per farlo, cerchiamo innanzitutto la descrizione dell’interfaccia sotto .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr:

   

e scopriamo che la descrizione è:

em0_vlan10

Ora sostituiamo l’indice numerico dopo ifInOctets con la stringa $em0_vlan10$ e utilizziamo questo come OID di 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 distingue tra maiuscole e minuscole. Il processo memorizzerà l’ultimo indice. Se il numero è cambiato, eseguirà una nuova scansione delle descrizioni.