Le API svolgono un ruolo centrale nella costruzione di stack di monitoraggio di osservabilità aperta. Collegano strumenti separati e consentono di creare potenti stack di monitoraggio che raggruppano automaticamente le informazioni provenienti da soluzioni diverse, semplificando le interazioni tra i team.
In questo articolo, voglio presentare un esempio: l'integrazione delle notifiche ('Monitor') e degli eventi di Datadog in Checkmk. L'integrazione fa risparmiare tempo, consentirà di trovare più velocemente le cause dei problemi ed eliminare la necessità di controllare più sistemi di monitoraggio contemporaneamente.
Che cos'è Datadog?
Datadog è una piattaforma SaaS cloud-based per il monitoraggio delle applicazioni aziendali e delle infrastrutture IT. Un caso d'uso tipico è il monitoraggio delle prestazioni delle applicazioni (APM) da parte dei team DevOps.
Anche i team ITOps beneficiano delle informazioni ottenute con Datadog. Tuttavia, oltre alle applicazioni, devono monitorare anche l'infrastruttura sottostante, come reti o server. Soprattutto negli ambienti IT ibridi con una moltitudine di sistemi diversi, Checkmk può raccogliere facilmente tutti i dati di monitoraggio necessari.
Facile accesso ai dati tramite l'API di Datadog
Poiché ogni team IT ha esigenze diverse, alcune aziende utilizzano Datadog e Checkmk contemporaneamente. Pertanto, ha senso che entrambe le soluzioni condividano le informazioni. In questo modo, ad esempio, i team IT possono evitare che due soluzioni di monitoraggio interroghino due volte gli stessi dati di monitoraggio di un sistema.
Checkmk può raccogliere i dati di monitoraggio esistenti da Datadog proprio come farebbe con un normale host di monitoraggio. Tuttavia, in questo caso d'uso, Checkmk utilizzerà l'API di Datadog per recuperare i dati. A questo scopo, Checkmk utilizza lo special agent Datadog. In Checkmk, i Monitors appaiono quindi come un servizio di monitoraggio.
Trasferendo i Monitors in un servizio di monitoraggio, si ha il pieno controllo e si può decidere se si vuole solo monitorare i Monitors o se Checkmk debba intraprendere ulteriori azioni. Checkmk può, ad esempio, inviare una notifica in base allo stato del servizio.
Checkmk trasferisce gli eventi da Datadog direttamente alla Console eventi. L'integrazione nativa consente di utilizzare tutte le funzioni della Console eventi anche per gli eventi provenienti da Datadog. Naturalmente, è possibile configurare in Checkmk anche gli avvisi basati sugli eventi di Datadog.
Requisiti per l'integrazione di Datadog in Checkmk
È possibile integrare i dati di Datadog in qualsiasi edizione di Checkmk, ma è importante utilizzare almeno la versione 2.1 di Checkmk. A titolo di esempio, nel seguente tutorial utilizzo la versione 2.1 di Checkmk Enterprise Edition. È possibile scaricarla qui.
Inoltre, poiché Datadog è disponibile solo come soluzione cloud, l'istanza di Checkmk deve avere accesso a Internet per recuperare l'API di Datadog. Per questa connessione è possibile utilizzare un server proxy HTTP.
Passo 1: proteggere l'API di Datadog
Per proteggere l'accesso, è necessario creare una chiave API e una chiave di applicazione nell'applicazione Datadog. Solo Checkmk dovrà utilizzarle in seguito per raccogliere i dati. La loro creazione richiede solo pochi clic:
- Accedi all'app Datadog con le proprie credenziali.
- Fai clic sulla finestra di ricerca in alto a sinistra e cercare "Chiavi API".

- Nella nuova finestra vengono visualizzate le chiavi API precedenti. Clicca su + Nuova chiave nell'angolo in alto a destra.
- Assegna un nome alla chiave API. Io ho scelto "Checkmk_API". Conferma con Crea chiave.

- Verrà visualizzata una finestra con l'ID della chiave e la chiave. Copia la chiave facendo clic su "Copia chiave". L'ID della chiave non è necessario. Salva la chiave e chiudi la finestra.
- Ora fai clic sulla voce Chiavi di applicazione nella barra dei menu a sinistra, appena sotto Chiavi API.
- Nella finestra Chiavi applicazione, clicca sul pulsante blu + Nuova chiave a destra.
- Anche in questo caso, scegli un nome a piacere. Io ho scelto "Checkmk_App_Key". Conferma nuovamente con Crea chiave.
- Copia e salva la chiave di applicazione.

E, per quanto riguarda Datadog, è tutto. Ora puoi passare a Checkmk.
Passo 2: Configurare gli host di Datadog in Checkmk
In questa esercitazione, si creeranno due host Datadog separati in Checkmk. La suddivisione in due host semplifica l'amministrazione di Checkmk. Con il primo host, si utilizzano i monitor di Datadog come servizi di monitoraggio. Il secondo host viene utilizzato per gli eventi di Datadog. In seguito, questo host avrà un solo servizio che visualizza gli eventi trasferiti.
- Fai clic su Configurazione -> Host e quindi su Aggiungi host.
- Per il nome dell'host, utilizza un nome a scelta. Io ho scelto 'datadog_monitors'.
- In Indirizzo di rete, fai clic su "Mostra altro" e attiva la famiglia di indirizzi IP. Seleziona l'opzione "Nessun IP".
- Fai clic su Salva e vai alla cartella ("Save & go to folder"). Ora è stato creato l'host per i tuoi Monitors.

- Ripeti i passaggi per il secondo host con un nome diverso. Nel mio esempio, ho chiamato il mio host per gli eventi Datadog "datadog_events".
- Anche in questo caso, è necessario regolare la famiglia di indirizzi IP e poi fare clic su Salva e vai alla cartella.
Gli host Datadog non hanno un indirizzo IP. Nella fase successiva, invece, si utilizza la regola di monitoraggio di Datadog per configurare l'agente Datadog per recuperare i dati dall'API Datadog e assegnarli all'host appropriato.
Fase 3: Impostazione delle regole dell'agente per l'agente Datadog
Poiché si utilizzano due host separati per i Monitors e gli eventi, è necessario impostare separatamente la regola Datadog per ciascun host. Inizia cambiando la regola per i Monitors:
- Fai clic su Impostazione e cercare "Datadog".
- In Altre integrazioni, fai clic su Datadog.
- Seleziona Aggiungi regola per creare una nuova regola.
- In Datadog, aggiungi la chiave API e la chiave dell'applicazione nell' istanza Datadog.
- Per l'host API, verifica che l'URL dell'API Datadog corrisponda alla regione di hosting dell'istanza Datadog. Nella documentazione di Datadog, si possono trovare maggiori dettagli sui siti Datadog. Nel mio caso, l'impostazione predefinita è corretta.

L'opzione proxy HTTP è necessaria solo se la comunicazione di Checkmk con Datadog passa attraverso un server proxy. Per me non è questo il caso.
Ora si prosegue con la parte più importante della regola. Si deve decidere cosa importare di Checkmk:
- Utilizza Fetch monitors per abilitare l'importazione dei monitor. Sono disponibili due opzioni per filtrare i monitor:
- Utilizza Limita per tag ("Restrict by tags") per filtrare per tag in Datadog. Checkmk trasferisce quindi i monitor nella cui configurazione compare un tag specifico.
- Limita per tag del monitor ("Restrict by monitor tags") consente di trasferire i monitor che sono stati precedentemente etichettati in Datadog. Qui inserisco 'checkmk', perché ho etichettato tutti i monitor in Datadog che voglio trasferire a Checkmk con questo tag.

Quale sia l'opzione di filtro più adatta a voi, o se dobbiate usarle entrambe insieme, dipende dalla vostra configurazione di Datadog. La restrizione per tag è adatta, ad esempio, se si desidera trasferire completamente un determinato gruppo di monitor a Checkmk. Ad esempio, si può usare 'linux' per i sistemi Linux.
Nel mio esempio, ho etichettato alcuni monitor in Datadog con il tag Monitor 'checkmk' e ho usato i tag Restrict by monitor per contrassegnare solo quelli da trasferire. Soprattutto in ambienti Datadog più grandi, ha senso assegnare i tag esistenti ai singoli monitor e usare i tag Restrict by monitor.
- Scorri fino a Condizioni.
- Abilita gli host espliciti e seleziona l'host Datadog per i monitor. Per me è 'datadog_monitors'.
- Salva la regola con Salva.
Ora crea una nuova regola Datadog, ma per gli eventi Datadog.
- In Impostazione, cerca nuovamente 'datadog'. In Altre integrazioni, seleziona Datadog. Fai clic sulla seconda icona per clonare questa regola.
La chiave API e la chiave dell'applicazione dell'istanza Datadog, così come l'URL dell'host API, sono già state inserite dopo aver copiato la regola. Non è necessario modificare nulla.
- Deseleziona la casella in Fetch monitors e abilita Fetch events per configurare il trasferimento degli eventi da Datadog.
- Per l'età massima degli eventi recuperati ("Maximum age of fetched events"), si consiglia di utilizzare l'impostazione predefinita di 10 minuti.
- Con Restrizione per tag ("Restrict by tags"), è possibile utilizzare i tag di Datadog per filtrare gli eventi. Ad esempio, voglio trasferire in Checkmk tutti gli eventi che riguardano il mio sito Datadog, quindi uso il tag 'source:datadog'. Questo mi permette di vedere in Checkmk quando qualcuno modifica la configurazione di Datadog e aggiunge un nuovo monitor, ad esempio.
Se si vuole essere informati di un avviso in Datadog, ad esempio, si deve inserire 'source:alert' in Restrict by tags.

- Gli altri campi di Fetch events si riferiscono ai parametri con cui Checkmk deve creare gli eventi da Datadog nella Console eventi di Checkmk. I dettagli a riguardo sono riportati nell'articolo del manuale della Console eventi. Nel mio esempio non ho personalizzato nient'altro.
- In Condizioni, attiva Host espliciti e seleziona l'host Datadog per gli eventi. Nel mio caso, è 'datadog_events'.
- Salva la regola con Salva.
L'intervallo di tempo per la trasmissione degli eventi in Età massima degli eventi recuperati può essere regolato individualmente. Si noti però che non deve essere inferiore all'intervallo di controllo, altrimenti Checkmk potrebbe perdere degli eventi. Inoltre, Datadog può utilizzare un timestamp del passato quando crea gli eventi. Pertanto, l'intervallo non deve essere troppo breve. In ogni caso, si consiglia l'impostazione predefinita.
Se non si applica alcun filtro ai monitor Fetch e agli eventi Fetch, Checkmk trasferisce tutti i monitor e gli eventi da Datadog.
Passo 4: Individuazione del servizio tramite l'API di Datadog
L'ultimo passo consiste nell'avviare il rilevamento automatico dei servizi per gli host Datadog.
- Vai a Configurazione -> Host.
- Per prima cosa, clicca sull'icona del cubo giallo di uno degli host Datadog. Nel mio esempio, inizio con l'host "datadog_monitors".

- Attendi il rilevamento automatico dei servizi e controllali. Se desideri accettare tutti i servizi in Checkmk, clicca su Accetta tutto. Nel mio esempio, è stato rilevato un servizio.

- Torna a Configurazione -> Host.
- Ripeti il rilevamento dei servizi per l'host degli eventi Datadog e includi anche il servizio eventi nel monitoraggio.
- Fai clic sull'icona gialla del punto esclamativo nell'angolo in alto a destra. Dovrebbe essere visualizzato il numero di "modifiche".
- Fai clic su Attiva nei siti selezionati.
Questa esercitazione è stata completata con successo. Checkmk ora integra i monitoraggi e gli eventi di Datadog e dispone di tutte le informazioni in un unico monitoraggio.
Riflessioni finali
Grazie a questo tutorial, è possibile integrare gli eventi e i monitor di Datadog in Checkmk in pochi minuti. In questo modo, avrai tutte le informazioni automaticamente in Checkmk, senza dover più fare avanti e indietro tra più strumenti. Inoltre, l'integrazione con Datadog è solo un esempio di come Checkmk possa accettare dati da altri strumenti. Checkmk può anche integrare dati provenienti da strumenti come ntop o Prometheus.