Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Che cos'è SNMP?

1.1. Utilizzare SNMP invece di un agente Checkmk

Router, switch, firewall, stampanti, appliance, UPS, sensori hardware e molti altri dispositivi non consentono l'installazione di un agente Checkmk. Tuttavia, dispongono già di un'interfaccia integrata per il monitoraggio fornita dal produttore: un agente SNMP. Si può accedere a questo agente tramite il Simple Network Management Protocol (SNMP). Checkmk utilizza SNMP per monitorare questi dispositivi. Il vantaggio per l'utente è che l'installazione del monitoraggio è molto semplice.

Esistono anche agenti SNMP per Windows e Linux, ma non è consigliabile utilizzarli al posto dell' agente Checkmk. SNMP non è molto performante, quindi utilizzarlo per il monitoraggio significa in genere che il server Checkmk ha bisogno di più CPU e memoria per host rispetto a quando lavora con il proprio agente. Inoltre, i dati forniti tramite SNMP sono incompleti. In alcuni casi, tuttavia, il monitoraggio tramite SNMP in aggiunta all'agente Checkmk può essere utile. Vedi il capitolo sull'SNMP e l'agente Checkmk per maggiori informazioni su questo tema.

Tuttavia, se non esiste un plug-in dell'agente Checkmk per il monitoraggio di un particolare componente hardware o software (es. un controller RAID), ma il componente dispone di un'interfaccia SNMP, puoi ovviamente raccogliere ulteriori dati di monitoraggio tramite SNMP. In questo caso, assicurati che gli intervalli di interrogazione siano sufficientemente lunghi.

Monitorare i dispositivi SNMP con Checkmk è molto semplice. Se vuoi iniziare rapidamente con SNMP, probabilmente dovrai leggere la breve sezione dedicata a SNMP nella Guida per principianti. Questo articolo approfondisce molto di più e ti mostra tutti i dettagli e gli scenari specifici del monitoraggio SNMP con Checkmk.

1.2. Versioni SNMP

Il protocollo SNMP è disponibile in diverse versioni, tutte incompatibili tra loro, per cui il sistema di monitoraggio e il dispositivo monitorato devono sempre utilizzare la stessa versione del protocollo. Checkmk supporta le versioni v1, v2c e v3. In pratica, si stima che il 99% delle installazioni utilizzi la v2c. Ecco una panoramica di tutte le versioni SNMP rilevanti:

Versione Caratteristiche Checkmk Descrizione e applicazione pratica

v1

Da utilizzare solo su dispositivi molto vecchi (ad esempio, 15 anni o più) che non supportano la v2c o il cui supporto per la v2c è difettoso.

v2c

Query di massa,
Contatore a 64 bit

Questo è lo standard nella pratica. v2c è una variante "leggera" di v2 e la "c" qui sta per Community, che svolge il ruolo di password in SNMP. I contatori a 64 bit sono essenziali per il monitoraggio di porte dello switch da 1 Gbit/s e oltre. Le query di massa accelerano il monitoraggio fino a un fattore 10.

v2

Sicurezza

no

La versione 2 offre opzioni di sicurezza ancora migliori oltre alle caratteristiche della v2c. La versione 2 di SNMP non viene utilizzata nella pratica, pertanto CMK non supporta questa versione del protocollo. Se hai bisogno di sicurezza, usa la versione 3.
Attenzione: Poiché la "vera" versione 2 non ha alcuna rilevanza, molte maschere di Checkmk si riferiscono semplicemente alla v2, ma in realtà intendono sempre la v2c.

v3

Sicurezza,
Contesto

Laversione 3 viene utilizzata per criptare il traffico SNMP. Con le versioni v2c e v1 questo viene eseguito in chiaro, anche nella comunità. In pratica, la versione 3 è meno diffusa, perché richiede una potenza di calcolo significativamente maggiore e anche il costo della configurazione è significativamente più alto rispetto alla v2c. I contesti sono un concetto in cui informazioni diverse sono visibili nella stessa area della struttura dati SNMP (OID), a seconda dell'ID del contesto. Questo concetto può essere utilizzato, ad esempio, per la suddivisione degli switch Fibre Channel.

1.3. SNMP trap

Checkmk utilizza richieste attive per il port monitoring SNMP - un metodo pull. Checkmk invia un pacchetto UDP (porta 161) contenente una richiesta SNMP al dispositivo che richiede la fornitura di dati specifici. Il dispositivo risponde con un pacchetto UDP contenente i dati di risposta (o un messaggio di errore).

L'SNMP ha un secondo processo: Si tratta di messaggi spontanei inviati dai dispositivi agli indirizzi configurati tramite UDP (porta 162) in modalità push. Le trappole hanno molti svantaggi rispetto alle richieste attive, motivo per cui non sono molto importanti per il monitoraggio. Alcuni degli svantaggi sono:

  • Le trappole non sono affidabili. I pacchetti UDP possono andare persi. Non c'è conferma della ricezione.

  • Nella maggior parte dei casi vengono inviati solo messaggi di errore, ma non messaggi di recupero. Pertanto, lo stato attuale del monitoraggio non è chiaro.

  • Se migliaia di switch inviano simultaneamente trappole (ad esempio, se un importante servizio upstream non è disponibile per loro), il ricevitore di trappole non sarà in grado di gestirle e si romperà sotto il carico. Il monitoraggio sarà quindi sovraccarico quando ne avrai più bisogno.

  • Quando si cambia l'indirizzo IP del ricevitore di trappole, tutti i dispositivi devono essere riconfigurati.

  • Le trappole sono difficili da testare. Pochi dispositivi dispongono di una funzione per inviare una trappola di prova generica, per non parlare dei messaggi di errore reali. Pertanto è difficile prevedere se una trappola importante verrà processata correttamente alla sua prima invocazione dopo alcuni mesi o anni.

Tuttavia, se vuoi o devi lavorare con le trappole, la Console degli Eventi ti offre una soluzione: può ricevere le trappole e generare eventi da esse.

2. Impostare l'SNMP in Checkmk

2.1. Preparare un dispositivo

Il primo passo consiste nel preparare il dispositivo. Ogni dispositivo che supporta SNMP ha una propria maschera di configurazione da qualche parte nella sua configurazione. Effettua le seguenti impostazioni in questa maschera di configurazione:

  1. Vai alla configurazione per le query attive (SNMP GET) (non confondere questo con le trap - la terminologia delle finestre di dialogo della configurazione può essere molto confusa).

  2. Abilita SNMP per le richieste di lettura.

  3. Inserisci gli indirizzi dei tuoi server Checkmk come indirizzi IP consentiti. Può anche essere utile fornire un sito di prova Checkmk. Importante: se hai più server Checkmk ridondanti, non dimenticare di specificare anche l'indirizzo IP utilizzato dopo un failover. In particolare, nel caso dell'appliance Checkmk, questo utilizza l'indirizzo IP del nodo attivo come indirizzo IP di origine per le connessioni in uscita e non l'indirizzo IP del servizio. In un ambiente distribuito, l'indirizzo IP dell'istanza remota in Checkmk da cui viene monitorato il dispositivo è fondamentale.

  4. Assegna una Community se si utilizzano le versioni v1 e v2c del protocollo.

La Community è una sorta di password, ad eccezione del fatto che non esiste una comunità degli utenti per il protocollo SNMP. La convenzione prevede che la community sia public. Questa è l'impostazione predefinita per molti dispositivi e anche per la comunità di Checkmk. Naturalmente si può obiettare che questa è insicura e che dovresti specificare un'altra community. Questo ha certamente senso, ma devi sapere che SNMP trasmette la comunità in chiaro (ad eccezione della versione 3 di SNMP). Chiunque sia in grado di ascoltare i pacchetti può quindi identificare molto facilmente la comunità. D'altra parte hai un accesso limitato alla sola lettura e la maggior parte delle informazioni che possono essere recuperate tramite SNMP non sono molto critiche.

Inoltre, l'uso di comunità diverse per ogni dispositivo è molto complicato da gestire: dopo tutto, queste non devono essere mantenute solo nei dispositivi, ma anche nel sistema di monitoraggio. Per questo motivo, nella pratica le comunità degli utenti di solito usano la stessa comunità ovunque, o almeno all'interno di una regione, di un dipartimento, di un data center, ecc.

Suggerimento: se vuoi aumentare la sicurezza anche senza SNMP versione 3, è opportuno estendere il concetto di rete in modo da inserire il traffico con i servizi gestiti, e quindi anche SNMP, in una VLAN di gestione separata e proteggere l'accesso con il firewall.

2.2. Aggiungere un dispositivo a Checkmk

Aggiungi i dispositivi monitorati come host in Checkmk nel modo consueto. Se hai scelto la struttura delle cartelle in modo che solo una cartella contenga i dispositivi SNMP, puoi effettuare le altre impostazioni direttamente in quella cartella. In questo modo è più facile aggiungere altri host in un secondo momento e si evitano errori.

Adding a host to monitoring via SNMP.

Ora nelle proprietà dell'host (o cartella), nel box Monitoring agents imposta Checkmk agent / API integrations su No API integrations, no Checkmk agent.

Nello stesso box, attiva anche SNMP e come protocollo SNMP seleziona SNMP v2 or v3. La selezione della versione 1 del protocollo è una soluzione di fortuna solo per i dispositivi molto vecchi. Dovresti usarla solo se sai che la v2 non è supportata o se l'implementazione del dispositivo è difettosa (in pratica, solo in casi isolati). Soprattutto, la versione 1 di SNMP è molto lenta perché non supporta gli accessi massivi. Questa differenza è molto significativa.

La terza e ultima impostazione si chiama SNMP credentials. Anche in questo caso è necessario scegliere la versione del protocollo, poiché la v2c e la v3 differiscono tra loro. Parleremo della versione 3 più avanti. Se non hai requisiti di sicurezza molto elevati, la v2c ti sarà utile - oppure puoi inserire la comunicazione SNMP in una VLAN di gestione e renderla così sicura. SNMP v2c richiede l'inserimento della Community come già detto.

Esiste un modo alternativo per configurare le credenziali SNMP, se non puoi passare facilmente attraverso la struttura delle cartelle: il set di regole Setup > Agents > SNMP rules > SNMP credentials of monitored hosts. Questo ti permetterà di assegnare le credenziali in base ai tag degli host, alle etichette e a proprietà simili. Il principio è che una comunità impostata direttamente sull'host o sulla cartella ha sempre la precedenza sulle regole.

Monitoraggio tramite SNMP e agente Checkmk

Di tanto in tanto ci si chiede se non sia possibile o addirittura utile monitorare Linux o Windows utilizzando SNMP invece dell'agente Checkmk. La risposta è molto semplice: possibile sì, utile no. Perché?

  • I dati di monitoraggio dell'agente SNMP sono molto limitati. Per questo motivo è necessario l'agente Checkmk per un monitoraggio utile a metà.

  • L'agente SNMP non fornisce dati significativi che l'agente Checkmk non fornirebbe.

  • L'agente SNMP è più complicato da configurare.

  • Infine, ma non per questo meno importante, il protocollo SNMP richiede risorse di rete e di CPU molto più elevate rispetto al normale monitoraggio con Checkmk.

Tuttavia, ci sono alcune situazioni in cui può essere utile il monitoraggio tramite SNMP in aggiunta all'agente Checkmk, che può coinvolgere sia l'agente Checkmk per Linux che quello per Windows. Un esempio tipico è quello in cui per un componente software o hardware (ad esempio, un controller RAID) viene installato uno strumento del produttore del server che fornisce dati di monitoraggio solo tramite SNMP, come nel caso di Fujitsu ServerView, ad esempio. In questo caso, assicurati che gli intervalli di interrogazione siano sufficientemente lunghi. Con Windows può anche accadere che un'interrogazione tramite PowerShell non sia possibile, a causa della versione di Windows utilizzata o perché non esistono Cmdlet per l'applicazione.

In questo caso, se vuoi monitorare l'host Linux o Windows tramite l'agente Checkmk e SNMP, procedi come segue: nelle proprietà dell'host, nel menu Setup, nel box Monitoring agents, imposta l'opzione Checkmk agent / API integrations su un valore con l'agente Checkmk (API integrations if configured, else Checkmk agent o Configured API integrations and Checkmk agent). Nello stesso box, attiva l'opzione SNMP e imposta il valore su SNMP v2 or v3 o SNMP v1, come descritto sopra:

Include a host in monitoring via Checkmk agent and SNMP.

I servizi che sono disponibili sia tramite SNMP che tramite l'agente Checkmk (es. utilizzo della CPU, file system, schede di rete) vengono recuperati automaticamente dall'agente Checkmk e non tramite SNMP.

2.3. La diagnostica

Una volta terminate le impostazioni, puoi fare una breve deviazione attraverso la pagina di diagnostica. Per farlo, salva con il pulsante della barra delle azioni Save & go to connection test. Ecco un esempio di diagnostica per uno switch. Vengono provate simultaneamente diverse versioni del protocollo SNMP, ovvero:

  • SNMP v1

  • SNMP v2c

  • SNMP v2c senza query di massa

  • SNMP v3

Un dispositivo normale e moderno dovrebbe rispondere a tutte e quattro le varianti con gli stessi dati, ma questo potrebbe essere limitato a seconda della configurazione. Il risultato sarà simile a questo:

Output of SNMP v2c diagnostics.

Le quattro informazioni in uscita sono descritte qui:

sysDescr

La descrizione del dispositivo così come è codificata nel firmware del dispositivo dal produttore. Questo testo è molto importante per Checkmk per la scoperta automatica del servizio.

sysContact

Questo campo serve a specificare un contatto e viene definito dall'utente nella configurazione del dispositivo.

sysName

Qui si trova il nome host del dispositivo. Anche questo campo è configurato sul dispositivo. Per il monitoraggio vero e proprio il nome non ha alcun ruolo e viene visualizzato solo a titolo informativo. Tuttavia, è utile e sensato che il nome host qui riportato corrisponda al nome host in Checkmk.

sysLocation

Questo è un campo per l'inserimento di un testo libero, puramente informativo, in cui puoi inserire la posizione del dispositivo.

2.4. La configurazione del servizio

Caratteristiche speciali dei dispositivi SNMP

Dopo aver salvato le proprietà dell'host (e opzionalmente la diagnostica), il passo successivo è solitamente la configurazione dei servizi. Ci sono alcune particolarità in questo senso, perché internamente la scoperta del servizio avviene in modo molto diverso nei dispositivi SNMP rispetto agli host, che vengono monitorati con l'agente Checkmk. Checkmk può semplicemente guardare l'output dell'agente e trovare gli elementi di interesse utilizzando i singoli plug-in di controllo. Con SNMP è necessario un po' più di lavoro. Sebbene Checkmk possa eseguire un rilevamento e generare un output completo di tutti i dati SNMP (SNMP walk) e cercare informazioni interessanti, ci sono dispositivi per i quali un singolo rilevamento richiederebbe diverse ore!

Tuttavia Checkmk ha un approccio più intelligente: inizialmente recupera solo i primi due record (OID) del dispositivo: sysDescr e sysObjectID. In seguito, se necessario, vengono effettuate altre interrogazioni. In base ai risultati, ognuno dei circa 1.000 plug-in di controllo SNMP forniti decide se il dispositivo supporta effettivamente questo plug-in. Checkmk chiama questa fase la scansione SNMP e come risultato il software produce un elenco di plug-in di controllo che servono come candidati per la scoperta effettiva del servizio.

I plug-in individuati recuperano i dati esatti di cui hanno bisogno utilizzando le query SNMP locali e li usano per determinare i servizi da monitorare. I dati recuperati sono proprio quelli che verranno poi recuperati regolarmente per il monitoraggio.

Per i dispositivi di una LAN l'intero processo di solito non richiede molto tempo - più di qualche secondo sarebbe un'eccezione. Se invece monitori i dispositivi su collegamenti WAN ad alta gravità, l'intera scansione può richiedere diversi minuti. Naturalmente la scansione richiede più tempo anche per switch con centinaia di porte. Ora, sarebbe molto poco pratico dover aspettare così tanto ogni volta che si apre la pagina dei servizi.

Per questo motivo il Setup normalmente salta la scansione ed esegue il rilevamento solo con i plug-in di controllo già in uso nell'host. I percorsi SNMP sono quindi già disponibili come file cache attraverso il normale port monitoring e il rilevamento non richiede molto tempo. In questo modo sarai in grado di trovare nuovi elementi dai plug-in esistenti (ad esempio, nuove porte dello switch, dischi rigidi, sensori, VPN, ecc.

Il pulsante Full service scan forza una scansione SNMP e recupera dati di pertinenza tramite SNMP. Di conseguenza vengono trovati anche servizi di plug-in completamente nuovi. Potrebbe essere necessario attendere per i dispositivi che rispondono lentamente.

Servizi standard

Indipendentemente dal dispositivo SNMP che monitori, nella configurazione devono essere presenti almeno i seguenti tre servizi:

Display of the three standard services that every SNMP device should have.

Il primo servizio è un controllo che monitora le porte di rete. Almeno una deve avere il dispositivo ed essere attiva, altrimenti l'SNMP non funzionerebbe. In generale Checkmk è preimpostato in modo da includere nel monitoraggio tutte le porte che sono attive al momento della scoperta del servizio (stato operativo 'up'). Puoi influenzare questo aspetto con il set di regole Setup > Services > Service discovery rules > Network interface and switch port discovery.

A proposito, nella Guida per principianti troverai un capitolo sulle best practices nella configurazione delle porte dello switch.

Il secondo è il servizio SNMP Info che visualizza le stesse quattro informazioni che hai visto nella diagnosi. Ha una funzione puramente informale ed è sempre OK.

Infine c'è il servizio Uptime che mostra quando il dispositivo è stato riavviato l'ultima volta. Questo servizio è sempre OK per impostazione predefinita, ma puoi impostare delle soglie superiori e inferiori per il tempo di attività.

3. Quando i dispositivi creano problemi

3.1. Un'implementazione SNMP difettosa

In realtà sembra che ogni possibile errore che si possa teoricamente commettere nell'implementazione di SNMP sia già stato commesso da qualche produttore a un certo punto. Quindi ci sono dispositivi con cui SNMP funziona ragionevolmente bene, ma alcune parti del protocollo non funzionano o sono state implementate in modo errato.

Se i problemi si verificano con le edizioni commerciali, uno dei motivi potrebbe essere che l'implementazione SNMP inline, più performante e attivata per impostazione predefinita, si basa maggiormente sulla conformità agli standard rispetto a snmpget. Se i dispositivi non rispondono affatto o non sono affidabili, a volte aiuta inline switchare SNMP per i dispositivi interessati e attivare così il più robusto e significativamente più lento snmpget.

Per i test da linea di comando, il comando cmk ha per alcune opzioni l'opzione aggiuntiva --snmp-backend, che accetta come parametri inline (uso di SNMP inline), classic (uso di snmpget) o stored-walk (uso di un walk SNMP memorizzato). Se il test da linea di comando ha avuto successo, puoi usare il set di regole Hosts not using Inline-SNMP per specificare gli host che non devono usare SNMP inline in modo permanente.

Nessuna risposta per una richiesta a 'sysDescr'

Un possibile errore si verifica quando i dispositivi SNMP non rispondono alla richiesta di informazioni standard - ad esempio, nessuna risposta all'indirizzo sysDescr. Questi dispositivi sono come morti in una diagnosi e non forniranno alcun risultato alla scoperta del servizio se non li aiuterai con una configurazione speciale. Per fare ciò, per gli host interessati crea una regola sotto Setup > Agents > SNMP rules > Hosts without system description OID con l'opzione Positive match (Add matching hosts to the set). Checkmk presume quindi che tutto sia a posto e salta il test con l'opzione sysDescr. Anche se non verranno rilevati plug-in di controllo che si aspettano parti specifiche di questo testo, in pratica questo non ha importanza perché i plug-in di controllo interessati sono progettati per soddisfare tale condizione.

SNMP v2c funziona, ma le richieste di massa falliscono

Alcuni dispositivi supportano la versione v2c - e forniranno una risposta in merito nei supporti e nella diagnostica - ma nel protocollo manca l'implementazione del comando GetBulk. Questo comando viene utilizzato da Checkmk per ottenere il maggior numero di informazioni possibili con una singola richiesta ed è molto importante per le prestazioni.

Con un host di questo tipo, funzioneranno alcuni semplici controlli SNMP, come SNMP Info o SNMP Uptime, ma mancheranno altri servizi, in particolare le interfacce di rete che devono essere presenti su ogni dispositivo.

Se hai un host in cui questo è il caso, puoi farlo funzionare con la versione v2c, ma senza richieste di massa. Configura questo host come segue:

  1. Imposta la versione SNMP per le proprietà dell'host su SNMP v1.

  2. Nel set di regole Setup > Agents > SNMP rules > Legacy SNMP devices using SNMP v2c, crea una regola per l'host e imposta il valore tipico a Positive match (Add matching hosts to the set).

Questo costringe l'host a utilizzare il protocollo SNMP v2c - anche se è stata impostata la versione 1 - ma senza bulkwalk. Per inciso, non consigliamo l'uso di SNMP v1 - anche se è supportato - perché non supporta i contatori a 64 bit. Questo può portare a dati misurati mancanti o errati per le porte di rete che sono soggette a un traffico intenso.

Dispositivi che rispondono molto lentamente

Ci sono alcuni dispositivi con i quali alcune query SNMP richiedono molto tempo. Ciò è dovuto in parte a implementazioni non corrette. In questo caso può essere utile tornare a SNMP v1, che di solito è molto più lento, ma a volte può essere più veloce di un SNMP v2c non funzionante. Prima di provare, però, dovresti verificare se il provider fornisce un aggiornamento del firmware che risolva il problema.

Una seconda causa potrebbe essere che il dispositivo ha molte porte dello switch e un'implementazione SNMP lenta. Se vuoi monitorare solo alcune porte (ad esempio solo le prime due), puoi limitare manualmente Checkmk al polling solo delle porte specificate. I dettagli a riguardo sono riportati di seguito in Prestazioni.

3.2. Vengono trovati solo i servizi standard

Hai incluso un dispositivo SNMP nel monitoraggio ma Checkmk riconosce solo i servizi SNMP Info e SNMP Uptime e le interfacce. Questo può essere dovuto a diverse cause:

a) Non sono presenti plug-in

Checkmk fornisce circa 1.000 plug-in di controllo per i dispositivi SNMP, ma naturalmente questo elenco non è mai completo. Più volte si è riscontrato che per alcuni dispositivi Checkmk non fornisce alcun plug-in specifico, il che significa che puoi monitorare solo i servizi standard come indicato. In questo caso hai le seguenti opzioni:

  • Potresti trovare un plug-in adatto su Checkmk Exchange, dove gli utenti possono caricare i propri plug-in.

  • Sviluppare tu stesso dei plug-in. Troverai degli articoli in questo Manuale dell'utente.

  • Contatta il nostro team di assistenza o uno dei nostri partner e chiedi loro di sviluppare dei plug-in adatti.

b) I plug-in non vengono riconosciuti

A volte capita che una nuova versione del firmware di un dispositivo faccia sì che i plug-in di Checkmk non lo riconoscano più, ad es. perché è cambiato un testo nella descrizione del sistema del dispositivo. In questo caso è necessario adattare i plug-in esistenti. Contatta il nostro team di assistenza per questo.

c) Il dispositivo non fornisce i dati richiesti

Alcuni (pochi) dispositivi hanno la possibilità di configurare individualmente l'accesso a specifiche aree informative nella loro configurazione SNMP. Il tuo dispositivo potrebbe essere impostato per fornire le informazioni predefinite, ma non quelle per i servizi specifici del dispositivo.

Su alcuni dispositivi devi utilizzare SNMP v3 e i Contesti per ottenere i dati che desideri.

3.3. Dispositivi che non rispondono affatto a SNMP

Se il ping funziona, ma nessuna delle versioni del protocollo SNMP funziona, le cause possono essere diverse:

  • Il dispositivo non è raggiungibile via IP. Puoi verificarlo con il Ping Test (primo box).

  • Il dispositivo non supporta affatto il protocollo SNMP.

  • La condivisione SNMP non è configurata correttamente (attivazione, indirizzi consentiti, Community).

  • Un firewall blocca l'SNMP. Devi aprire la porta UDP 161 per il traffico in uscita e in entrata.

4. SNMP v3

4.1. Sicurezza

Per impostazione predefinita, la Community SNMP non è criptata ed è quindi molto poco autenticata da una Comunità trasmessa in chiaro sulla rete. Questo livello può essere ancora sufficiente per una rete locale e isolata, poiché in questo caso il monitoraggio è limitato all'accesso alle operazioni di sola lettura.

Se desideri un livello di sicurezza più elevato, devi ricorrere alla versione 3 di SNMP, che prevede la possibilità di crittografia e autenticazione, ma per questo è necessaria una configurazione corrispondente.

SNMP v3 riconosce diversi livelli di sicurezza:

noAuthNoPriv

Nessuna autenticazione, autenticazione basata sull'utente e nessuna crittografia. Tuttavia, il vantaggio rispetto alla v2c è che la password non viene più trasmessa in chiaro, ma viene sottoposta a hash.

authNoPriv

Autenticazione basata sull'utente con un nome (Security name) e una password, ma senza crittografia.

authPriv

Autenticazione basata sull'utente come nel caso di authNoPriv, con in più la crittografia di tutti i dati. In questo caso devi scambiare manualmente una chiave, cioè depositare la chiave sia nel dispositivo che in Checkmk.

L'impostazione necessaria in Checkmk si effettua nello stesso punto in cui hai definito la Comunità: nelle proprietà dell'host o nella regola SNMP credentials of monitored hosts. In questo caso, invece di SNMP Community, seleziona uno dei tre livelli di v3 e configura i valori necessari:

Configuring SNMP v3 security settings.

4.2. Contesti

SNMP v3 introduce il concetto di Contesti. Un dispositivo può mostrare informazioni diverse in uno stesso punto dell'albero SNMP, a seconda dell'ID del contesto indicato nella query.

Se hai un dispositivo che funziona con tali contesti, dovrai effettuare due impostazioni in Checkmk:

  • Innanzitutto, il dispositivo deve essere interrogato utilizzando il protocollo SNMP v3 (come descritto nella sezione precedente).

  • Poi è necessaria un'altra regola nel set di regole SNMPv3 contexts to use in requests. Qui devi selezionare il plug-in di controllo per il quale devono essere attivati i contesti e poi l'elenco dei contesti che devono essere interrogati nel monitoraggio.

Fortunatamente sono poche le situazioni in cui devi lavorare con i contesti, perché purtroppo non è possibile che il monitoraggio li riconosca automaticamente. È sempre necessaria una configurazione manuale dei contesti.

5. Prestazioni e tempi

5.1. SNMP inline

Le prestazioni sono sempre importanti, soprattutto in ambienti con molti host, e il monitoraggio con SNMP consuma più CPU e memoria rispetto agli agenti Checkmk.

Mentre Checkmk Raw effettua le richieste SNMP nel modo classico tramite i comandi snmpget o snmpbulkwalk, le edizioni commerciali dispongono di un motore SNMP integrato che esegue le richieste SNMP in modo molto efficiente senza generare alcun processo aggiuntivo. Grazie a ciò, il carico della CPU per l'elaborazione SNMP è approssimativamente dimezzato. I tempi di polling più brevi riducono anche il numero di processi di Checkmk necessari in contemporanea e quindi l'utilizzo della memoria.

5.2. Intervalli di controllo per i controlli SNMP

Se le risorse raggiungono i loro limiti o se ci vogliono più di 60 secondi per interrogare un singolo dispositivo, puoi ridurre l'intervallo con cui Checkmk interroga gli host. Con il set di regole Normal check interval for service checks, che si applica specificamente ai servizi Checkmk degli host, puoi estendere l'intervallo generale di un minuto a, ad esempio, 2 o 5 minuti.

Soprattutto per i controlli SNMP, esiste anche il set di regole Check intervals for SNMP checks che ti permette di ridurre l'intervallo per i singoli plug-in di controllo. È importante sapere che non puoi mai impostare l'intervallo a un tempo superiore a quello del monitoraggio generale da parte del servizio Checkmk.

In generale, comunque, consigliamo di progettare il monitoraggio in modo da mantenere l'intervallo standard di un minuto e di aumentarlo solo in casi eccezionali per singoli host o controlli.

5.3. Impostazioni temporali per l'accesso SNMP

Per impostazione predefinita, Checkmk si aspetta una risposta in meno di un secondo per una richiesta SNMP e tenta un totale di tre volte prima di rinunciare. Per i dispositivi che rispondono molto lentamente o che possono essere raggiunti solo attraverso una rete molto lenta, potrebbe essere necessario modificare questi parametri. Puoi farlo attraverso il set di regole Timing settings for SNMP access:

Increasing the response timeout.

Tieni presente che queste impostazioni si applicano a una singola richiesta SNMP. Il processo completo di monitoraggio di un host consiste in molte richieste separate. Il timeout totale è quindi un multiplo delle impostazioni qui specificate.

5.4. Bulkwalk: Numero di OID per bulk

Per valore predefinito, SNMP trasmette 10 risposte in un pacchetto per ogni richiesta di GetBulk. Prova il set di regole sperimentali Bulk walk: Number of OIDs per bulk per vedere se un valore più alto è più performante. Tuttavia, questo si verifica solo quando vengono trasferite tabelle di grandi dimensioni all'host, ad es. se si tratta di uno switch con molte porte.

SNMP riempie sempre i pacchetti fino al numero specificato, includendo tutti i record successivi a quelli effettivamente richiesti; se solo alcuni di questi record sono realmente necessari, i dati extra vengono trasferiti inutilmente e l'overhead aumenta.

D'altra parte, nella pratica può capitare che i dispositivi con il valore predefinito di 10 OID per pacchetto di massa abbiano dei problemi. In tal caso può essere utile ridurre il numero.

5.5. Limitare gli intervalli di OID SNMP

Checkmk funziona normalmente ottenendo sempre le informazioni su tutte le porte dello switch, anche se non tutte sono effettivamente monitorate. Si tratta comunque di una buona cosa, poiché in genere è più veloce perché le query singole non possono essere eseguite con le efficienti query in blocco. Inoltre, dal nostro punto di vista, è sempre consigliabile monitorare tutte le porte per trovare quelle difettose o i cavi con un alto tasso di errore. Se le porte non sono UP in modo affidabile, puoi anche segnalare lo stato del collegamento DOWN come OK.

Tuttavia, ci sono casi isolati in cui le porte dello switch sono molto numerose e per qualche motivo rispondono molto lentamente o processano SNMP in modo molto inefficiente, per cui non è più possibile monitorare con un recupero completo di tutte le informazioni sulle porte.

Per questi casi, esiste il set di regole Bulk walk: Limit SNMP OID Ranges che ti permette di limitare staticamente l'elenco dei dati interrogati (es. porte). Nel valore della regola, per ogni particolare plug-in di controllo specifichi quali indici della rispettiva tabella devono essere recuperati.

Il tipo di controllo abituale per le porte dello switch si chiama SNMP interface check with 64 bit counters (using v2c). L'esempio seguente mostra un'impostazione in cui solo le prime due porte vengono recuperate tramite SNMP:

Bulkwalk: limit SNMP OID ranges.

Nota: questo filtraggio viene applicato prima della scoperta del servizio e del monitoraggio. A seconda dell'impostazione di Network interface and switch port discovery, questo non significa automaticamente che queste due porte verranno effettivamente monitorate.

6. Simulazione tramite passeggiate SNMP

6.1. Principio

Il motore SNMP di Checkmk ha una funzione molto utile: puoi fare in modo che un dispositivo monitorato scriva un'istantanea completa di tutti i suoi dati SNMP in un file, un SNMP walk. Puoi usare questo file in un secondo momento per simulare il monitoraggio del dispositivo su un altro server Checkmk, anche se quest'ultimo non ha un'effettiva connessione di rete con il dispositivo di rete.

Utilizziamo questa funzione in modo intensivo, ad esempio quando il nostro team di supporto sviluppa nuovi plug-in di controllo per i nostri clienti. I nostri sviluppatori non hanno quindi bisogno di accedere ai tuoi dispositivi, ma solo di un walk SNMP.

6.2. Creare un walk tramite la GUI

Puoi creare un walk SNMP direttamente dalla GUI. La funzione si trova nel menu contestuale del servizio Checkmk degli host e anche nel menu degli host (voce Download SNMP walk):

Download SNMP walk in the context menu for the host in the monitoring overview.

La creazione del percorso richiede pochi secondi nel migliore dei casi, ma non sono rari i casi in cui sono necessari alcuni minuti. Al termine della creazione, puoi scaricare il file creato tramite la linea Result.

6.3. Creare una passeggiata dalla linea di comando

In alternativa, puoi creare una passeggiata anche dalla linea di comando. Accedi al sito dal quale il dispositivo viene monitorato. La creazione della passeggiata avviene semplicemente con il comando cmk --snmpwalk e l'host specificato (che deve essere configurato nel monitoraggio):

OMD[mysite]:~$ cmk --snmpwalk switch23

Utilizza anche lo switch -v per visualizzare un output più dettagliato sull'avanzamento:

OMD[mysite]:~$ cmk -v --snmpwalk switch23
switch23:
Walk on ".1.3.6.1.2.1"...3664 variables.
Walk on ".1.3.6.1.4.1"...5791 variables.
Wrote fetched data to /omd/sites/mysite/var/check_mk/snmpwalks/switch23.

Il file verrà collocato nella directory var/check_mk/snmpwalks, dove riporterà semplicemente il nome dell'host. Si tratta di un file di testo. Se sei curioso, puoi visualizzarlo - ad es. con less- e chiudere il programma con il tasto Q:

OMD[mysite]:~$ less var/check_mk/snmpwalks/switch23
.1.3.6.1.2.1.1.1.0 Yoyodyne Frobolator 23 port L2 Managed Switch
.1.3.6.1.2.1.1.2.0 .1.3.6.1.4.1.11863.1.1.3
.1.3.6.1.2.1.1.3.0 560840147
.1.3.6.1.2.1.1.4.0 Zoe Zhang 
.1.3.6.1.2.1.1.5.0 cmkswitch23
.1.3.6.1.2.1.1.6.0 Data Center 42
.1.3.6.1.2.1.1.7.0 3
.1.3.6.1.2.1.2.1.0 27

Il comando cmk --snmpwalk ha altre opzioni utili:

Opzione Effetto

--extraoid <OID>

Quando Checkmk esegue una ricerca su un host, generalmente recupera due sottoalberi dall'area dati SNMP. Questi sono specificati nell'albero SNMP utilizzando i cosiddetti OID (identificatori di oggetto). Si tratta di MIB-2 e enterprises: da un lato un'area standard normalizzata e uguale per tutti i dispositivi SNMP, dall'altro un'area specifica del produttore. Se il dispositivo SNMP è implementato correttamente, il dispositivo dovrebbe inviare tutti i dati che fornisce. Se non è così e stai cercando un intervallo specifico, puoi aggiungere il suo OID alla passeggiata con questa opzione, ad es. cmk --snmpwalk --extraoid .1.2.3.4 switch23. Non dimenticare il "punto" all'inizio dell'OID.

--oid

Questa opzione è simile a --extraoid, ma recupera solo l'OID specificato. È interessante a scopo di test. Si noti, tuttavia, che il percorso sarà incompleto.

-v

v significa " verboso" e fornirà alcune informazioni interessanti durante l'esplorazione.

-vv

vv sta per molto verboso e fornisce molte più informazioni.

6.4. Utilizzare i percorsi salvati per le simulazioni

Se vuoi utilizzare questo percorso in un'altra (o nella stessa) istanza Checkmk per una simulazione, salva il file del percorso con il nome dell'host in questo sito sotto var/check_mk/snmpwalks. Assicurati che l'utente dell'istanza sia il proprietario del file e che i permessi siano impostati su 0600 (solo il proprietario può leggere e scrivere).

Ora crea una regola nel set di regole Simulating SNMP by using a stored SNMP walk che acceda agli host interessati.

D'ora in poi, solo il file salvato verrà utilizzato per monitorare l'host. Ora non c'è più alcun accesso di rete all'host, ad eccezione del ping per il controllo dell'host e di eventuali controlli attivi configurati. Puoi semplicemente reindirizzare questi ultimi al server Checkmk dando l'indirizzo IP 127.0.0.1 agli host.

7. File e directory

Percorso del file Descrizione

var/check_mk/snmpwalks

Qui vengono generati i file walk SNMP o sono previsti se vuoi utilizzarli per simulare i dati SNMP.

In questa pagina