Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configura Amazon Managed Service per Prometheus con Observability Accelerator AWS
AWS fornisce strumenti di osservabilità, tra cui monitoraggio, registrazione, avvisi e dashboard, per i tuoi progetti Amazon Elastic Kubernetes Service (Amazon EKS). Ciò include Amazon Managed Service for Prometheus, Amazon Managed AWS Grafana
AWS Observability Accelerator fornisce due profili di raccolta per Amazon Managed Service for Prometheus:
-
Metriche gestite (senza agenti): utilizza il collettore Amazon Managed Service for Prometheus, uno scraper completamente gestito e senza agenti che viene eseguito all'esterno del cluster. Nessun pod da collezione da gestire. Solo metriche.
-
Gestione automatica: implementa un OpenTelemetry collettore tramite Helm nel cluster. Supporta metriche, tracce (AWS X-Ray) e log ( CloudWatchAmazon).
Questa sezione illustra entrambe le opzioni, a partire dall'approccio agentless consigliato.
I modelli Terraform e le istruzioni dettagliate sono disponibili nella pagina AWS Observability Accelerator
Prerequisiti
Per utilizzare AWS Observability Accelerator, è necessario disporre di un cluster Amazon EKS esistente e dei seguenti prerequisiti:
-
AWS CLI— utilizzato per richiamare AWS funzionalità dalla riga di comando.
-
kubectl
: utilizzato per controllare il cluster EKS dalla riga di comando. -
Terraform
(>= 1.5.0): utilizzato per automatizzare la creazione delle risorse per questa soluzione. Devi avere il AWS provider configurato con un ruolo IAM che abbia accesso per creare e gestire Amazon Managed Service for Prometheus, Amazon Managed Grafana e IAM all'interno del tuo account. AWS Per ulteriori informazioni su come configurare il AWS provider per Terraform, consulta AWS provider nella documentazione di Terraform.
Utilizzando l'esempio delle metriche gestite (senza agenti)
Questo esempio utilizza il collettore Amazon Managed Service for Prometheus per estrarre i parametri di Prometheus dal tuo cluster Amazon EKS senza implementare alcun collector pod. Il collector richiede almeno due sottoreti in due zone di disponibilità distinte. Per ulteriori dettagli, vedere l'eks-amp-managed
Per utilizzare il modulo Terraform di monitoraggio dell'infrastruttura senza agenti
-
Dalla cartella in cui vuoi creare il tuo progetto, clona il repository usando il seguente comando.
git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git -
Inizializza Terraform con i seguenti comandi.
cd examples/eks-amp-managed terraform init -
Crea un nuovo
terraform.tfvarsfile, come nell'esempio seguente. Usa la AWS regione, l'ID del cluster e i dettagli di rete VPC per il tuo cluster Amazon EKS. Il raccoglitore richiede almeno due sottoreti in due zone di disponibilità distinte.# (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" # (mandatory) Subnets for the managed scraper (>= 2 AZs) scraper_subnet_ids = ["subnet-aaa", "subnet-bbb"] # (mandatory) Security group allowing scraper access to the EKS API scraper_security_group_ids = ["sg-xxx"] -
Crea uno spazio di lavoro Grafana gestito da Amazon, se non ne hai già creato uno da utilizzare. Per informazioni su come creare un nuovo spazio di lavoro, consulta Come creare la tua prima area di lavoro nella Guida utente di Grafana gestito da Amazon.
-
Crea due variabili per consentire a Terraform di utilizzare l'area di lavoro Grafana eseguendo i seguenti comandi dalla riga di comando. Dovrai sostituirlo
grafana-workspace-idcon l'ID del tuo spazio di lavoro Grafana.export TF_VAR_managed_grafana_workspace_id=grafana-workspace-idexport TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text` -
[Facoltativo] Per utilizzare un'area di lavoro Amazon Managed Service for Prometheus esistente, aggiungi l'ID al file, come nell'esempio seguente, sostituendo l'ID dell'area di lavoro Prometheus con
terraform.tfvarsil tuo ID dell'area di lavoro Prometheus.prometheus-workspace-idSe non specifichi uno spazio di lavoro esistente, verrà creato automaticamente una nuova area di lavoro Prometheus.# (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id" -
Implementa la soluzione mediante il comando seguente.
terraform apply -var-file=terraform.tfvars
In questo modo verranno create risorse nel tuo account, tra cui: AWS
-
Una nuova area di lavoro del servizio gestito da Amazon per Prometheus (a meno che tu non abbia scelto di utilizzare uno spazio di lavoro esistente).
-
Un collettore Amazon Managed Service for Prometheus (scraper senza agenti) configurato per acquisire i parametri di Prometheus dal tuo cluster Amazon EKS.
-
Regole di registrazione e avviso di Prometheus nel tuo spazio di lavoro Amazon Managed Service for Prometheus.
-
kube-state-metrics e node-exporter distribuito nel tuo cluster Amazon EKS per i parametri dell'infrastruttura.
-
Nuova fonte di dati e dashboard Grafana gestito da Amazon nella tua area di lavoro attuale. I dashboard verranno elencati nella sezione EKS Monitoring.
Alternativa: Collettore OpenTelemetry autogestito
Se hai bisogno di tracce, log o del pieno controllo sulla pipeline di raccolta, usa il profilo autogestito. Questo implementa un OpenTelemetry Collector tramite Helm nel tuo cluster Amazon EKS, configurato per acquisire i parametri di Prometheus e scrivere in remoto su Amazon Managed Service for Prometheus. Supporta anche tracce (AWS X-Ray) e log (Amazon). CloudWatch Per maggiori dettagli, consulta l'eks-amp-otel
Per utilizzare il modulo Terraform autogestito
-
Clona il repository e inizializza Terraform.
git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git cd examples/eks-amp-otel terraform init -
Crea un nuovo
terraform.tfvarsfile, come nell'esempio seguente.# (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" -
Configura lo spazio di lavoro e la chiave API di Amazon Managed Grafana utilizzando gli stessi passaggi dell'esempio di managed metrics (passaggi da 4 a 6 sopra).
-
Implementa la soluzione mediante il comando seguente.
terraform apply -var-file=terraform.tfvars
In questo modo verranno create le seguenti risorse nel tuo AWS account (a differenza dell'approccio senza agenti, il raccoglitore viene eseguito all'interno del tuo cluster):
-
Un'area di lavoro Amazon Managed Service per Prometheus (se non fornita).
-
Un'area di lavoro Amazon Managed Grafana con origine dati e dashboard.
-
Un OpenTelemetry Collector distribuito tramite Helm nel tuo cluster Amazon EKS, configurato per acquisire i parametri di Prometheus e scrivere in remoto su Amazon Managed Service for Prometheus.
-
Un ruolo IAM per gli account di servizio (IRSA) per Collector. OpenTelemetry
-
Traccia la pipeline su AWS X-Ray (abilitato per impostazione predefinita).
-
Registra la pipeline su Amazon CloudWatch (abilitata per impostazione predefinita).
Visualizzazione dei pannelli di controllo
Per visualizzare le tue nuove dashboard, apri la dashboard specifica nella tua area di lavoro Grafana gestito da Amazon. I dashboard dell'infrastruttura vengono forniti automaticamente da Terraform. Per ulteriori informazioni sull'uso di Grafana gestito da Amazon, consulta Lavorare nell'area di lavoro di Grafana, nella Guida utente di Grafana gestito da Amazon.