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. Cos'è SNMP?
1.1. Usare SNMP al posto 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 di monitoraggio integrata fornita dal produttore: un agente SNMP. È possibile accedere a questo agente tramite il Simple Network Management Protocol (SNMP). Checkmk utilizza SNMP per monitorare tali dispositivi. Il vantaggio per te è che configurare il 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 generalmente che il server Checkmk richiede più CPU e memoria per host rispetto a quando si 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. Consulta il capitolo su SNMP e l’agente Checkmk per ulteriori informazioni su questo tema.
Tuttavia, se non esiste un plug-in dell'agente Checkmk per il monitoraggio di un particolare componente hardware o software (ad es. un controller RAID), ma il componente dispone di un'interfaccia SNMP, puoi ovviamente raccogliere ulteriori dati di monitoraggio tramite SNMP. In tal caso, assicurati che gli intervalli di query siano sufficientemente lunghi.
Monitorare i dispositivi SNMP con Checkmk è molto semplice. Se vuoi semplicemente iniziare rapidamente con SNMP, probabilmente dovrai leggere la breve sezione su SNMP nella Guida per principianti. Questo articolo, invece, approfondisce molto di più l'argomento 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. Questi protocolli sono tutti incompatibili tra loro, quindi 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 versione v2c. Ecco una panoramica di tutte le versioni rilevanti di SNMP:
| Versione | Caratteristiche | Checkmk | Descrizione e applicazione pratica |
|---|---|---|---|
v1 |
sì |
Da usare solo su dispositivi molto vecchi (ad esempio, di almeno 15 anni) che non supportano la v2c, o il cui supporto per la v2c è difettoso. |
|
v2c |
Richieste massive, |
sì |
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 delle porte degli switch con 1 Gbit/s e oltre. Le query massive accelerano il monitoraggio fino a 10 volte. |
v2 |
Sicurezza |
no |
La versione 2 offre opzioni di sicurezza ancora migliori oltre alle funzionalità di v2c.
La versione 2 di SNMP non si trova nella pratica, quindi Checkmk non supporta questa versione del protocollo.
Se hai bisogno di sicurezza, usa invece la versione 3
. |
v3 |
Sicurezza, |
sì |
La versione 3 viene utilizzata per crittografare il traffico SNMP. Con v2c e v1 questo funziona in chiaro, anche nella community. In pratica, la versione 3 è piuttosto meno comune, perché richiede una potenza di calcolo significativamente maggiore e anche il costo della configurazione è notevolmente più alto rispetto alla v2c. I contesti sono un concetto in cui informazioni diverse sono visibili nella stessa area della struttura dei dati SNMP (OID), a seconda dell'ID del contesto. Questo verrebbe utilizzato, ad esempio, per il partizionamento degli switch Fibre Channel. |
SNMPv3 viene applicato – a condizione che tu abbia attivato la regola appropriata – solo agli host che contengono dati di accesso in stile SNMPv3 nella loro configurazione. |
1.3. SNMP trap
Checkmk utilizza richieste attive per il monitoraggio SNMP – un metodo pull. Checkmk invia un pacchetto UDP (porta 161) contenente una richiesta SNMP al dispositivo, richiedendo la fornitura di dati specifici. Il dispositivo risponde quindi con un pacchetto UDP contenente la risposta (o un messaggio di errore).
SNMP ha un secondo processo: le SNMP trap. Si tratta di messaggi push spontanei inviati dai dispositivi a indirizzi configurati tramite UDP (porta 162) in modalità push. Le SNMP trap presentano molti svantaggi rispetto alle richieste attive, motivo per cui non sono molto importanti per il monitoraggio. Alcuni degli svantaggi sono:
Le trap non sono affidabili. I pacchetti UDP possono andare persi. Non c'è conferma di ricezione.
Per lo più vengono inviati solo messaggi di errore, ma nessun messaggio di recupero. Pertanto lo stato attuale nel monitoraggio non è chiaro.
Se migliaia di switch inviano contemporaneamente delle trap (ad esempio, se un importante servizio a monte non è disponibile per loro), il ricevitore delle trap non sarà in grado di gestirle e cederà sotto il carico. Il monitoraggio sarà quindi sovraccarico proprio quando ne avrai più bisogno.
Quando si modifica l'indirizzo IP del ricevitore di trap, tutti i dispositivi devono essere riconfigurati.
I trap sono difficili da testare. Pochi dispositivi dispongono addirittura di una funzione per inviare un trap di test generico, figuriamoci per testare messaggi di errore reali. Pertanto è difficile prevedere se un trap importante verrà processato correttamente quando verrà invocato per la prima volta dopo alcuni mesi o anni.
Tuttavia, se vuoi o hai bisogno di lavorare con i trap, la Console degli Eventi offre una soluzione. Questa può ricevere i trap e generare eventi da essi.
2. Configurazione di SNMP in Checkmk
2.1. Preparazione di un dispositivo
Il primo passo è preparare il dispositivo. Ogni dispositivo SNMP ha una propria maschera di configurazione da qualche parte nella sua configurazione. Effettua le seguenti impostazioni in questa maschera di configurazione:
Vai alla configurazione per le query attive (SNMP GET). (Non confonderle con le SNMP trap: la terminologia nelle finestre di dialogo di configurazione può creare molta confusione).
Abilita SNMP per le richieste di lettura.
Inserisci gli indirizzi dei tuoi server Checkmk come indirizzi IP consentiti. Potrebbe anche essere utile fornire qui un sito di prova Checkmk. Importante: se disponi di più server Checkmk ridondanti, non dimenticare di specificare anche gli indirizzi IP utilizzati dopo un failover. Nel caso specifico dell'Checkmk Appliance, questa 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 da cui viene monitorato il dispositivo è fondamentale.
Assegna una community se si devono utilizzare le versioni di protocollo v1 e v2c.
La community è una sorta di password, tranne per l'eccezione che non esiste un nome utente per SNMP.
Esiste una convenzione secondo cui la community è public.
Questo è l'impostazione predefinita per molti dispositivi — e anche per Checkmk.
Ovviamente puoi obiettare che ciò non è sicuro e che dovresti specificare un'altra community.
Questo ha sicuramente senso, ma devi sapere che SNMP trasmette la community in chiaro (con l'eccezione della versione 3 di SNMP). Chiunque possa intercettare i pacchetti può quindi identificare molto facilmente la community.
D'altra parte, l'accesso è limitato alla sola lettura e la maggior parte delle informazioni che si possono recuperare tramite SNMP non è molto critica.
Inoltre, l’uso di comunità diverse per ogni dispositivo è molto complicato da handle. Dopotutto, queste non devono essere gestite solo nei dispositivi, ma anche nel sistema di monitoraggio. Ecco perché in pratica gli utenti di solito usano la stessa comunità ovunque — o almeno ovunque all’interno di una regione, un reparto, un data center, ecc.
Se vuoi aumentare la sicurezza anche senza SNMP versione 3, ha senso estendere il concetto di rete in modo da collocare il traffico con i servizi di gestione, e quindi anche SNMP, in una VLAN di gestione separata e proteggere quell'accesso con il firewall.
2.2. Aggiungere un dispositivo in Checkmk
Aggiungi i dispositivi monitorati come host in Checkmk nel modo consueto. Se hai scelto la struttura delle cartelle in modo che una sola cartella contenga i dispositivi SNMP, puoi effettuare le altre impostazioni direttamente in quella cartella. Questo rende più facile aggiungere host aggiuntivi in un secondo momento ed evita anche errori.

Ora, nelle proprietà dell'host (o della cartella), nella box "Monitoring agents" imposta "Checkmk agent / API integrations" su "No API integrations, no Checkmk agent".
Nella stessa box, attiva anche "SNMP" e come protocollo SNMP seleziona "SNMPv2 or v3". La selezione della versione 1 del protocollo è una soluzione di ripiego solo per dispositivi molto vecchi. Dovresti usarla solo se sai che la v2 non è davvero supportata, o quando l'implementazione per il 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 qui è necessario scegliere la versione del protocollo, poiché v2c e v3 differiscono in questo caso. Parleremo della versione 3 più avanti. Se non hai requisiti di sicurezza molto elevati, v2c andrà benissimo — oppure puoi collocare la comunicazione SNMP in una VLAN di gestione e renderla così sicura. SNMPv2c richiede l'inserimento della community come discusso sopra.
Esiste un modo alternativo per configurare le credenziali SNMP, se non riesci a farle passare facilmente attraverso la tua struttura di cartelle: il set di regole "Setup > Agents > SNMP rules > SNMP credentials of monitored hosts". Questo ti permetterà di assegnare le credenziali in base a tag host, etichette e proprietà simili. Il principio è che una community 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. Pertanto, per un monitoraggio anche solo vagamente utile, hai comunque bisogno dell'agente Checkmk.
L'agente SNMP non fornisce alcun dato significativo che l'agente Checkmk non fornisca.
L'agente SNMP è più complicato da configurare.
Infine, ma non meno importante, il protocollo SNMP richiede molte più risorse di CPU e di rete rispetto al normale monitoraggio con Checkmk.
Tuttavia, ci sono alcune situazioni in cui il monitoraggio tramite SNMP in aggiunta all'agente Checkmk può essere utile. Questo può riguardare 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) è 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, puoi ovviamente raccogliere ulteriori dati di monitoraggio tramite SNMP. Assicurati che gli intervalli di query siano sufficientemente lunghi. Con Windows può anche capitare che una query tramite PowerShell non sia possibile, a causa della versione di Windows utilizzata o perché non ci sono Cmdlet per l’applicazione.
In tal 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”, nella 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). Nella stessa box, abilita l’opzione “SNMP” e imposta il valore su SNMPv2 or v3 o SNMP v1, come descritto sopra:

I servizi disponibili sia tramite SNMP che tramite l'agente Checkmk (ad es. utilizzo della CPU, file system, schede di rete) vengono quindi recuperati automaticamente dall'agente Checkmk e non tramite SNMP.
2.3. Diagnostica
Una volta terminate le impostazioni, puoi fare una breve deviazione alla pagina di diagnostica. Per farlo, salva con il pulsante della barra delle azioni "Save & go to connection test".
Ecco un esempio della diagnostica per uno switch. Vengono provate contemporaneamente diverse versioni del protocollo SNMP, ovvero:
SNMPv1
SNMPv2c
SNMPv2c senza richieste massive
SNMPv3
Un dispositivo normale e moderno dovrebbe rispondere a tutte e quattro le varianti con gli stessi dati, anche se questo potrebbe essere limitato a seconda della configurazione. Il risultato sarà simile a questo:

Qui vengono descritte le quattro informazioni fornite:
|
La descrizione del dispositivo così come è codificata nel firmware dal produttore. Questo testo è molto importante per Checkmk per la scoperta automatica dei servizi. |
|
Questo campo serve per specificare una persona di contatto e viene definito da te nella configurazione del dispositivo. |
|
Qui c'è il nome host del dispositivo. Anche questo campo viene 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 corrisponda al nome host in Checkmk. |
|
Questo è un campo per l'inserimento di testo libero — puramente a titolo 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, facoltativamente, la diagnostica), il passo successivo è solitamente la configurazione dei servizi. Ci sono alcune peculiarità in questo, 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 esaminare 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 in questo modo cercare informazioni interessanti, ci sono dispositivi SNMP per i quali un singolo rilevamento richiederebbe diverse ore!
Tuttavia, Checkmk ha un approccio più intelligente.
Inizialmente, recupera solo i primi due record (OID) dal dispositivo: l’sysDescr e l’sysObjectID.
Successivamente, se necessario, vengono eseguite ulteriori query.
In base ai risultati, ciascuno dei quasi 1000 plug-in di controllo SNMP forniti decide se il dispositivo supporta effettivamente quel plug-in.
Checkmk chiama questa fase "scansione SNMP" e, di conseguenza, il software produce un elenco di plug-in di controllo che fungono da candidati per l'effettiva scoperta del servizio.
In una seconda fase viene eseguito il rilevamento vero e proprio. I plug-in trovati recuperano i dati esatti di cui hanno bisogno utilizzando query SNMP locali e utilizzano questi dati per determinare i servizi da monitorare. I dati recuperati sono esattamente quelli che verranno successivamente prelevati regolarmente per il monitoraggio.
Per i dispositivi in una LAN l'intero processo di solito non richiede molto tempo: più di qualche secondo sarebbe un'eccezione. Se effettui il monitoraggio di dispositivi su collegamenti WAN ad alta latenza, tuttavia, l'intera scansione potrebbe richiedere diversi minuti. Ovviamente, una scansione richiede più tempo anche per gli switch con centinaia di porte. Ora, sarebbe davvero poco pratico dover aspettare così a lungo ogni volta che apri la pagina dei servizi.
Pertanto, il Setup normalmente salta la scansione ed esegue il rilevamento solo con i plug-in di controllo già in uso sull'host. Le scansioni SNMP sono quindi già disponibili come file di cache attraverso il normale monitoraggio e il rilevamento non richiede molto tempo. In questo modo potrai trovare nuovi elementi dai plug-in esistenti (ad esempio, nuove porte dello switch, dischi rigidi, sensori, VPN, ecc.), ma non trovare plug-in completamente nuovi.
Il pulsante "Full service scan" forza una scansione SNMP e recupera dati aggiornati tramite SNMP. Di conseguenza, vengono individuati anche i servizi provenienti da plug-in completamente nuovi. Potrebbe essere necessario attendere per i dispositivi SNMP che rispondono lentamente.
Servizi standard
Indipendentemente dal dispositivo SNMP che monitori, nella configurazione dovrebbero comparire almeno i seguenti tre servizi:

Il primo servizio è un controllo che monitora le porte di rete. Il dispositivo deve averne almeno una attiva, altrimenti SNMP non funzionerebbe. In generale, Checkmk è preimpostato in modo da includere nel monitoraggio tutte le porte attive al momento della scoperta del servizio (stato operativo "up"). Puoi modificare questa impostazione tramite 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 migliori pratiche per la configurazione delle porte degli switch.
Il secondo è il servizio SNMP Info, che mostra le stesse quattro informazioni che hai visto nella diagnosi. Questo ha una funzione puramente informativa ed è sempre OK.
Infine c'è il servizio "Uptime", che ti mostra quando il dispositivo è stato riavviato l'ultima volta. Questo servizio è sempre disOKo per impostazione predefinita, ma puoi impostare soglie minime e massime per il tempo di attività.
3. Quando i dispositivi causano problemi
3.1. Un'implementazione SNMP difettosa
In realtà sembra che ogni errore immaginabile che si possa teoricamente commettere nell'implementazione di SNMP sia già stato commesso da qualche produttore in qualche momento. E così ci sono dispositivi con cui SNMP funziona abbastanza bene, ma alcune parti del protocollo non funzionano o sono state implementate in modo errato.
Se i problemi si verificano con le edizioni commerciali, una delle ragioni potrebbe essere che l'implementazione SNMP in linea, più performante e attivata di default, fa maggiore affidamento sulla conformità agli standard rispetto all'snmpget.
Se i dispositivi non rispondono affatto o non in modo affidabile, a volte può essere utile disattivare l'SNMP in linea per i dispositivi interessati e attivare così l'snmpget, leggermente più robusto ma significativamente più lento.
Per i test sulla riga di comando, il comando cmk ha per alcune opzioni l'opzione aggiuntiva --snmp-backend, che accetta come parametri inline (uso di SNMP in linea), classic (uso di snmpget) o stored-walk (uso di uno SNMP walk memorizzato).
Se il test sulla riga di comando ha avuto esito positivo, puoi usare il set di regole Hosts not using inline SNMP per specificare gli host che non dovrebbero usare SNMP in linea in modo permanente.
Nessuna risposta a una richiesta asysDescr
Un possibile errore si verifica quando gli agenti SNMP non rispondono alla richiesta di informazioni standard — ad esempio, nessuna risposta a sysDescr.
Questi dispositivi sono praticamente inattivi in una diagnosi
e non forniranno alcun risultato alla scoperta del servizio se non li aiuti con una configurazione speciale.
Per farlo, per gli host interessati crea una regola in Setup > Agents > SNMP rules > Hosts without system description OID con l'opzione Positive match (Add matching hosts to the set).
Checkmk supporrà semplicemente che tutto sia a posto e salterà il test con l'sysDescr.
Sebbene non vengano rilevati plug-in di controllo che si aspettano parti specifiche in questo testo, in pratica ciò non ha importanza poiché i plug-in interessati sono progettati per adattarsi a tale condizione.
SNMPv2c funziona, ma le richieste massive falliscono
Alcuni dispositivi supportano la versione v2c (e forniranno una risposta a questo nella diagnostica), ma nel protocollo manca l'implementazione del comando GetBulk.
Questo viene utilizzato da Checkmk per ottenere quante più informazioni possibili con una singola richiesta ed è molto importante per la performance.
Con un host di questo tipo, alcuni semplici controlli SNMP funzioneranno — come SNMP Info o SNMP Uptime — ma altri servizi mancheranno — in particolare le interfacce di rete che devono essere presenti su ogni dispositivo.
Se hai effettivamente un host in cui si verifica questa situazione, puoi eseguirlo con v2c, ma senza richieste massive. Configura un host di questo tipo come segue:
Imposta la versione SNMP per le proprietà dell'host su SNMPv1.
Nel set di regole Setup > Agents > SNMP rules > Legacy SNMP devices using SNMPv2c, crea una regola per l'host e imposta il valore tipicamente su Positive match (Add matching hosts to the set).
Questo costringe l'host a utilizzare il protocollo SNMPv2c — anche se è stata impostata la versione 1 — ma senza bulk walk. Per inciso, sconsigliamo l'uso di SNMPv1 — anche se è supportato — perché non supporta i contatori a 64 bit. Questo può portare a dati di misurazione mancanti o errati per le porte di rete soggette a traffico intenso.
Dispositivi che rispondono molto lentamente
Ci sono alcuni dispositivi SNMP con cui alcune query SNMP richiedono molto tempo. Ciò è in parte dovuto a implementazioni errate. In questi casi a volte può essere utile tornare a SNMPv1 — che di solito è molto più lento, ma a volte può comunque essere più veloce di uno SNMPv2c malfunzionante. Prima di provare questa soluzione, però, dovresti checkare se il produttore fornisce un aggiornamento del firmware che risolva il problema.
Una seconda causa potrebbe essere che il dispositivo ha moltissime porte dello switch e anche un'implementazione SNMP lenta. Se vuoi effettuare il monitoraggio solo di pochissime porte (ad esempio solo le prime due), puoi limitare manualmente Checkmk in modo che interroghi solo le porte specificate. Maggiori dettagli su questo argomento sono disponibili più avanti nella sezione Performance.
3.2. Vengono rilevati 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. Ciò può essere dovuto a diverse cause:
a) Non ci sono plug-in
Checkmk fornisce quasi 1.000 plug-in di controllo per dispositivi SNMP, ma anche questo elenco non è naturalmente mai completo. Si verifica spesso che per determinati dispositivi Checkmk non fornisca alcun plug-in specifico, il che significa che puoi monitorare solo i servizi standard menzionati. 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.
Puoi sviluppare i plug-in da solo. Troverai articoli in questo manuale.
Contatta il nostro team di assistenza o uno dei nostri partner e chiedi loro di sviluppare 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 esempio perché è cambiato un testo nella descrizione di sistema del dispositivo. In questo caso, i plug-in esistenti devono essere adattati. 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 di informazioni nella loro configurazione SNMP. Il tuo dispositivo potrebbe essere impostato per fornire le informazioni predefinite, ma non quelle relative ai servizi specifici del dispositivo.
Su alcuni dispositivi devi utilizzare SNMPv3 e i contesti per ottenere i dati desiderati.
3.3. Dispositivi SNMP che non rispondono affatto
Se il ping funziona, ma nessuna delle versioni del protocollo SNMP funziona, le cause possibili possono essere diverse:
Il dispositivo non è affatto raggiungibile tramite IP. Puoi checkarlo con il test ping.
Il dispositivo non supporta affatto SNMP.
La condivisione SNMP non è configurata correttamente (attivazione, indirizzi consentiti, comunità).
Un firewall blocca SNMP. Devi aprire la porta UDP 161 sia per il traffico in uscita che in entrata.
4. SNMPv3
4.1. Sicurezza
Di default SNMP non è crittografato e quindi l'autenticazione tramite una community trasmessa in chiaro sulla rete è molto debole. Questo livello può comunque essere sufficiente per una rete locale e isolata, poiché in questo caso il monitoraggio si limita alle operazioni di sola lettura.
Se desideri comunque un livello di sicurezza più elevato, avrai bisogno della versione 3 di SNMP. Questa offre la possibilità di crittografia e autenticazione vera e propria. Per questo, tuttavia, è necessaria anche una configurazione adeguata.
SNMPv3 riconosce vari livelli di sicurezza:
|
Nessuna autenticazione vera e propria basata sull'utente, nessuna crittografia. Tuttavia, il vantaggio rispetto alla v2c è che la password non viene più trasmessa in chiaro, ma viene sottoposta a hash. |
|
Autenticazione basata sull'utente con un nome (Security name) e una password, ma senza crittografia. |
|
Autenticazione basata sull'utente come con |
L'impostazione richiesta in Checkmk va effettuata nello stesso posto in cui hai definito la community — ovvero nelle proprietà dell'host o nella regola SNMP credentials of monitored hosts. Lì, invece di SNMP Community, seleziona uno dei tre livelli di v3 e configura i valori necessari:

4.2. Contesti
SNMPv3 introduce il concetto di contesti. Un dispositivo SNMP può mostrare informazioni diverse in un unico punto dell'albero SNMP, a seconda dell'ID del contesto specificato nella query.
Se hai un dispositivo che funziona con tali contesti, avrai bisogno di due impostazioni in Checkmk:
In primo luogo, il dispositivo deve essere interrogato utilizzando SNMPv3 (come descritto nella sezione precedente).
Poi ti serve un'altra regola nel set di regole "SNMPv3 contexts to use in requests". Qui selezioni il plug-in di controllo per cui devono essere attivati i contesti, e poi l'elenco dei contesti che devono essere interrogati nel monitoraggio.
Fortunatamente ci sono pochissime situazioni in cui devi lavorare con i contesti, perché purtroppo il monitoraggio non è in grado di riconoscerli automaticamente. È sempre necessaria una configurazione manuale dei contesti.
5. Performance e tempistiche
5.1. SNMP in linea
Le prestazioni sono sempre importanti, specialmente in ambienti con molti host, e il monitoraggio con SNMP consuma più CPU e memoria rispetto agli agenti Checkmk.
Mentre la Comunità Checkmk effettua le richieste SNMP in 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 processi aggiuntivi.
In questo modo, il carico della CPU per l'elaborazione SNMP si dimezza approssimativamente.
I tempi di polling più brevi riducono anche il numero di processi Checkmk necessari contemporaneamente e, di conseguenza, l'utilizzo della memoria.
5.2. Intervalli di check per i controlli SNMP
Se le tue 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 applichi 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, c'è anche il set di regole "Fetch intervals for SNMP sections". Questo ti permette di ridurre l'intervallo per i singoli plug-in di controllo. È importante sapere che non puoi mai impostare un intervallo più breve di quello previsto per il monitoraggio generale dal servizio "Check_MK".
Nel complesso, tuttavia, ti consigliamo di impostare il monitoraggio in modo da mantenere l'intervallo standard di un minuto e di aumentarlo solo in casi eccezionali per singoli host o check.
5.3. Impostazioni di temporizzazione per l'accesso SNMP
Per impostazione predefinita, Checkmk si aspetta una risposta in meno di un secondo per una richiesta SNMP. Inoltre, effettua un totale di tre tentativi prima di rinunciare. Per i dispositivi che rispondono molto lentamente o che sono raggiungibili solo tramite una rete molto lenta, potrebbe essere necessario modificare questi parametri. Puoi farlo tramite il set di regole "Timing settings for SNMP access":

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 specificate qui.
5.4. Bulk walk: Numero di OID per bulk
Per impostazione predefinita, SNMP trasmette 10 risposte in un unico pacchetto per ogni richiesta di GetBulk.
Prova il set di regole "Bulk walk: Number of OIDs per bulk" per vedere se un valore più alto offre performance migliori.
Tuttavia, questo sarà vero solo quando vengono trasferite tabelle di grandi dimensioni all'host, ad esempio se si tratta di uno switch con molte porte.
SNMP riempie sempre i pacchetti fino al numero specificato, inclusi eventuali record successivi a quelli effettivamente richiesti. E se solo alcuni di questi record sono realmente necessari, i dati in eccesso vengono trasferiti inutilmente e l'overhead aumenta.
D'altra parte, nella pratica può capitare occasionalmente che i dispositivi con il valore predefinito di 10 OID per blocco possano avere problemi. In tal caso può essere utile ridurre il numero.
5.5. Limitare gli intervalli di OID SNMP
Checkmk funziona normalmente acquisendo sempre le informazioni su tutte le porte dello switch, anche se non tutte sono effettivamente monitorate. Questo è comunque un bene, poiché di solito è più veloce perché le singole query non possono essere eseguite con le efficienti richieste massive. Inoltre, dal nostro punto di vista, è sempre consigliabile effettuare il monitoraggio di tutte le porte per individuare porte difettose o cavi con alti tassi di errore. Se le porte non sono affidabili UP, puoi anche contrassegnare lo stato del collegamento DOWN come OK.
Tuttavia, ci sono casi isolati in cui gli switch hanno moltissime porte e, per qualche motivo, rispondono molto lentamente o elaborano lo SNMP in modo molto inefficiente, tanto che non è più possibile effettuare il monitoraggio con il recupero completo di tutte le informazioni sulle porte.
Per questi casi, c'è il set di regole "Bulk walk: Limit SNMP OID Ranges". Questo ti permette di limitare staticamente l'elenco dei dati interrogati (ad es. le porte). Nel valore della regola, per ogni particolare plug-in di controllo specifichi quali indici della rispettiva tabella devono essere recuperati.
Il tipo di check usuale per le porte dello switch si chiama SNMP interface check with 64 bit counters (using v2c). L'esempio seguente mostra un'impostazione in cui vengono recuperate tramite SNMP solo le prime due porte:

Nota: questo filtro è quindi attivo prima della scoperta del servizio e del monitoraggio. A seconda dell'impostazione "Network interface and switch port discovery", ciò non significa automaticamente che queste due porte saranno effettivamente monitorate.
6. Simulazione tramite SNMP walk
6.1. Principio
Il motore SNMP di Checkmk ha una funzione molto utile: puoi far sì che un dispositivo monitorato scriva in un file un'istantanea completa di tutti i suoi dati SNMP, un SNMP walk. Puoi usare questo file in seguito per simulare il monitoraggio del dispositivo su un altro server Checkmk, anche se quest'altro server non ha una connessione di rete effettiva con il dispositivo.
Utilizziamo questa funzione molto intensamente, ad esempio quando il nostro team di assistenza 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 uno SNMP walk.
6.2. Creazione di un walk tramite la GUI
Puoi creare un SNMP walk direttamente dalla GUI. La funzione si trova nel menu azione del servizio "Check_MK" degli host e anche nel menu azione degli host (voce "Download SNMP walk"):

La creazione del walk richiede pochi secondi nel caso migliore, ma non è raro che ci vogliano alcuni minuti. Una volta completata la creazione, puoi effettuare lo scaricamento del file creato tramite la riga Result.
6.3. Creazione di un walk dalla riga di comando
In alternativa, puoi anche creare walk dalla riga di comando.
Accedi all'istanza da cui viene effettuato il monitoraggio del dispositivo.
La creazione del walk si effettua semplicemente con il comando cmk --snmpwalk e l'host specificato (che deve essere configurato nel monitoraggio):
Usa anche il switch -v per visualizzare un output più dettagliato sullo stato di avanzamento:
Il file verrà salvato nella directory var/check_mk/snmpwalks, dove avrà semplicemente il nome dell'host.
È un file di testo.
Se sei curioso, puoi effettuare la visualizzazione, ad esempio con less; chiudi il programma con il tasto Q:
Il comando cmk --snmpwalk ha altre opzioni utili:
| Opzione | Effetto |
|---|---|
|
Quando Checkmk esegue un walk su un host, in genere recupera due sottoalberi dall'area dati SNMP. Questi sono specificati nell'albero SNMP utilizzando i cosiddetti OID (identificatori di oggetto). Si tratta di |
|
Questa opzione è simile a |
|
L'opzione |
|
L' |
6.4. Utilizzo dei walk salvati per le simulazioni
Se vuoi usare questo walk su un sito Checkmk diverso (o sullo stesso) per una simulazione, salva il file del walk con il nome host su 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, per il monitoraggio dell'host verrà utilizzato solo il file salvato.
Ora non c'è più alcun accesso di rete all'host, tranne il ping per il controllo dell'host ed eventuali active checks configurati.
Puoi semplicemente reindirizzarli al server Checkmk assegnando l'indirizzo IP 127.0.0.1 agli host.
7. File e directory
| Percorso del file | Descrizione |
|---|---|
|
Qui vengono generati i file SNMP walk o sono previsti se vuoi usarli per simulare i dati SNMP. |
