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

Checkmk include un modulo completo per il monitoraggio di Microsoft Azure, composto da un connettore per Azure e da una raccolta completa di plug-in di controllo che recuperano e valutano per te varie metriche e stati.
Oltre alle informazioni generali sui costi sostenuti dal tuo ambiente Azure e sullo stato attuale dei servizi Azure nella tua regione, puoi monitorare i seguenti prodotti Azure con tutte le edizioni di Checkmk:
Con l'
e Checkmk Ultimate puoi includere nel tuo sistema di monitoraggio anche i seguenti prodotti:
Un elenco completo di tutti i plug-in di controllo disponibili per il monitoraggio di Microsoft Azure è disponibile nel nostro catalogo dei plugin per i controlli e descriviamo come includere i tuoi cluster AKS (Azure Kubernetes Service) in Checkmk nell'articolo Monitoraggio di Kubernetes.
2. Configurazione del monitoraggio tramite Quick Setup (facoltativo)
Il modo più veloce per configurare un monitoraggio di facile lettura per gli ambienti Azure è utilizzare la nostra Quick Setup. Per farlo, apri Setup > Quick Setup > Microsoft Azure e clicca su Add configuration. La Quick Setup ti guiderà poi passo dopo passo verso il tuo obiettivo.
Il vantaggio principale di Quick Setup è che eventuali errori verranno visualizzati immediatamente durante il processo di configurazione. Nel peggiore dei casi, riceverai un'indicazione chiara e specifica di ciò che devi correggere prima di poter passare al passaggio successivo.
Istruzioni dettagliate su come effettuare i preparativi necessari nel tuo ambiente Azure sono disponibili nel capitolo Preparazione di Azure per Checkmk.
Se in un secondo momento desideri o hai bisogno di apportare modifiche alla configurazione creata dalla Quick Setup, puoi tornare su Setup > Quick Setup.
Lì, clicca sul simbolo "
" e seleziona il componente che vuoi modificare.
Gli altri capitoli di questo articolo sono pensati solo come riferimento per gli utenti di Quick Setup. Tuttavia, se il tuo ambiente Azure è piuttosto complesso, ti consigliamo di continuare a eseguire il Setup seguendo i passaggi qui sotto. |
3. Preparazione di Azure per Checkmk
Per effettuare il monitoraggio di Azure con Checkmk, avrai bisogno di alcuni dati dal tuo ambiente Azure. Come minimo, saranno richiesti l'ID della directory (noto anche come ID tenant) e un ID applicazione (noto anche come ID client). Nella maggior parte dei casi, dovrai anche inserire il tuo ID di abbonamento. Un'eccezione a questa regola si verifica quando desideri effettuare il monitoraggio solo del tuo Azure AD; in tal caso non sarà necessario inserire l'ID di abbonamento.
Nei capitoli seguenti ti mostreremo dove puoi trovare questi dati e quali requisiti devi soddisfare.
A questo punto, va notato che i portali web degli hyperscaler e dei fornitori di servizi cloud sono soggetti a continui cambiamenti. Ci impegniamo a mantenere le seguenti informazioni aggiornate e allo stesso tempo abbastanza generiche da garantire che le rispettive posizioni e funzioni nel portale possano essere ancora trovate anche se uno screenshot non corrisponde più al 100% a ciò che vedi attualmente. |
3.1. Creazione di un'app
Per prima cosa registra un'app in Azure.
Questa app verrà utilizzata da Checkmk per leggere i dati desiderati da Azure.
Troverai l'opzione per farlo nel portale Azure alla voce "(All services > Identity > Identity management > ) App registrations".
In alternativa, puoi utilizzare la ricerca del portale e inserire "App registrations".
Una volta sulla pagina, devi cliccare su "New registration".
Assegna un nome identificativo a tua scelta.
Nell'esempio utilizziamo my-checkmk-app.
Questo nome è tuttavia solo a scopo informativo.
Il riferimento all'app avviene invece tramite l'identificatore dell'applicazione, che vedrai nel passaggio successivo.
Non è necessario modificare nulla nella sezione Supported account types e il campo Redirect URI deve rimanere vuoto.
Conferma i tuoi dati cliccando su Register.

Una volta creata l'app, dovresti vedere una panoramica di questa nuova app. Se così non fosse, troverai la nuova app nell'elenco di tutte le App registrations descritto sopra nella scheda All applications. Nei dettagli dell'app troverai ora sia l'Application (client) ID che l'Directory (tenant) ID, che dovrai inserire in seguito in Checkmk.

3.2. Creazione di un segreto client per l'app
Successivamente avrai bisogno anche di un segreto client con cui Checkmk possa accedere all'API di Azure. Per generare tale segreto, clicca su "Certificates & secrets" nella panoramica dell'app, poi sulla scheda "Client secrets" e infine su "New client secret".

Si aprirà la finestra di dialogo "Add a client secret". Assegna un nome a tua scelta e seleziona per quanto tempo il segreto dovrà essere valido. Se in seguito attiverai l'opzione "App Registrations" nella regola per il special agent, riceverai un pratico servizio che ti ricorderà quando questo periodo di validità sta per scadere. Conferma la finestra di dialogo cliccando su "Add".

È importante che tu copi immediatamente il contenuto "Value" in questo nuovo segreto, poiché dopo un certo tempo nel portale di Azure verranno visualizzati solo i primi tre caratteri di tali segreti.

3.3. Opzionale: aggiunta di ulteriori permessi API
Devi concedere all'app ulteriori permessi API se desideri effettuare il monitoraggio dei seguenti servizi con Checkmk:
Utenti in Active Directory
Sincronizzazione AD Connect
Registrazioni delle app
Inizia ad assegnare i permessi nella panoramica della tua nuova app, che dovresti avere ancora aperta dalla sezione precedente.
Clicca su "API permissions" e poi su "Add a permission."
Nella finestra di dialogo che si apre, devi trovare e cliccare su "Microsoft Graph".
Seleziona quindi "Application permissions" e inserisci "Directory.Read.All" nel campo di ricerca.
Attiva la checkbox corrispondente e clicca su "Add permissions".
Per questo permesso è necessario il consenso aggiuntivo di un amministratore del tuo ambiente Azure (Admin consent required).
Se non vedi il pulsante "Grant admin consent" sopra l'elenco delle autorizzazioni concesse, devi contattare l'amministratore responsabile.
3.4. Assegnazione di un ruolo all'app
Per consentire a Checkmk di accedere ai dati di monitoraggio tramite la nuova app, devi assegnare un ruolo all'app a livello di abbonamento. Per farlo, seleziona "All services" nella navigazione principale a sinistra e poi, sotto "General", la voce "Subscriptions". Anche in questo caso, puoi usare la funzione di ricerca nel portale se non riesci a trovare il pulsante giusto.
Se hai più abbonamenti, ora dovrai cliccare sul nome dell'abbonamento che desideri sottoporre a monitoraggio. Verrai quindi reindirizzato a una pagina di panoramica del tuo abbonamento. Prendi nota dell'Subscription ID qui. Dovrai inserirlo in seguito nella regola dell'special agent.
Quindi clicca su Access Control (IAM), poi su Add e infine su Add role assignment:

Ora seleziona il ruolo denominato "Reader" e con "Type" "BuiltInRole". Dato che ci sono in totale oltre 100 ruoli con la parola "Reader" nel nome, è importante prestare attenzione in questa fase. Quindi clicca su "Next" per andare alla scheda "Members".
Clicca qui su + Select members.

Nella finestra di dialogo "Select members", inserisci il nome dell'app che hai creato in precedenza nel campo di ricerca, seleziona questa app e clicca su "Select." Dopo altri due clic su "Review + assign", il Setup nel portale Azure sarà completato.
4. Configurazione del monitoraggio di base in Checkmk
Prima di iniziare la configurazione in Checkmk, assicurati di avere a portata di mano le seguenti quattro informazioni specifiche di Azure, che hai ottenuto nel capitolo precedente:
Il tuo ID tenant (noto anche come "ID directory")
L'ID dell'applicazione (ID client) dell'app
Il segreto client per questa app
Il tuo ID di abbonamento
4.1. Creazione di un host per Azure
Anche se in Azure non hai a che fare con un host fisico, crea un host per la tua directory Azure in Checkmk. Puoi definire il nome host a tuo piacimento. Importante: poiché Azure è un servizio e quindi non ha un indirizzo IP o un nome DNS (è l'special agent a occuparsi dell'accesso), devi impostare l'IP address family su No IP.

È meglio salvare con Save & view folder a questo punto, perché ovviamente la scoperta del servizio non può ancora funzionare.
4.2. Configurazione dell'agente Azure
Poiché Azure non può essere interrogato tramite l'agente Checkmk normale, ora devi configurare l'agente speciale Azure. In questa situazione Checkmk non effettua il contatto con l'host di destinazione tramite la porta TCP 6556 come al solito, ma chiama un'utilità che comunica con il sistema di destinazione tramite l'API specifica dell'applicazione di Azure.
Per farlo, in "Setup > Agents > VM, cloud, container > Microsoft Azure" crea una regola le cui condizioni si applicano esclusivamente all'host Azure appena creato. Lì troverai i campi di inserimento per gli ID e il segreto:

Qui puoi anche selezionare i gruppi di risorse o le risorse che desideri monitorare. Se non hai checkato "explicitly specified groups", tutti i gruppi di risorse vengono sottoposti al monitoraggio automatico.
4.3. Test
Se ora esegui la scoperta del servizio sull'host Azure, dovrebbe essere rilevato almeno il servizio denominato Azure Agent Info:

Se l'accesso all'API non funziona (a causa di un ID errato, permessi non validi o di un segreto client errato come nell'esempio qui sotto), apparirà un messaggio di errore corrispondente nel testo di stato di Azure Agent Info:

4.4. Rendere disponibili i gruppi di risorse come host
Per chiarezza, il monitoraggio di Azure in Checkmk è stato progettato in modo che ogni gruppo di risorse Azure sia rappresentato da un host logico (per così dire) in Checkmk. Ciò avviene con l’aiuto del meccanismo piggyback. Questo piggyback preleverà i dati dall’host Azure utilizzando special agents e, all’interno di Checkmk, li reindirizzerà a questi host dei gruppi di risorse.
Gli host dei gruppi di risorse non compaiono automaticamente in Checkmk. Inserisci questi host manualmente o, in alternativa, tramite la gestione dinamica degli host. Importante: quando lo fai, i nomi degli host devono corrispondere esattamente ai nomi dei gruppi di risorse — e questo vale anche per le maiuscole e le minuscole! Se non sei sicuro dell'ortografia esatta dei nomi dei gruppi, puoi farlo direttamente dal servizio Azure Agent Info sull'host Azure.
Con il comando |
Configura gli host del gruppo di risorse senza un indirizzo IP (analogamente all'host Azure) e seleziona No API integrations, no Checkmk agent come agente e Always use and expect piggyback data come host piggyback.

Se ora esegui la scoperta del servizio su uno di questi host del gruppo di risorse, scoprirai che ci sono servizi aggiuntivi che si riferiscono specificatamente a questo gruppo di risorse:

Se vuoi scegliere liberamente i nomi degli host del gruppo di risorse, con la regola Setup > Agents > Access to Agents > Host name translation for piggybacked hosts puoi definire una conversione dei gruppi di risorse in host. |
5. Configurazione avanzata
5.1. Macchine virtuali (VM)
Quando usi Azure per il monitoraggio delle macchine virtuali che fungono anche da host normali in Checkmk, puoi assegnare i servizi Azure associati a quelle VM direttamente agli host delle VM in Checkmk invece che agli host del gruppo di risorse.
Per farlo, nella regola Azure, sotto l'opzione "Map data relating to VMs", seleziona l'impostazione "Map data to the VM itself". Affinché funzioni, l'host Checkmk della VM nel monitoraggio deve avere esattamente lo stesso nome della VM corrispondente in Azure.
5.2. Monitoraggio dei costi
La regola "Microsoft Azure" è preimpostata in modo che Checkmk effettui anche il monitoraggio di tutti i costi sostenuti nel tuo ambiente Azure. Nello specifico, i servizi mostrano i costi sostenuti il giorno precedente. In questo modo puoi determinare rapidamente se ci sono state delle variazioni.
Sono stati creati diversi servizi per avere una panoramica migliore di dove sono stati sostenuti esattamente i costi e per poter impostare soglie specifiche.
I costi totali a livello della tua directory Azure vengono visualizzati per l'host Azure che hai creato per primo.
Inoltre, vengono creati servizi per ogni host che rappresenta un gruppo di risorse.
A entrambi i livelli, Checkmk genera un servizio per i costi per ogni cosiddetto "fornitore di risorse" (ad es. microsoft.compute e microsoft.network).
Il servizio Costs Summary mostra quindi la somma totale per il gruppo di risorse o per l'intera directory di Azure.
Puoi utilizzare la regola Azure Usage Details (Costs) per definire soglie individuali per tutti questi servizi.
Se non desideri effettuare il monitoraggio dei costi, devi disattivare l'opzione Usage Details nella regola Microsoft Azure.
5.3. Importazione dei tag da Azure
Per impostazione predefinita, Checkmk importa tutti i tag dal tuo ambiente Azure e li converte in etichette di host e di servizio. L'assegnazione funziona come previsto. I tag associati a un gruppo di risorse vengono assegnati in Checkmk all'host che rappresenta questo gruppo di risorse e i tag di una VM diventano etichette dell'host per questa VM.
A tutte le etichette create in questo modo viene assegnato il prefisso cmk/azure/.
Inoltre, i caratteri e i valori che porterebbero a etichette non valide in Checkmk vengono sostituiti.
I valori vuoti (ad esempio il campo Value in Azure) vengono sostituiti con true e i due punti all’interno del nome o del valore vengono sostituiti con un trattino basso.
Per motivi di compatibilità, i tag da Azure vengono importati anche senza il prefisso |
L'opzione "Filter tags imported as host/service labels" ti permette di controllare l'importazione dei tag da Azure. Se attivi la checkbox qui, puoi impedire completamente l'importazione con Do not import tags. Se selezioni Filter valid tags by key pattern qui, puoi inserire un'espressione regolare nel campo seguente. Checkmk genererà quindi solo etichette dai tag che corrispondono a questa espressione regolare.
5.4. Limite per le query API
Attualmente le query API di cui Checkmk ha bisogno per il monitoraggio di Azure (a differenza di AWS) sono gratuite; tuttavia, esiste un limite al numero di query consentite per periodo di tempo (il "limite di throttling"). Ad oggi, le query API richieste da Checkmk per il monitoraggio sono gratuite con Azure (a differenza di AWS). Tuttavia, esiste un limite al numero di query per periodo di tempo ("limiti di throttling").
A causa della struttura dell’API, Checkmk richiede almeno una o più query per ogni risorsa richiesta. Pertanto, il numero totale di query varia in modo lineare con il numero di risorse monitorate. Se il limite di query viene raggiunto o superato, la query fallisce con un codice HTTP 429 (troppe richieste) e il servizio di monitoraggio per l’host Azure viene contrassegnato come “CRIT”.
Questo limite deriva dal cosiddetto algoritmo "token bucket" di Azure. Tutto inizia con un "credito" di 250 query rimanenti: ogni query ne consuma una. Contemporaneamente, al credito vengono aggiunte 25 query al secondo. L'output del servizio Azure Agent Info ti permette di vedere quante query sono attualmente rimaste.
In particolare, questo significa che:
Se la tua frequenza di query è sufficientemente bassa, le query disponibili sono sempre poco meno di 250.
Se la tua frequenza è troppo alta, il credito scenderà lentamente a 0 e poi si verificheranno errori sporadici nella query.
In questo caso puoi ridurre la frequenza di polling interrogando un numero minore di gruppi di risorse o risorse di polling, oppure riducendo l'intervallo di controllo per l'active check di Check_MK sull'host Azure. Questo è possibile con la regola Normal check interval for service checks.
Per consentirti di reagire in tempo, il servizio Azure Agent Info effettua il monitoraggio del numero di query rimanenti. Per impostazione predefinita, non sono impostate soglie. Puoi impostarle tu stesso nella regola Azure Agent Info.
L'articolo "Scopri come Azure Resource Manager limita le richieste" su Microsoft Learn spiega questo argomento in modo più dettagliato.
6. Dashboard
Per iniziare facilmente con il monitoraggio di Azure, Checkmk include in Checkmk Ultimate
due dashboard integrate: Azure VM instances e Azure storage accounts.
Entrambe sono disponibili come voci di menu nella sezione di monitoraggio all'indirizzo Monitor > Cloud.
Per darti un'idea più chiara, ecco due esempi di come sono strutturate queste dashboard. Innanzitutto, la dashboard delle istanze VM, in cui puoi confrontare lo stato attuale sul lato sinistro e la cronologia delle metriche più importanti sul lato destro:

Il dashboard per gli account di archiviazione è strutturato in modo molto simile. Sul lato sinistro troverai i dati attuali per i rispettivi bucket. A destra, le metriche più importanti vengono nuovamente visualizzate in ordine cronologico:

