Installazione dell'agente CloudWatch con la raccolta deli parametri Prometheus sui cluster Amazon EKS e Kubernetes - Amazon CloudWatch

Installazione dell'agente CloudWatch con la raccolta deli parametri Prometheus sui cluster Amazon EKS e Kubernetes

Questa sezione spiega come configurare l'agente CloudWatch con il monitoraggio Prometheus in un cluster che esegue Amazon EKS o Kubernetes. Dopo aver eseguito questa operazione, l'agente esegue automaticamente lo scraping e l'importazione dei parametri per i seguenti carichi di lavoro in esecuzione in quel cluster.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/JMX

  • HAProxy

  • Fluent Bit

È inoltre possibile configurare l'agente per recuperare e importare carichi di lavoro e origini Prometheus.

Prima di eseguire questa procedura per installare l'agente CloudWatch per la raccolta di parametri Prometheus, è necessario disporre di un cluster in esecuzione Amazon EKS o di un cluster Kubernetes in esecuzione in un'istanza Amazon EC2.

Requisiti del gruppo di sicurezza VPC

Le regole di ingresso dei gruppi di sicurezza per i carichi di lavoro Prometheus devono aprire le porte Prometheus all'agente CloudWatch per lo scraping dei parametri Prometheus dall'IP privato.

Le regole in uscita del gruppo di sicurezza per l'agente CloudWatch devono consentire all'agente CloudWatch di connettersi alla porta dei carichi di lavoro Prometheus tramite IP privato.

Installazione dell'agente CloudWatch con la raccolta deli parametri Prometheus sui cluster Amazon EKS e Kubernetes

Questa sezione spiega come configurare l'agente CloudWatch con il monitoraggio Prometheus in un cluster che esegue Amazon EKS o Kubernetes. Dopo aver eseguito questa operazione, l'agente esegue automaticamente lo scraping e l'importazione dei parametri per i seguenti carichi di lavoro in esecuzione in quel cluster.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/JMX

  • HAProxy

  • Fluent Bit

È inoltre possibile configurare l'agente per recuperare e importare carichi di lavoro e origini Prometheus.

Prima di eseguire questa procedura per installare l'agente CloudWatch per la raccolta di parametri Prometheus, è necessario disporre di un cluster in esecuzione Amazon EKS o di un cluster Kubernetes in esecuzione in un'istanza Amazon EC2.

Requisiti del gruppo di sicurezza VPC

Le regole di ingresso dei gruppi di sicurezza per i carichi di lavoro Prometheus devono aprire le porte Prometheus all'agente CloudWatch per lo scraping dei parametri Prometheus dall'IP privato.

Le regole in uscita del gruppo di sicurezza per l'agente CloudWatch devono consentire all'agente CloudWatch di connettersi alla porta dei carichi di lavoro Prometheus tramite IP privato.

Impostazione dei ruoli IAM

Il primo passo consiste nell'impostare il ruolo IAM necessario nel cluster. Esistono due metodi:

  • Impostare un ruolo IAM per un account di servizio, noto anche come ruolo di servizio. Questo metodo funziona sia per il tipo di avvio EC2 che per il tipo di avvio Fargate.

  • Aggiungere una policy IAM al ruolo IAM utilizzato per il cluster. Funziona solo per il tipo di avvio EC2.

Impostazione di un ruolo di servizio (tipo di avvio EC2 e tipo di avvio Fargate)

Per impostare un ruolo di servizio, immetti il comando seguente. Sostituire MyCluster con il nome del cluster.

eksctl create iamserviceaccount \ --name cwagent-prometheus \ --namespace amazon-cloudwatch \ --cluster MyCluster \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --approve \ --override-existing-serviceaccounts

Aggiungere una policy al ruolo IAM del nodo (solo tipo di avvio EC2)

Per impostare la policy IAM in un gruppo di nodi per il supporto di Prometheus
  1. Aprire la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nel pannello di navigazione, seleziona Instances (Istanze).

  3. È necessario trovare il prefisso del nome del ruolo IAM per il cluster. A tale scopo, seleziona la casella di controllo accanto al nome di un'istanza presente nel cluster e scegli Azioni, Sicurezza, Modifica ruolo IAM. Copia quindi il prefisso del ruolo IAM, ad esempio eksctl-dev303-workshop-nodegroup.

  4. Apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  5. Nel riquadro di navigazione, seleziona Ruoli.

  6. Utilizza la casella di ricerca per trovare il prefisso copiato in precedenza in questa procedura e scegli il ruolo desiderato.

  7. Scegli Collega policy.

  8. Utilizzare la casella di ricerca per trovare CloudWatchAgentServerPolicy. Seleziona la casella di controllo accanto a CloudWatchAgentServerPolicy e scegli Attach policy (Allega policy).

Installazione dell'agente CloudWatch per raccogliere parametri Prometheus

È necessario installare l'agente CloudWatch nel cluster per raccogliere i parametri. L'installazione dell'agente è diversa per cluster Amazon EKS e cluster Kubernetes.

Eliminare le versioni precedenti dell'agente CloudWatch con il supporto Prometheus

Se è già stata installata una versione dell'agente CloudWatch con supporto Prometheus nel cluster, è necessario eliminare tale versione immettendo il seguente comando. Questo è necessario solo per le versioni precedenti dell'agente con supporto di Prometheus. Non è necessario eliminare l'agente CloudWatch che abilita Container Insights senza il supporto di Prometheus.

kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch

Installazione dell'agente CloudWatch sui cluster Amazon EKS con il tipo di avvio EC2

Per installare l'agente CloudWatch con supporto Prometheus in un cluster Amazon EKS, attenersi alla seguente procedura.

Per installare l'agente CloudWatch con supporto Prometheus in un cluster Amazon EKS
  1. Immetti il comando seguente per verificare se lo spazio dei nomi amazon-cloudwatch è già stato creato:

    kubectl get namespace
  2. Se amazon-cloudwatch non viene visualizzato nei risultati, crearlo immettendo il seguente comando:

    kubectl create namespace amazon-cloudwatch
  3. Per implementare l'agente con la configurazione predefinita e inviare i dati alla regione AWS in cui è installato, immetti il comando seguente:

    kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml

    Per fare in modo che l'agente invii dati a un'area diversa, attenersi alla seguente procedura:

    1. Scaricare il file YAML per l'agente immettendo il seguente comando:

      curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
    2. Apri il file con un editor di testo e cercare il blocco cwagentconfig.json del file.

    3. Aggiungere le linee evidenziate, specificando l'area desiderata:

      cwagentconfig.json: | { "agent": { "region": "us-east-2" }, "logs": { ...
    4. Salva il file e implementa l'agente utilizzando il file aggiornato.

      kubectl apply -f prometheus-eks.yaml

Installazione dell'agente CloudWatch sui cluster Amazon EKS con il tipo di avvio Fargate

Per installare l'agente CloudWatch con supporto Prometheus in un cluster Amazon EKS con tipo di avvio Fargate, procedere come segue.

Per installare l'agente CloudWatch con supporto Prometheus in un cluster Amazon EKS con tipo di avvio Fargate
  1. Inserisci il comando seguente per creare un profilo Fargate per l'agente CloudWatch in modo che possa essere eseguito all'interno del cluster. Sostituire MyCluster con il nome del cluster.

    eksctl create fargateprofile --cluster MyCluster \ --name amazon-cloudwatch \ --namespace amazon-cloudwatch
  2. Per installare l'agente di CloudWatch, inserisci il comando seguente. Sostituire MyCluster con il nome del cluster. Questo nome viene utilizzato nel nome del gruppo di log che memorizza gli eventi di log raccolti dall'agente e viene utilizzato anche come dimensione per le metriche raccolte dall'agente.

    Sostituisci region (regione) con il nome dell'area in cui desideri inviare i parametri. Ad esempio, us-west-1.

    curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Installazione dell'agente CloudWatch in un cluster Kubernetes

Per installare l'agente CloudWatch con supporto Prometheus su un cluster che esegue Kubernetes, immetti il seguente comando:

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Sostituire MyCluster con il nome del cluster. Questo nome viene utilizzato nel nome del gruppo di log che memorizza gli eventi di log raccolti dall'agente e viene utilizzato anche come dimensione per le metriche raccolte dall'agente.

Sostituire la regione con il nome dell'area AWS in cui si desidera inviare le metriche. Ad esempio, us-west-1.

Verifica dell'esecuzione dell'agente

In entrambi i cluster Amazon EKS e Kubernetes, puoi inserire il comando seguente per confermare che l'agente è in esecuzione.

kubectl get pod -l "app=cwagent-prometheus" -n amazon-cloudwatch

Se i risultati includono un singolo pod agente CloudWatch nello stato Running, l'agente è in esecuzione e raccoglie i parametri Prometheus. Per impostazione predefinita, l'agente CloudWatch raccoglie parametri per App Mesh, NGINX, Memcached, Java/JMX e HAProxy ogni minuto. Per ulteriori informazioni su questi parametri, consulta Parametri Prometheus raccolti dall'agente CloudWatch. Per istruzioni su come visualizzare i parametri di Prometheus in CloudWatch, consulta Visualizzazione dei parametri Prometheus

È inoltre possibile configurare l'agente CloudWatch per raccogliere parametri da altri esportatori di Prometheus. Per ulteriori informazioni, consulta la pagina Scraping di ulteriori origini Prometheus e importazione di tali parametri.