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. Introduzione

Con oltre 2000 plug-in di controllo già pronti e molteplici metodi per il monitoraggio dei contenuti di file e cartelle, la valutazione dei messaggi di log e il monitoraggio delle attività ricorrenti, Checkmk è la soluzione out-of-the-box ideale per un gran numero di attività di monitoraggio. Se non è disponibile un plug-in per un uso molto specializzato, la comunità di Checkmk sarà lieta di aiutarti con sviluppi personalizzati forniti tramite Checkmk Exchange.

Tuttavia, ci sono sempre situazioni in cui un hardware è troppo nuovo, un software è troppo esotico o lo sviluppo di un'organizzazione è troppo individuale perché qualcuno abbia già riconosciuto la necessità di integrarlo in Checkmk. Se sei arrivato a questo punto, è il momento di iniziare a programmare le tue estensioni.

Questo articolo offre una panoramica delle opzioni disponibili.

Le opzioni sono molteplici: in alcuni casi, ad esempio, è sufficiente estendere uno script di backup di poche righe per produrre un risultato positivo o negativo in un modulo facilmente visualizzabile in Checkmk - questo significa che lo "sviluppo interno" può essere completato in pochi minuti. In altri casi è necessario visualizzare situazioni di carico con ampi grafici: in questi casi vale la pena investire qualche ora in più.

2. Possibilità di estensioni con programmi propri

Le sezioni seguenti mostrano quali sono le procedure per integrare le proprie estensioni in Checkmk e dove avviene la raccolta e la valutazione dei dati in ogni caso.

2.1. Check locali

Probabilmente il modo più semplice per estendere Checkmk è l'uso di controlli locali. Un programma eseguito dall'agente script dell'host monitorato stampa il nome, lo stato e altre informazioni richieste in una sola riga. Per i controlli locali, Checkmk supporta la scoperta automatica del servizio. La programmazione è possibile in qualsiasi linguaggio di programmazione senza dover imparare un'API.

  • Esecuzione: Interamente sull'host monitorato. Devi assicurarti che l'interprete appropriato sia disponibile su tutti gli host che ricevono un check locale, se applicabile.

  • Soglie: L'istanza Checkmk può gestire una coppia di soglie inferiori e superiori (rispettivamente per le transizioni a WARN e CRIT ).

  • Metriche: Sono possibili più metriche per servizio. Le unità non possono essere gestite esplicitamente, vengono assegnate o omesse automaticamente.

2.2. Plug-in nativi dell'agente di controllo

I plug-in dell'agente Checkmk valutano i dati forniti dall'agente Checkmk. Un plug-in dell'agente raccoglie i dati grezzi e li pre-filtra, ma non esegue un'analisi sui dati raccolti. La raccolta dei dati può essere eseguita in qualsiasi linguaggio di programmazione. Molto comune è l'output come file JSON o in formato CSV. Tuttavia, si vedono anche molti plug-in dell'agente che chiamano solo comandi grezzi del file system Linux.

La valutazione avviene poi sul server Checkmk tramite un plug-in di controllo scritto in Python, che utilizza le API di Checkmk. In questo modo è possibile determinare lo stato in modo molto flessibile. È possibile utilizzare valori di soglia inferiori e superiori. Inoltre, è possibile creare più servizi e verificare lo stato di un servizio tramite controlli multipli. È anche possibile determinare le tendenze e includere i valori più vecchi. I plug-in di controllo nativi supportano la creazione automatica di etichette e l'inventario HW/SW.

  • Esecuzione: Plug-in dell'agente per la raccolta dei dati in qualsiasi linguaggio di programmazione sull'host monitorato, ulteriore valutazione da parte di un plug-in di controllo sul server Checkmk utilizzando l'API Check.

  • Soglie: Qualsiasi combinazione di valori di soglia per ogni servizio.

  • Metriche: Qualsiasi numero di metriche per servizio con unità.

2.3. Agenti speciali

Un'estensione dei plug-in di controllo agent-based sono gli agenti speciali. In questo caso, nessun plug-in dell'agente raccoglie i dati grezzi, ma un programma in esecuzione sul server Checkmk che recupera i dati da un'altra fonte e li converte nel formato dell'agente Checkmk. Gli agenti speciali vengono utilizzati, ad esempio, quando un dispositivo da monitorare fornisce i dati rilevanti per il monitoraggio come JSON o XML tramite un'API REST. Per esempi di utilizzo degli agenti speciali forniti con Checkmk, vedi AWS, Azure o VMware.

Quando si programma, si accede a due API: Per la configurazione di porte o simili, Checkmk mette a disposizione un'API che ti permette di specificare tali impostazioni nella configurazione. Per l'interrogazione dei dati, utilizza l'API REST della fonte esterna. La valutazione sul server Checkmk viene eseguita come descritto nella sezione precedente sui plug-in di controllo nativi.

  • Esecuzione: Programma/script per la raccolta dei dati e l'ulteriore valutazione sul server Checkmk.

  • Soglie: Qualsiasi combinazione di valori di soglia per ogni servizio.

  • Metriche: Qualsiasi numero di metriche per servizio con unità.

2.4. Plug-in di controllo nativi basati su SNMP

Una variante dei plug-in di controllo basati sull'agente sono i plug-in di controllo per SNMP. La differenza è che non viene richiesta e valutata alcuna sezione dell'agente, ma vengono richiesti esplicitamente alcuni OID SNMP dall'agente SNMP.

  • Esecuzione: Raccolta dei dati e ulteriore valutazione da parte di un plug-in di controllo sul server Checkmk utilizzando l'API Check.

  • Soglie: Qualsiasi combinazione di valori di soglia per ogni servizio.

  • Metriche: Qualsiasi numero di metriche per servizio con unità.

Poiché il protocollo SNMP è intrinsecamente molto inefficiente, ti consigliamo di utilizzare SNMP solo se non è possibile accedere in altro modo ai dati di monitoraggio. Ad esempio, se un dispositivo fornisce gli stessi dati anche tramite API REST, dovrai creare un agente di monitoraggio apposito.

2.5. Plug-in di controllo di Nagios

I plug-in di controllo di Nagios sono presenti in due modi in Checkmk: come controlli attivi, per verificare l'accessibilità di determinati servizi dal server Checkmk, e come estensione MRPE degli agenti Checkmk o Linux per verificare tali servizi da un host, se l'host o i servizi non sono accessibili dal server Checkmk.

La programmazione è possibile in qualsiasi linguaggio.

  • Esecuzione: Completamente sull'host monitorato (tramite MRPE) o completamente sul server Checkmk (active check).

  • Soglie: Valori di threshold solo se utilizzati come active check.

  • Metriche: Metriche solo se utilizzate come active check.

A causa di una serie di svantaggi, come ad esempio la complicata risoluzione dei problemi, consigliamo la re-implementazione solo se è richiesta la piena compatibilità con Nagios. In tutti gli altri casi, utilizza i plug-in di controllo nativi o, per le query più semplici, i check locali. La documentazione dettagliata dei formati di output è disponibile su Monitoring-Plugins.org.

3. Articoli aggiuntivi

3.1. La directory di spool

Checkmk offre un altro meccanismo per generare i dati dell'agente: fai in modo che un programma scriva direttamente un file di testo nel formato dell'agente Checkmk. Memorizzato nella directory di spool, l'agente Checkmk trasferisce il contenuto di questo file con il resto dell'output dell'agente.

Con la directory di spool puoi, ad esempio, fare in modo che gli script di backup scrivano lo stato e le statistiche di un check locale o di un plug-in di controllo direttamente al suo completamento, risparmiando così le deviazioni dovute alla valutazione dei file di log.

Quando sviluppi i tuoi plug-in di controllo, i file di spool ti aiutano a simulare particolari output del tuo plug-in dell'agente.

3.2. Il meccanismo del piggyback

Il meccanismo del piggyback viene utilizzato quando un host ha informazioni su un altro host. Una sezione dell'agent formattata in modo speciale viene assegnata all'host in questione quando si valuta l'output dell'agent.

Per le macchine virtuali, il meccanismo del piggyback viene utilizzato per unire i dati raccolti dal software di virtualizzazione con i dati del monitoraggio all'interno della macchina virtuale.

3.3. Pacchetti di estensione Checkmk (MKP)

Se hai programmato le tue estensioni e vuoi farne una versione e poi inoltrarle, hai la possibilità di raggruppare un'estensione con i suoi file associati in pacchetti di estensioni Checkmk (MKP). Devi utilizzare questo formato di pacchetto anche se vuoi offrire queste estensioni in Checkmk Exchange.

3.4. L'API bakery

In molti casi, vorrai fornire ai plug-in dell'agente una configurazione aggiuntiva oppure potrai eseguire scriptlet di installazione specifici a seconda delle impostazioni effettuate nella configurazione di Checkmk.

Se utilizzi l'Agent Bakery per la distribuzione dei pacchetti di agenti, l'API bakery ti fornisce un'interfaccia di programmazione con cui le impostazioni effettuate in Checkmk possono essere facilmente trasferite ad altri agenti di monitoraggio.

4. Contribuire a Checkmk

Se programmi le tue estensioni, ti consigliamo di inviarle prima di tutto al Checkmk Exchange. Qui rimani il proprietario e la persona di contatto e puoi facilmente fornire nuove versioni. Poiché i requisiti di qualità della codifica per l'Exchange non sono così elevati come per i plug-in di controllo forniti con Checkmk, puoi facilmente sperimentare nuove idee con un vasto pubblico attraverso l'Exchange.

Se a un certo punto pensi che il tuo plug-in di controllo debba diventare parte integrante di Checkmk, leggi prima il documento Contribuire a Checkmk.

In questa pagina