![]() |
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 Amazon Web Services (AWS), composto da un connettore per AWS e da una raccolta completa di plug-in di controllo che recuperano e valutano varie metriche e stati del servizio.
Oltre alle informazioni generali sui costi sostenuti dal tuo ambiente AWS e sullo stato attuale di AWS nella tua regione, con tutte le edizioni di Checkmk puoi monitorare i seguenti prodotti AWS:
Con Checkmk Cloud e Checkmk MSP 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 AWS è disponibile nel nostro Catalogo dei plug-in di controllo e nell'articolo Monitoraggio di Kubernetes Cluster descriviamo come includere i tuoi cluster Amazon EKS (Amazon Elastic Kubernetes Service) in Checkmk.
2. Implementazione concreta del monitoraggio AWS
2.1. Host e servizi
In Checkmk tutti gli oggetti da monitorare sono organizzati in una struttura gerarchica di host e servizi. Il concetto di host non esiste nei servizi basati sul cloud. Tuttavia, per mantenere la semplicità e la coerenza di Checkmk, mappiamo gli oggetti AWS secondo lo schema host/servizio.
Il modo in cui si ottiene questo risultato può essere illustrato al meglio con un esempio: In una regione sono state configurate diverse istanze EC2. Un'istanza EC2 è solitamente assegnata a EBS. Questa costellazione si presenta come segue in Checkmk:
C'è un host che corrisponde all'account AWS. Questo host fornisce una panoramica di tutte le istanze EC2 e del loro stato del servizio.
Le istanze EC2 stesse sono i loro host.
Su questi host EC2 puoi trovare i servizi con le metriche attuali.
Gli EBS sono interpretati come un tipo di disco rigido e di conseguenza forniscono metriche di I/O (es. numero di byte letti o scritti). A questo scopo, in ogni EBS ci sono servizi separati in Checkmk con il nome
AWS/EBS Disk IO
che sono assegnati all'istanza EC2.
2.2. Accesso ad AWS
AWS fornisce un'API basata su HTTP attraverso la quale sono disponibili anche i dati di monitoraggio. Checkmk accede a questa API tramite l'agente speciale agent_aws
, che sostituisce l'agente Checkmk, ma che viene eseguito localmente sul server Checkmk.
3. Preparare AWS per Checkmk
3.1. Creare un utente
Per abilitare il monitoraggio tramite Checkmk, è meglio creare un utente speciale di AWS sotto il tuo account root.Accedi ad AWS come utente root e naviga in All services fino a Security, Identity, & Compliance > IAM (Identity and Access Management). Vai in Users e crea un nuovo utente con Add user. Come nome utente scegli, ad esempio, check-mk
. È importante che tu selezioni Access key - Programmatic access per Select AWS credential type.

3.2. Permessi
L'utente appena creato deve essere utilizzato solo per il monitoraggio di Checkmk e deve avere un accesso di sola lettura ad AWS. Ti consigliamo di assegnare a questo utente la policy ReadOnlyAccess. Per trovare questa policy, clicca prima su Attach existing policies directly e poi digita readonlyaccess
nel box di ricerca. Nell'elenco sotto il campo di ricerca, devi scorrere ancora un po' in basso, perché ci sono molte policy che contengono questa stringa.

3.3. Le chiavi
Dopo aver completato la creazione dell'utente, verrà generata automaticamente una chiave d'accesso.Importante: il segreto della chiave viene visualizzato solo una volta, direttamente dopo la sua creazione. Pertanto, copia la chiave e salvala, ad esempio, nell'archivio password di Checkmk. In alternativa, specificala in testo normale come regola (vedi sotto). Per Checkmk, oltre al segreto, hai bisogno di Access key ID. Il nome dell'utente (nel nostro esempio check-mk
) non ha importanza.

Se per qualche motivo dovessi perdere il segreto, puoi creare una nuova chiave di accesso per l'utente e ottenere un nuovo segreto:

3.4. Accesso alle informazioni di fatturazione
Se vuoi che Checkmk abbia accesso in lettura alle informazioni di fatturazione (per eseguire il controllo globale di Costs and Usage ), hai bisogno di un'altra policy per il tuo utente AWS, che dovrai prima definire tu stesso.
In Security, Identity, & Compliance > IAM > Policies seleziona il pulsante Create Policy. Seleziona da Select a Service > Service > Choose a Service il servizio Billing. In Actions spunta il checkbox Read. Dobbiamo impostare un ulteriore permesso. Aggiungine uno tramite il pulsante Add additional permissions. Seleziona da Select a Service > Service > Choose a Service il servizio Cost Explorer Service. In Actions spunta di nuovo il checkbox Read.

Clicca su Review per passare alla fase due. Imposta BillingViewAccess
come Name e salva il tutto con il pulsante Create policy.
Ora devi aggiungere questa nuova policy all'utente. Vai di nuovo su Security, Identity, & Compliance > IAM > Policies- nel box di ricerca di Filter Policies cerca BillingViewAccess
, selezionalo cliccando sul cerchio a sinistra e poi vai su Policy actions > Attach. Qui troverai l'utente check-mk
, selezionalo e confermalo con Attach policy.
4. Impostare il monitoraggio in Checkmk
4.1. Creare un host per AWS
Ora crea un host per monitorare AWS in Checkmk. Puoi assegnare il nome dell'host come desideri. Importante: poiché AWS come servizio non ha un indirizzo IP o un nome DNS (l'accesso è garantito dall'agente speciale stesso), devi impostare IP address family su No IP.

4.2. Configurazione dell'agente AWS
AWS non può essere interrogato attraverso il normale agente Checkmk, quindi è necessario configurare l'agente speciale AWS. Per farlo, alla voce Setup > Agents > VM, cloud, container > Amazon Web Services (AWS) aggiungi una regola le cui condizioni si applicano solo all'host AWS appena creato.
Nel contenuto vero e proprio della regola, troverai innanzitutto le informazioni per il login: inserisci qui l'"ID della chiave di accesso" per l'utente AWS appena creato check-mk
. Scegli anche se hai bisogno di un proxy per recuperare i dati e quali dati globali vuoi monitorare, cioè quelli che non dipendono da una regione. Attualmente sono solo i dati relativi ai costi:

Nell'immagine qui sopra puoi vedere anche l'opzione Use STS AssumeRole to assume a different IAM role. Se utilizzi diversi account su AWS, puoi utilizzare un unico utente per monitorare anche gli altri account.
Ma i dati più interessanti sono quelli assegnati alle regioni, quindi seleziona la tua regione AWS:

Alla voce Services by region to monitor specifica quali informazioni vuoi recuperare da queste regioni. Per impostazione predefinita tutti i servizi AWS e il monitoraggio dei loro limiti sono attivati. Nell'immagine seguente sono tutti disattivati tranne uno per avere una panoramica migliore:

Ora puoi limitare i dati recuperati per servizio web o a livello globale con Restrict monitoring services by one of these AWS tags. La restrizione globale verrà sovrascritta se la restrizione viene effettuata per servizio web. Inoltre, non solo hai la possibilità di limitare per tag AWS ma anche di specificare i nomi espliciti:

Non dimenticare di assegnare lo special agent all'host precedentemente creato inserendo il nome host in Conditions > Explicit hosts.
4.3. Servizi sull'host AWS stesso
Ora passa alla scoperta del servizio dell'host AWS appena creato in Checkmk, dove Checkmk dovrebbe trovare diversi servizi. Dopo aver aggiunto i servizi e dopo aver attivato le modifiche, l'aspetto sarà simile a questo nel monitoraggio:

4.4. Creazione di host per le istanze EC2
I servizi assegnati alle istanze EC2 non sono assegnati all'host AWS, ma ai cosiddetti host piggyback. In questo modo i dati recuperati dall'host AWS vengono distribuiti a questi host piggyback, che operano senza agenti di monitoraggio propri. A ogni istanza EC2 viene assegnato un host piggyback.
Per quanto riguarda la denominazione di questi host piggyback, al momento della configurazione dell'agente speciale puoi scegliere tra due schemi: da un lato, puoi nominare gli host in base al loro nome DNS IP privato, dall'altro puoi scegliere una denominazione un po' più lunga ma unica in base a IP, regione e ID dell'istanza. Quest'ultima variante è la nostra impostazione predefinita a partire da Checkmk 2.2.0. La variante senza regione e ID dell'istanza è ancora offerta solo per motivi di compatibilità. Un host piggyback di questo tipo potrebbe quindi chiamarsi, ad esempio, 172.23.1.123-ap-northeast-2-i-0b16121900a32960c
. Puoi creare questi host manualmente oppure, se possibile, lasciare questo compito alla gestione dinamica degli host.
Impostazione della gestione dinamica degli host
Se sei un utente di una delle nostre edizioni commerciali, puoi semplicemente lasciare la creazione e la cancellazione degli host per le tue istanze VM alla gestione dinamica degli host. La voce di menu Setup > Hosts > Dynamic host management ti porta alla pagina panoramica di tutte le connessioni già configurate. Clicca su Add connection e poi assegna alla connessione un ID e un Title.
Non tutte le opzioni disponibili in Connection properties sono trattate qui di seguito. Consulta l'aiuto inline e l'articolo principale linkato sopra se hai delle domande.
Per prima cosa, assicurati che nel box Connection properties sia attivata la modalità Mostra di più in modo da visualizzare tutte le opzioni disponibili.
Quindi, alla voce Piggyback creation options clicca su Add new element. Personalizza la cartella in cui verranno creati gli host delle tue istanze VM. Le opzioni pre-selezionate di Host attributes sono fondamentalmente corrette per gli host piggyback e non hanno bisogno di essere modificate.
Attivando l'opzione Delete vanished hosts, puoi fare in modo che gli host piggyback da cui non vengono ricevuti più dati freschi in un determinato periodo di tempo vengano eliminati automaticamente.
Per monitorare i progetti GCP, è necessario attivare l'opzione Restrict source hosts. Inserisci il tuo host GCP nella sezione Creare un host per AWS.
A titolo di esempio, la configurazione di una connessione di questo tipo potrebbe essere la seguente:

Creare manualmente gli host per le istanze EC2
In alternativa, puoi creare manualmente gli host per i dati piggyback: è importante che i nomi degli host corrispondano esattamente allo schema descritto sopra.
Suggerimento: con lo script find_piggy_orphans
dalla directory delle tesoriere puoi trovare tutti gli host piggyback per i quali esistono dati ma che non sono ancora stati creati come host in Checkmk:
OMD[mysite]:~$ share/doc/check_mk/treasures/find_piggy_orphans
172.23.1.123-ap-northeast-2-i-0b16121900a32960c
172.23.1.124-ap-northeast-2-i-0b32960a16121900c
Configura gli host per queste istanze EC2 senza indirizzo IP (analogamente all'host AWS) e seleziona No API integrations, no Checkmk agent come agente di monitoraggio. Se selezioni anche l'opzione Always use and expect piggyback data sotto Piggyback, sarai avvisato di conseguenza se i dati non arrivano.

4.5. Host per l'ELB (Classic Load Balancer)
Anche i servizi dell'ELB sono assegnati a host piggyback. I nomi corrispondono ai loro nomi DNS.
4.6. Monitoraggio delle statistiche di traffico dei bucket S3
Con Checkmk puoi monitorare il traffico di ciascuno dei tuoi bucket S3. In Checkmk devi semplicemente attivare l'opzione Request metrics sotto Simple Storage Service (S3).

In AWS è necessario un po' più di lavoro: devi ancora impostare le metriche di richiesta per i bucket che vuoi monitorare. AWS descrive in dettaglio come funziona nell'articolo Creare una configurazione di metriche CloudWatch per tutti gli oggetti del tuo bucket.
Durante la configurazione in AWS, ti verrà chiesto di creare un filtro. Devi dare a questo filtro il nome EntireBucket
in modo che venga riconosciuto da Checkmk. Qualsiasi filtro con un nome diverso verrà ignorato da Checkmk. Quindi sei libero di definire altri filtri per questo bucket senza influenzare le funzionalità di Checkmk.

Anche la scelta del cosiddetto (filtro) Scope in AWS dipende da te. Nella maggior parte dei casi, tuttavia, avrà senso includere nel filtro tutti gli oggetti del bucket.
Dopo aver impostato le metriche di richiesta, ci vorranno alcuni minuti prima che le metriche vengano memorizzate. AWS indica un tempo di 15 minuti.
Importante: finché i grafici all'interno della console S3 sono ancora vuoti, non arriverà nulla a Checkmk nemmeno tramite l'agente speciale. Solo quando le metriche saranno state registrate, Checkmk potrà creare i servizi corrispondenti. Se necessario, esegui nuovamente una scoperta del servizio sull'host AWS.
4.7. Limiti di monitoraggio
Alcuni servizi web di AWS hanno dei limiti e Checkmk è in grado di monitorarli. Ecco alcuni esempi:
Non appena un plug-in di controllo crea dei servizi e li controlla in seguito, l'agente speciale recupera sempre tutti gli elementi del servizio web. Solo in questo modo Checkmk è in grado di calcolare in modo ragionevole il workload corrente a questi limiti e di controllare le soglie. Questo vale anche se nella configurazione limiti i dati recuperati con alcuni tag o nomi del servizio.
Il controllo dei limiti è attivato per impostazione predefinita per ogni servizio web monitorato. Se vuoi limitare i dati recuperati nella regola dell'agente speciale per limitare la quantità di dati trasferiti, devi anche disattivare i limiti.
4.8. Altri servizi
Gli altri servizi web di AWS sono assegnati come segue:
Servizio | Assegnazione | |
---|---|---|
CE |
Costi e utilizzo |
Nell'host AWS |
EBS |
Archivi a blocchi |
Aggiunti all'istanza EC2 se appartengono all'istanza, altrimenti all'host AWS |
S3 |
Archivi semplici |
Presso l'host AWS |
RDS |
Database relazionali |
Presso l'host AWS |
5. Le dashboard
Per iniziare comodamente il monitoraggio di AWS, Checkmk Cloud offre due dashboard integrate, AWS EC2 instances e AWS S3. Entrambe si trovano come voci di menu nel monitoraggio alla voce Monitor > Cloud.
Per dare un'impressione più chiara, ecco due esempi di come sono strutturate queste dashboard. Innanzitutto, la dashboard delle istanze EC2, dove puoi confrontare lo stato attuale sul lato sinistro e la cronologia delle metriche più importanti sul lato destro:

La dashboard per i bucket S3 è strutturata in modo simile: sul lato sinistro troverai l'utilizzo attuale della memoria per i rispettivi bucket, mentre a destra le metriche più importanti sono visualizzate in ordine cronologico.
