Installa l' CloudWatch agente con il componente aggiuntivo Amazon CloudWatch Observability EKS o il grafico Helm - Amazon CloudWatch

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à.

Installa l' CloudWatch agente con il componente aggiuntivo Amazon CloudWatch Observability EKS o il grafico Helm

Puoi utilizzare il componente aggiuntivo Amazon CloudWatch Observability EKS o il grafico Amazon CloudWatch Observability Helm per installare l' CloudWatch agente e l'agente Fluent-bit su un cluster Amazon EKS. Puoi anche utilizzare il grafico Helm per installare l' CloudWatch agente e l'agente Fluent-bit su un cluster Kubernetes che non è ospitato su Amazon EKS.

L'uso di entrambi i metodi su un cluster Amazon EKS abilita sia Container Insights con osservabilità migliorata per Amazon EKS che CloudWatch Application Signals per impostazione predefinita. Entrambe le funzionalità consentono di raccogliere i parametri dell'infrastruttura, la telemetria delle prestazioni delle applicazioni e i log dei container dal cluster.

Con Approfondimenti sui container con osservabilità migliorata per Amazon EKS, i parametri di Approfondimenti sui container vengono addebitati per osservazione anziché per parametro archiviato o log importato. Per Application Signals, la fatturazione si basa sulle richieste in entrata alle applicazioni, sulle richieste in uscita dalle applicazioni e su ogni obiettivo del livello di servizio (SLO) configurato. Ogni richiesta in entrata ricevuta e ogni richiesta in uscita effettuata genera un segnale di applicazione. Ogni SLO crea due segnali di applicazione per ciascun periodo di misurazione. Per ulteriori informazioni sui CloudWatch prezzi, consulta la pagina CloudWatch dei prezzi di Amazon.

Entrambi i metodi abilitano Container Insights su nodi di lavoro Linux e Windows nel cluster Amazon EKS. Per abilitare Container Insights su Windows, devi utilizzare la versione 1.5.0 o successiva del componente aggiuntivo Amazon EKS o il grafico Helm. Attualmente, Application Signals non è supportato su Windows nei cluster Amazon EKS.

Il componente aggiuntivo Amazon CloudWatch Observability EKS è supportato sui cluster Amazon EKS in esecuzione con Kubernetes versione 1.23 o successiva.

Quando installi il componente aggiuntivo o il grafico Helm, devi inoltre concedere le autorizzazioni IAM per consentire all' CloudWatch agente di inviare metriche, log e tracce a. CloudWatch Ci sono due modi per effettuare questa operazione:

  • Collega una policy al ruolo IAM dei nodi di lavoro. Questa opzione concede ai nodi di lavoro le autorizzazioni a cui inviare telemetria. CloudWatch

  • Utilizza un ruolo IAM per gli account di servizio per i pod dell'agente e collega la policy a questo ruolo. Questo metodo funziona solo per i cluster Amazon EKS. Questa opzione consente l' CloudWatch accesso solo ai pod degli agenti appropriati.

Opzione 1: installazione utilizzando EKS Pod Identity

Se utilizzi la versione 3.1.0 o successiva del componente aggiuntivo, puoi utilizzare EKS Pod Identity per concedere le autorizzazioni richieste al componente aggiuntivo. EKS Pod Identity è l'opzione consigliata e offre vantaggi come il privilegio minimo, la rotazione delle credenziali e la verificabilità. Inoltre, l'utilizzo di EKS Pod Identity consente di installare il componente aggiuntivo EKS come parte della creazione del cluster stesso.

Per utilizzare questo metodo, segui innanzitutto i passaggi di associazione EKS Pod Identity per creare il ruolo IAM e configurare l'agente EKS Pod Identity.

Quindi installa il componente aggiuntivo Amazon CloudWatch Observability EKS. Per installare il componente aggiuntivo, puoi utilizzare la AWS CLI console Amazon EKS o Terraform. AWS CloudFormation

AWS CLI
Per utilizzare il AWS CLI componente aggiuntivo Amazon CloudWatch Observability EKS

Esegui i comandi seguenti: my-cluster-nameSostituiscilo con il nome del cluster e sostituiscilo 111122223333 con l'ID del tuo account. Sostituiscilo my-role con il ruolo IAM creato nella fase di associazione EKS Pod Identity.

aws iam attach-role-policy \ --role-name my-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy aws eks create-addon \ --addon-name amazon-cloudwatch-observability \ --cluster-name my-cluster-name \ --pod-identity-associations serviceAccount=cloudwatch-agent,roleArn=arn:aws:iam::111122223333:role/my-role
Amazon EKS console
Per utilizzare la console Amazon EKS per aggiungere il componente aggiuntivo Amazon CloudWatch Observability EKS
  1. Apri la console Amazon EKS a https://console.aws.amazon.com/eks/home#/clusters.

  2. Nel pannello di navigazione a sinistra, seleziona Cluster.

  3. Scegli il nome del cluster per cui desideri configurare il componente aggiuntivo Amazon CloudWatch Observability EKS.

  4. Seleziona la scheda Componenti aggiuntivi.

  5. Scegli Ottieni altri componenti aggiuntivi.

  6. Nella pagina Seleziona componenti aggiuntivi, procedi come segue:

    1. Nella sezione Amazon EKS-Addons, seleziona la casella di controllo Amazon CloudWatch Observability.

    2. Scegli Next (Successivo).

  7. Nella pagina Configura le impostazioni dei componenti aggiuntivi selezionati, procedi come segue:

    1. Seleziona la Versione che desideri utilizzare.

    2. Per l'accesso aggiuntivo, seleziona EKS Pod Identity

    3. Se non hai configurato un ruolo IAM, scegli Crea ruolo consigliato, quindi scegli Avanti fino alla fase 3 Denominazione, revisione e creazione. Se lo desideri, puoi modificare il nome del ruolo, altrimenti scegli Crea ruolo, quindi torna alla pagina del componente aggiuntivo e seleziona il ruolo IAM che hai appena creato.

    4. (Facoltativo) È possibile espandere le Impostazioni di configurazione facoltative. Se selezioni Sostituisci per Metodo di risoluzione dei conflitti, una o più impostazioni per il componente aggiuntivo esistente possono essere sovrascritte con le impostazioni del componente aggiuntivo di Amazon EKS. Se rimuovi questa opzione e c'è un conflitto con le impostazioni esistenti, l'operazione non va a buon fine e viene visualizzato un messaggio di errore per aiutarti a risolvere il conflitto. Prima di selezionare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che devono essere gestite dall'utente.

    5. Scegli Next (Successivo).

  8. Nella pagina Rivedi e aggiungi, scegli Crea. Una volta completata l'installazione, viene visualizzato il componente aggiuntivo.

AWS CloudFormation
Da utilizzare AWS CloudFormation per installare il componente aggiuntivo Amazon CloudWatch Observability EKS
  1. Innanzitutto, esegui il AWS CLI comando seguente per allegare la politica IAM necessaria al tuo ruolo IAM. Sostituiscilo my-role con il ruolo che hai creato nella fase di associazione EKS Pod Identity.

    aws iam attach-role-policy \ --role-name my-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  2. Quindi crea la seguente risorsa. Sostituisci my-cluster-name con il nome del cluster, sostituiscilo 111122223333 con l'ID dell'account e sostituiscilo my-role con il ruolo IAM creato nella fase di associazione EKS Pod Identity. Per ulteriori informazioni, consulta AWS::EKS::Addon.

    { "Resources": { "EKSAddOn": { "Type": "AWS::EKS::Addon", "Properties": { "AddonName": "amazon-cloudwatch-observability", "ClusterName": "my-cluster-name", "PodIdentityAssociations": [ { "ServiceAccount": "cloudwatch-agent", "RoleArn": "arn:aws:iam::111122223333:role/my-role" } ] } } } }
Terraform
Per utilizzare Terraform per installare il componente aggiuntivo Amazon CloudWatch Observability EKS
  1. Usa quanto segue. Sostituiscilo my-cluster-name con il nome del cluster, sostituiscilo 111122223333 con l'ID dell'account e sostituiscilo my-service-account-role con il ruolo IAM creato nella fase di associazione EKS Pod Identity.

    Per ulteriori informazioni, consulta Resource: aws_eks_addon nella documentazione di Terraform.

  2. resource "aws_iam_role_policy_attachment" "CloudWatchAgentServerPolicy" { policy_arn = "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy" role = "my-role" } resource "aws_eks_addon" "example" { cluster_name = "my-cluster-name" addon_name = "amazon-cloudwatch-observability" pod_identity_associations { roleArn = "arn:aws:iam::111122223333:role/my-role" serviceAccount = "cloudwatch-agent" } }

Opzione 2: installazione con autorizzazioni IAM sui nodi di lavoro

Per utilizzare questo metodo, collega innanzitutto la policy CloudWatchAgentServerPolicyIAM ai nodi di lavoro inserendo il seguente comando. In questo comando, sostituiscilo my-worker-node-role con il ruolo IAM utilizzato dai nodi di lavoro Kubernetes.

aws iam attach-role-policy \ --role-name my-worker-node-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Quindi installa il componente aggiuntivo Amazon CloudWatch Observability EKS. Per installare il componente aggiuntivo, puoi utilizzare la AWS CLI console o Terraform AWS CloudFormation.

AWS CLI
Per utilizzare il AWS CLI componente aggiuntivo Amazon CloudWatch Observability EKS

Inserire il seguente comando. Sostituisci my-cluster-name con il nome del cluster.

aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name
Amazon EKS console
Per utilizzare la console Amazon EKS per aggiungere il componente aggiuntivo Amazon CloudWatch Observability EKS
  1. Apri la console Amazon EKS a https://console.aws.amazon.com/eks/home#/clusters.

  2. Nel pannello di navigazione a sinistra, seleziona Cluster.

  3. Scegli il nome del cluster per cui desideri configurare il componente aggiuntivo Amazon CloudWatch Observability EKS.

  4. Seleziona la scheda Componenti aggiuntivi.

  5. Scegli Ottieni altri componenti aggiuntivi.

  6. Nella pagina Seleziona componenti aggiuntivi, procedi come segue:

    1. Nella sezione Amazon EKS-Addons, seleziona la casella di controllo Amazon CloudWatch Observability.

    2. Scegli Next (Successivo).

  7. Nella pagina Configura le impostazioni dei componenti aggiuntivi selezionati, procedi come segue:

    1. Seleziona la Versione che desideri utilizzare.

    2. (Facoltativo) È possibile espandere le Impostazioni di configurazione facoltative. Se selezioni Sostituisci per Metodo di risoluzione dei conflitti, una o più impostazioni per il componente aggiuntivo esistente possono essere sovrascritte con le impostazioni del componente aggiuntivo di Amazon EKS. Se rimuovi questa opzione e c'è un conflitto con le impostazioni esistenti, l'operazione non va a buon fine e viene visualizzato un messaggio di errore per aiutarti a risolvere il conflitto. Prima di selezionare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che devono essere gestite dall'utente.

    3. Scegli Next (Successivo).

  8. Nella pagina Rivedi e aggiungi, scegli Crea. Una volta completata l'installazione, viene visualizzato il componente aggiuntivo.

AWS CloudFormation
Da utilizzare AWS CloudFormation per installare il componente aggiuntivo Amazon CloudWatch Observability EKS

Sostituisci my-cluster-name con il nome del cluster. Per ulteriori informazioni, consulta AWS::EKS::Addon.

{ "Resources": { "EKSAddOn": { "Type": "AWS::EKS::Addon", "Properties": { "AddonName": "amazon-cloudwatch-observability", "ClusterName": "my-cluster-name" } } } }
Helm chart
Per utilizzare il diagramma amazon-cloudwatch-observability Helm
  1. È necessario che Helm sia installato per utilizzare questo grafico. Per ulteriori informazioni sull'installazione di Helm, consulta la documentazione di Helm.

  2. Dopo aver installato Helm, inserisci i seguenti comandi. Sostituiscilo my-cluster-name con il nome del cluster e sostituiscilo my-cluster-region con la regione in cui viene eseguito il cluster.

    helm repo add aws-observability https://aws-observability.github.io/helm-charts helm repo update aws-observability helm install --wait --create-namespace --namespace amazon-cloudwatch amazon-cloudwatch-observability aws-observability/amazon-cloudwatch-observability --set clusterName=my-cluster-name --set region=my-cluster-region
Terraform
Per utilizzare Terraform per installare il componente aggiuntivo Amazon CloudWatch Observability EKS

Sostituisci my-cluster-name con il nome del cluster. Per ulteriori informazioni, consulta la sezione Risorsa: aws_eks_addon.

resource "aws_eks_addon" "example" { addon_name = "amazon-cloudwatch-observability" cluster_name = "my-cluster-name" }

Opzione 3: installazione utilizzando il ruolo dell'account del servizio IAM (si applica solo all'utilizzo del componente aggiuntivo)

Questo metodo è valido solo se utilizzi il componente aggiuntivo Amazon CloudWatch Observability EKS. Prima di utilizzare questo metodo, verifica di soddisfare i seguenti prerequisiti:

  • Disponi di un cluster Amazon EKS funzionale con nodi collegati in una delle Regioni AWS che supportano Approfondimenti sui container. Per l'elenco delle regioni supportate, consulta Container Insights.

  • kubectl deve essere installato e configurato per il cluster. Per ulteriori informazioni, consulta la pagina relativa all'installazione di kubectl nella Guida per l'utente di Amazon EKS.

  • eksctl deve essere installato. Per ulteriori informazioni, consulta la pagina Installing or updating eksctl nella Guida per l'utente di Amazon EKS.

AWS CLI
Per utilizzare l' AWS CLI installazione del componente aggiuntivo Amazon CloudWatch Observability EKS utilizzando il ruolo dell'account del servizio IAM
  1. Immetti il comando seguente per creare un provider OpenID Connect (OIDC), se il cluster non ne ha già uno. Per ulteriori informazioni, consulta la pagina Configuring a Kubernetes service account to assume an IAM role nella Guida per l'utente di Amazon EKS.

    eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
  2. Immetti il seguente comando per creare il ruolo IAM con la CloudWatchAgentServerPolicypolicy allegata e configura l'account del servizio agente in modo che assuma quel ruolo utilizzando OIDC. Sostituiscilo my-cluster-name con il nome del cluster e sostituiscilo my-service-account-role con il nome del ruolo a cui desideri associare l'account di servizio. Se il ruolo non esiste ancora, eksctl lo crea per tuo conto.

    eksctl create iamserviceaccount \ --name cloudwatch-agent \ --namespace amazon-cloudwatch --cluster my-cluster-name \ --role-name my-service-account-role \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --role-only \ --approve
  3. Installa il componente aggiuntivo immettendo il seguente comando. Sostituiscilo my-cluster-name con il nome del cluster, sostituiscilo 111122223333 con l'ID dell'account e sostituiscilo my-service-account-role con il ruolo IAM creato nel passaggio precedente.

    aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::111122223333:role/my-service-account-role
Amazon EKS console
Per utilizzare la console per installare il componente aggiuntivo Amazon CloudWatch Observability EKS utilizzando il ruolo dell'account del servizio IAM
  1. Apri la console Amazon EKS a https://console.aws.amazon.com/eks/home#/clusters.

  2. Nel pannello di navigazione a sinistra, seleziona Cluster.

  3. Scegli il nome del cluster per cui desideri configurare il componente aggiuntivo Amazon CloudWatch Observability EKS.

  4. Seleziona la scheda Componenti aggiuntivi.

  5. Scegli Ottieni altri componenti aggiuntivi.

  6. Nella pagina Seleziona componenti aggiuntivi, procedi come segue:

    1. Nella sezione Amazon EKS-Addons, seleziona la casella di controllo Amazon CloudWatch Observability.

    2. Scegli Next (Successivo).

  7. Nella pagina Configura le impostazioni dei componenti aggiuntivi selezionati, procedi come segue:

    1. Seleziona la Versione che desideri utilizzare.

    2. Per l'accesso aggiuntivo, seleziona IAM roles for service accounts (IRSA)

    3. Seleziona il ruolo IAM nella casella di accesso aggiuntivo.

    4. (Facoltativo) È possibile espandere le Impostazioni di configurazione facoltative. Se selezioni Sostituisci per Metodo di risoluzione dei conflitti, una o più impostazioni per il componente aggiuntivo esistente possono essere sovrascritte con le impostazioni del componente aggiuntivo di Amazon EKS. Se rimuovi questa opzione e c'è un conflitto con le impostazioni esistenti, l'operazione non va a buon fine e viene visualizzato un messaggio di errore per aiutarti a risolvere il conflitto. Prima di selezionare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che devono essere gestite dall'utente.

    5. Scegli Next (Successivo).

  8. Nella pagina Rivedi e aggiungi, scegli Crea. Una volta completata l'installazione, viene visualizzato il componente aggiuntivo.

Considerazioni sui nodi ibridi Amazon EKS

Le metriche a livello di nodo non sono disponibili per i nodi ibridi perché Container Insights dipendono dalla disponibilità dell'EC2 Instance Metadata Service (IMDS) per le metriche a livello di nodo. Cluster, carico di lavoro, Pode sono disponibili metriche a livello di contenitore per i nodi ibridi.

Dopo aver installato il componente aggiuntivo seguendo i passaggi nelle sezioni precedenti, è necessario aggiornare il manifesto del componente aggiuntivo in modo che l'agente possa funzionare correttamente sui nodi ibridi. Modifica la amazoncloudwatchagents risorsa nel cluster per aggiungere la variabile di RUN_WITH_IRSA ambiente in modo che corrisponda a quanto segue.

kubectl edit amazoncloudwatchagents -n amazon-cloudwatch cloudwatch-agent
apiVersion: v1
       items:
       - apiVersion: cloudwatch.aws.amazon.com/v1alpha1
         kind: AmazonCloudWatchAgent
         metadata:
           ...
           name: cloudwatch-agent
           namespace: amazon-cloudwatch
           ...
         spec:
           ...
           env:
           - name: RUN_WITH_IRSA # <-- Add this
             value: "True" # <-- Add this
           - name: K8S_NODE_NAME
             valueFrom:
               fieldRef:
                 fieldPath: spec.nodeName
                 ...
       

(Facoltativo) Configurazione aggiuntiva

Disattiva la raccolta dei log dei container

Per impostazione predefinita, il componente aggiuntivo utilizza Fluent Bit per raccogliere i log dei contenitori da tutti i pod e quindi invia i log a Logs. CloudWatch Per informazioni su quali log vengono raccolti, consulta la pagina Configurazione di Fluent Bit.

Nota

Né il componente aggiuntivo né il grafico Helm gestiscono le risorse Fluentd o Fluent Bit esistenti in un cluster. È possibile eliminare le risorse Fluentd o Fluent Bit esistenti prima di installare il componente aggiuntivo o il grafico Helm. In alternativa, per mantenere la configurazione esistente ed evitare che il componente aggiuntivo o il diagramma Helm installino anche Fluent Bit, puoi disabilitarla seguendo le istruzioni in questa sezione.

Per disattivare la raccolta dei log dei container se utilizzi il componente aggiuntivo Amazon CloudWatch Observability EKS, utilizza la seguente opzione quando crei o aggiorni il componente aggiuntivo:

--configuration-values '{ "containerLogs": { "enabled": false } }'

Per disattivare la raccolta dei log dei contenitori se utilizzi il grafico Helm, utilizza la seguente opzione quando crei o aggiorni il componente aggiuntivo:

--set containerLogs.enabled=false

Usa una configurazione Fluent Bit personalizzata

A partire dalla versione 1.7.0 del componente aggiuntivo Amazon CloudWatch Observability EKS, puoi modificare la configurazione Fluent Bit quando crei o aggiorni il componente aggiuntivo o il grafico Helm. Fornisci la configurazione Fluent Bit personalizzata nella sezione di livello containerLogs principale della configurazione avanzata del componente aggiuntivo o le sostituzioni dei valori nel grafico Helm. In questa sezione, si fornisce la configurazione Fluent Bit personalizzata nella config sezione (per Linux) o configWindows nella sezione (per Windows). configÈ ulteriormente suddiviso nelle seguenti sottosezioni:

  • service— Questa sezione rappresenta la SERVICE configurazione per definire il comportamento globale del motore Fluent Bit.

  • customParsers— Questa sezione rappresenta tutti PARSER i messaggi globali che si desidera includere in grado di prendere voci di registro non strutturate e fornire loro una struttura per facilitarne l'elaborazione e l'ulteriore filtraggio.

  • extraFiles— Questa sezione può essere utilizzata per fornire conf file Fluent Bit aggiuntivi da includere. Per impostazione predefinita, sono inclusi i seguenti 3 conf file:.

    • application-log.conf— Un conf file per inviare i log delle applicazioni dal cluster al gruppo di log /aws/containerinsights/my-cluster-name/application in CloudWatch Logs.

    • dataplane-log.conf— Un conf file per l'invio dei log corrispondenti ai componenti del piano dati del cluster, inclusi i log CRI, i log kubelet, i log kube-proxy e i log CNI di Amazon VPC VPC, al gruppo di log in Logs. /aws/containerinsights/my-cluster-name/dataplane CloudWatch

    • host-log.conf— Un conf per inviare i log da /var/log/dmesg e su Linux e System su Windows al gruppo di log in. /var/log/messages /var/log/secure winlogs /aws/containerinsights/my-cluster-name/host CloudWatch

Nota

Fornisci la configurazione completa per ciascuna di queste singole sezioni anche se stai modificando solo un campo all'interno di una sottosezione. Ti consigliamo di utilizzare la configurazione predefinita fornita di seguito come base e di modificarla di conseguenza in modo da non disabilitare la funzionalità abilitata di default. Puoi utilizzare la seguente configurazione YAML quando modifichi la configurazione avanzata per il componente aggiuntivo Amazon EKS o quando fornisci sostituzioni di valore per il grafico Helm.

Per trovare la config sezione relativa al tuo cluster, consulta aws-observability/helm-charts su GitHub e trova la versione corrispondente alla versione del componente aggiuntivo o del grafico Helm che stai installando. Quindi vai /charts/amazon-cloudwatch-observability/values.yaml a trovare la config sezione (per Linux) e la sezione (per Windows) all'interno configWindows della sezione sottostante. fluentBit containerLogs

Ad esempio, la configurazione predefinita di Fluent Bit per la versione 1.7.0 è disponibile qui.

Ti consigliamo di fornirlo config come YAML quando lo fornisci utilizzando la configurazione avanzata del componente aggiuntivo Amazon EKS o quando lo fornisci come sostituzioni di valore per l'installazione di Helm. Assicurati che YAML sia conforme alla seguente struttura.

containerLogs: fluentBit: config: service: | ... customParsers: | ... extraFiles: application-log.conf: | ... dataplane-log.conf: | ... host-log.conf: | ...

L'esempio seguente config modifica l'impostazione globale per l'intervallo di lavaggio in 45 secondi. Anche se l'unica modifica riguarda il Flush campo, è comunque necessario fornire la SERVICE definizione completa per la sottosezione del servizio. Poiché questo esempio non ha specificato le sostituzioni per le altre sottosezioni, per esse vengono utilizzate le impostazioni predefinite.

containerLogs: fluentBit: config: service: | [SERVICE] Flush 45 Grace 30 Log_Level error Daemon off Parsers_File parsers.conf storage.path /var/fluent-bit/state/flb-storage/ storage.sync normal storage.checksum off storage.backlog.mem_limit 5M

La configurazione di esempio seguente include un file Fluent bit aggiuntivo. conf In questo esempio, stiamo aggiungendo un my-service.conf under extraFiles personalizzato che verrà incluso in aggiunta ai tre predefinitiextraFiles.

containerLogs: fluentBit: config: extraFiles: my-service.conf: | [INPUT] Name tail Tag myservice.* Path /var/log/containers/*myservice*.log DB /var/fluent-bit/state/flb_myservice.db Mem_Buf_Limit 5MB Skip_Long_Lines On Ignore_Older 1d Refresh_Interval 10 [OUTPUT] Name cloudwatch_logs Match myservice.* region ${AWS_REGION} log_group_name /aws/containerinsights/${CLUSTER_NAME}/myservice log_stream_prefix ${HOST_NAME}- auto_create_group true

Il prossimo esempio rimuove completamente un conf file esistente daextraFiles. Ciò lo esclude application-log.conf completamente sovrascrivendolo con una stringa vuota. La semplice omissione application-log.conf da extraFiles implicherebbe invece l'utilizzo del valore predefinito, che non è quello che stiamo cercando di ottenere in questo esempio. Lo stesso vale per la rimozione di qualsiasi conf file personalizzato a cui potresti aver aggiunto in precedenza. extraFiles

containerLogs: fluentBit: config: extraFiles: application-log.conf: ""

Gestisci le tolleranze di Kubernetes per i carichi di lavoro dei pod installati

A partire dalla versione 1.7.0 del componente aggiuntivo Amazon CloudWatch Observability EKS, il componente aggiuntivo e il grafico Helm impostano per impostazione predefinita le tolleranze di Kubernetes per tollerare tutte le contaminazioni sui carichi di lavoro dei pod installati dal componente aggiuntivo o dal grafico Helm. Ciò garantisce che i daemonset come l'agente e Fluent Bit possano pianificare i pod su tutti i nodi del cluster per impostazione predefinita. CloudWatch Per ulteriori informazioni su tolleranze e contaminazioni, consulta Tinte e tolleranze nella documentazione di Kubernetes.

Le tolleranze predefinite impostate dal componente aggiuntivo o dal grafico Helm sono le seguenti:

tolerations: - operator: Exists

È possibile sovrascrivere le tolleranze predefinite impostando il tolerations campo al livello principale quando si utilizza la configurazione avanzata del componente aggiuntivo o quando si installa o si aggiorna il grafico Helm con sostituzioni di valore. Un esempio potrebbe essere il seguente:

tolerations: - key: "key1" operator: "Exists" effect: "NoSchedule"

Per omettere completamente le tolleranze, puoi usare una configurazione simile alla seguente:

tolerations: []

Qualsiasi modifica alle tolleranze si applica a tutti i carichi di lavoro dei pod installati dal componente aggiuntivo o dal grafico Helm.

Disattiva la raccolta di metriche di calcolo accelerato

Per impostazione predefinita, Container Insights con osservabilità migliorata raccoglie metriche per il monitoraggio di Accelerated Compute, tra cui le metriche della GPU NVIDIA, le metriche AWS Neuron per AWS Trainium e Inferentia e le metriche Elastic Fabric Adapter (EFA). AWS AWS

Le metriche delle GPU NVIDIA dei carichi di lavoro Amazon EKS vengono raccolte per impostazione predefinita a partire dalla versione v1.3.0-eksbuild.1 del componente aggiuntivo EKS o dal grafico Helm e dalla versione dell'agente. 1.300034.0 CloudWatch Per un elenco delle metriche raccolte e dei prerequisiti, consulta. Metriche della GPU NVIDIA

AWS Le metriche Neuron per gli acceleratori AWS Trainium e AWS Inferentia vengono raccolte per impostazione predefinita a partire dalla versione v1.5.0-eksbuild.1 del componente aggiuntivo EKS o dal grafico Helm e dalla versione dell'agente. 1.300036.0 CloudWatch Per un elenco delle metriche raccolte e dei prerequisiti, consulta. AWS Metriche Neuron per Trainium e Inferentia AWSAWS

AWS Le metriche Elastic Fabric Adapter (EFA) dei nodi Linux sui cluster Amazon EKS vengono raccolte per impostazione predefinita a partire dalla versione v1.5.2-eksbuild.1 del componente aggiuntivo EKS o dal grafico Helm e dalla versione dell'agente. 1.300037.0 CloudWatch Per un elenco delle metriche raccolte e dei prerequisiti, consulta. AWS Metriche Elastic Fabric Adapter (EFA)

Puoi scegliere di non raccogliere queste metriche impostando il accelerated_compute_metrics campo nel file di configurazione dell' CloudWatch agente su. false Questo campo si trova nella kubernetes sezione della metrics_collected sezione del file di CloudWatch configurazione. Di seguito è riportato un esempio di configurazione di opt-out. Per ulteriori informazioni su come utilizzare le configurazioni personalizzate degli CloudWatch agenti, vedere la sezione seguente,. Utilizzare una configurazione personalizzata CloudWatch dell'agente

{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true, "accelerated_compute_metrics": false } } } }

Utilizzare una configurazione personalizzata CloudWatch dell'agente

Per raccogliere altre metriche, log o tracce utilizzando l' CloudWatch agente, puoi specificare una configurazione personalizzata mantenendo attivi Container Insights e CloudWatch Application Signals. A tale scopo, incorpora il file di configurazione dell' CloudWatch agente nella chiave di configurazione sotto la chiave dell'agente della configurazione avanzata che puoi utilizzare durante la creazione o l'aggiornamento del componente aggiuntivo EKS o del grafico Helm. Di seguito è rappresentata la configurazione predefinita dell'agente quando non si fornisce alcuna configurazione aggiuntiva.

Importante

Qualsiasi configurazione personalizzata fornita utilizzando impostazioni di configurazione aggiuntive ha la precedenza sulla configurazione predefinita utilizzata dall'agente. Fai attenzione a non disattivare involontariamente funzionalità abilitate di default, come Container Insights con osservabilità migliorata e Application Signals. CloudWatch Se è necessario fornire una configurazione personalizzata dell'agente, consigliamo di utilizzare la seguente configurazione predefinita come base e modificarla di secondo le necessità.

  • Per utilizzare il componente aggiuntivo Amazon CloudWatch observability EKS

    --configuration-values '{ "agent": { "config": { "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } }'
  • Per utilizzare il diagramma Helm

    --set agent.config='{ "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } }'

L'esempio seguente mostra la configurazione predefinita dell' CloudWatch agente in Windows. L' CloudWatch agente su Windows non supporta la configurazione personalizzata.

{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true }, } } }

Gestisci i certificati webhook di ammissione TLS

Il componente aggiuntivo Amazon CloudWatch Observability EKS e il grafico Helm sfruttano i webhook di ammissione di Kubernetes per convalidare e modificare le richieste di risorse (CR) Instrumentation personalizzate AmazonCloudWatchAgent e, facoltativamente, le richieste pod Kubernetes sul cluster se Application Signals è abilitato. CloudWatch In Kubernetes, i webhook richiedono un certificato TLS configurato per stabilire una relazione di attendibilità con il server API per garantire una comunicazione sicura.

Per impostazione predefinita, il componente aggiuntivo Amazon CloudWatch Observability EKS e il grafico Helm generano automaticamente una CA autofirmata e un certificato TLS firmato da questa CA per proteggere la comunicazione tra il server API e il server webhook. Questo certificato generato automaticamente ha una scadenza predefinita di 10 anni e non viene rinnovato automaticamente alla scadenza. Inoltre, il pacchetto CA e il certificato vengono rigenerati ogni volta che il componente aggiuntivo o il grafico Helm vengono aggiornati o reinstallati, ripristinando così la scadenza. Se desideri modificare la scadenza predefinita del certificato generato automaticamente, puoi utilizzare le seguenti configurazioni aggiuntive durante la creazione o l'aggiornamento del componente aggiuntivo. Sostituiscilo con la durata di scadenza desiderata in giorni. expiry-in-days

  • Usalo per il componente aggiuntivo Amazon CloudWatch Observability EKS

    --configuration-values '{ "admissionWebhooks": { "autoGenerateCert": { "expiryDays": expiry-in-days } } }'
  • Usalo per il grafico Helm

    --set admissionWebhooks.autoGenerateCert.expiryDays=expiry-in-days

Per una soluzione di autorità di certificazione più sicura e ricca di funzionalità, il componente aggiuntivo offre il supporto opt-in per cert-manager, una soluzione ampiamente adottata per la gestione dei certificati TLS in Kubernetes che semplifica il processo di ottenimento, rinnovo, gestione e utilizzo di tali certificati. Garantisce che i certificati siano validi e aggiornati e tenta di rinnovarli in un momento impostato prima della scadenza. cert-manager facilita anche l'emissione di certificati da una varietà di fonti supportate, tra cui AWS Certificate Manager Private Certificate Authority.

Ti consigliamo di esaminare le best practice per la gestione dei certificati TLS sui tuoi cluster e di scegliere di utilizzare cert-manager per gli ambienti di produzione. Tieni presente che se scegli di abilitare cert-manager per la gestione dei certificati TLS del webhook di ammissione, devi preinstallare cert-manager sul tuo cluster Amazon EKS prima di installare il componente aggiuntivo Amazon Observability EKS o il grafico Helm CloudWatch . Per ulteriori informazioni sulle opzioni di installazione disponibili, consulta la documentazione di cert-manager. Dopo averlo installato, puoi scegliere di utilizzare cert-manager per la gestione dei certificati TLS del webhook di ammissione utilizzando la seguente configurazione aggiuntiva.

  • Se utilizzi il componente aggiuntivo Amazon CloudWatch Observability EKS

    --configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'
  • Se utilizzi la tabella Helm

    --set admissionWebhooks.certManager.enabled=true
--configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'

La configurazione avanzata discussa in questa sezione utilizzerà per impostazione predefinita un SelfSignedemittente.

Raccogli il volume Amazon EBS IDs

Se desideri raccogliere il volume Amazon EBS IDs nei log delle prestazioni, devi aggiungere un'altra policy al ruolo IAM collegata ai nodi di lavoro o all'account di servizio. Aggiungi quanto segue come una policy inline. Per ulteriori informazioni, consulta la pagina Adding and Removing IAM Identity Permissions.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolumes" ], "Resource": "*", "Effect": "Allow" } ] }

Risoluzione dei problemi relativi al componente aggiuntivo Amazon CloudWatch Observability EKS o al grafico Helm

Utilizza le seguenti informazioni per risolvere i problemi con il componente aggiuntivo Amazon CloudWatch Observability EKS o il grafico Helm

Aggiornamento ed eliminazione del componente aggiuntivo Amazon CloudWatch Observability EKS o del grafico Helm

Per istruzioni sull'aggiornamento o l'eliminazione del componente aggiuntivo Amazon CloudWatch Observability EKS, consulta Managing Amazon EKS add-on. Usa amazon-cloudwatch-observability come nome del componente aggiuntivo.

Per eliminare il grafico Helm in un cluster, inserisci il seguente comando.

helm delete amazon-cloudwatch-observability -n amazon-cloudwatch --wait

Verifica la versione dell' CloudWatch agente utilizzato dal componente aggiuntivo Amazon CloudWatch Observability EKS o dal grafico Helm

Il componente aggiuntivo Amazon CloudWatch Observability EKS e il grafico Helm installano una risorsa personalizzata AmazonCloudWatchAgent che controlla il comportamento del daemset dell' CloudWatchagente sul cluster, inclusa la versione dell'agente utilizzata. CloudWatch È possibile ottenere un elenco di tutte le risorse AmazonCloudWatchAgent personalizzate installate sul cluster u immettendo il seguente comando:

kubectl get amazoncloudwatchagent -A

Nell'output di questo comando, dovresti essere in grado di controllare la versione dell'agente. CloudWatch In alternativa, puoi anche descrivere la risorsa amazoncloudwatchagent o uno dei pod cloudwatch-agent-* in esecuzione sul cluster per ispezionare l'immagine utilizzata.

Gestione di un ConfigurationConflict durante la gestione del componente aggiuntivo o del grafico Helm

Quando installi o aggiorni il componente aggiuntivo Amazon CloudWatch Observability EKS o il grafico Helm, se noti un errore causato dalle risorse esistenti, probabilmente è perché hai già l' CloudWatch agente e i relativi componenti associati come ServiceAccount, il ClusterRole e il ClusterRoleBinding installato nel cluster.

L'errore visualizzato dal componente aggiuntivo includerà, Conflicts found when trying to apply. Will not continue due to resolve conflicts mode

L'errore visualizzato dal grafico Helm sarà simile a. Error: INSTALLATION FAILED: Unable to continue with install and invalid ownership metadata.

Quando il componente aggiuntivo o il grafico Helm tenta di installare l' CloudWatch agente e i componenti associati, se rileva modifiche nei contenuti, per impostazione predefinita non riesce a eseguire l'installazione o l'aggiornamento per evitare di sovrascrivere lo stato delle risorse nel cluster.

Se stai tentando di effettuare l'onboarding al componente aggiuntivo Amazon CloudWatch Observability EKS e riscontri questo errore, ti consigliamo di eliminare una configurazione di CloudWatch agente esistente che avevi precedentemente installato sul cluster e quindi di installare il componente aggiuntivo EKS o il grafico Helm. Assicurati di eseguire il backup di tutte le personalizzazioni che potresti aver apportato alla configurazione originale dell' CloudWatch agente, ad esempio una configurazione personalizzata dell'agente, e di fornirle al componente aggiuntivo o al diagramma di Helm alla successiva installazione o aggiornamento. Se in precedenza avevi installato l' CloudWatch agente per l'onboarding su Container Insights, consulta per ulteriori informazioni. Eliminazione dell' CloudWatch agente e di Fluent Bit for Container Insights

In alternativa, il componente aggiuntivo supporta un'opzione di configurazione per la risoluzione dei conflitti che può specificare OVERWRITE. È possibile utilizzare questa opzione per procedere con l'installazione o l'aggiornamento del componente aggiuntivo sovrascrivendo i conflitti nel cluster. Se utilizzi la console Amazon EKS, trovi il metodo di risoluzione dei conflitti selezionando le impostazioni di configurazione facoltative quando crei o aggiorni il componente aggiuntivo. Se utilizzi il AWS CLI, puoi fornire il comando --resolve-conflicts OVERWRITE al tuo comando per creare o aggiornare il componente aggiuntivo.

Raccogli le metriche di Java Management Extensions (JMX)

L' CloudWatch agente supporta la raccolta di metriche Java Management Extensions (JMX) su Amazon EKS. Ciò consente di raccogliere parametri aggiuntivi dalle applicazioni Java in esecuzione su cluster Amazon EKS, consentendo informazioni dettagliate su prestazioni, utilizzo della memoria, traffico e altri parametri critici. Per ulteriori informazioni, consulta Raccogli le metriche di Java Management Extensions (JMX).

Abilita le metriche Kueue

A partire dalla versione v2.4.0-eksbuild.1 del componente aggiuntivo CloudWatch Observability EKS, Container Insights for Amazon EKS supporta la raccolta di metriche Kueue dai cluster Amazon EKS. Per ulteriori informazioni su questi parametri, consulta Metriche Kueue .

Se utilizzi il componente aggiuntivo Amazon SageMaker AI Hyperpod Task Governance EKS, puoi saltare i passaggi nella sezione Prerequisiti e seguire semplicemente i passaggi indicati. Abilita il flag di configurazione

Prerequisiti

Prima di installare Kueue nel cluster Amazon EKS, apporta i seguenti aggiornamenti nel file manifest:

  1. Abilita i parametri opzionali delle risorse della coda del cluster per Kueue. Per fare ciò, modifica la linea in. controller_manager_config.yaml kueue-system ConfigMap Nella metrics sezione, aggiungi o decommenta la riga. enableClusterQueueResources: true

    apiVersion: v1 data: controller_manager_config.yaml: | apiVersion: config.kueue.x-k8s.io/v1beta1 kind: Configuration health: healthProbeBindAddress: :8081 metrics: bindAddress: :8080 enableClusterQueueResources: true <-- ADD/UNCOMMENT THIS LINE
  2. Per impostazione predefinita, tutti i k8s servizi sono disponibili a livello di cluster. Kueue crea un servizio kueue-controller-manager-metrics-service per esporre le metriche. Per evitare osservazioni duplicate per le metriche, modifica questo servizio per consentire l'accesso solo al servizio di metrica dallo stesso nodo. Per fare ciò, aggiungi la riga internalTrafficPolicy: Local alla definizione. kueue-controller-manager-metrics-service

    apiVersion: v1 kind: Service metadata: labels: ... name: kueue-controller-manager-metrics-service namespace: kueue-system spec: ports: - name: https port: 8443 protocol: TCP targetPort: https internalTrafficPolicy: Local <-- ADD THIS LINE selector: control-plane: controller-manager
  3. Infine, il kueue-controller-manager pod crea un kube-rbac-proxy contenitore. Questo contenitore ha attualmente un alto livello di verbosità di registrazione, il che fa sì che il token bearer del cluster venga registrato da quel contenitore quando il metrics scraper accede a. kueue-controller-manager-metrics-service Ti consigliamo di ridurre questa verbosità di registrazione. Il valore predefinito nel manifesto distribuito da Kueue è 10, si consiglia di cambiarlo su 0.

    apiVersion: apps/v1 kind: Deployment metadata: labels: ... name: kueue-controller-manager namespace: kueue-system spec: ... template: ... spec: containers: ... - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=0 <-- CHANGE v=10 TO v=0 image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 name: kube-rbac-proxy ...

Abilita il flag di configurazione

Per abilitare le metriche Kueue, è necessario abilitarle kueue_container_insights nella configurazione aggiuntiva del componente aggiuntivo. Puoi farlo utilizzando AWS CLI per configurare il componente aggiuntivo EKS Observability o utilizzando la console Amazon EKS.

Dopo aver installato correttamente il componente aggiuntivo EKS Observability con uno dei seguenti metodi, puoi visualizzare i parametri del cluster Amazon EKS nella scheda Dashboard della HyperPod console.

AWS CLI
Per abilitare le metriche Kueue utilizzando il AWS CLI
  • Immettete il seguente AWS CLI comando per installare il componente aggiuntivo.

    aws eks create-addon --cluster-name cluster-name --addon-name amazon-cloudwatch-observability --configuration-values "configuration_json_file"

    Di seguito è riportato un esempio del file JSON con i valori di configurazione.

    { "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "kueue_container_insights": true, "enhanced_container_insights": true }, "application_signals": { } } }, "traces": { "traces_collected": { "application_signals": { } } } }, }, }
Amazon EKS console
Per abilitare i parametri Kueue utilizzando la console Amazon EKS
  1. Apri la console Amazon EKS a https://console.aws.amazon.com/eks/home#/clusters.

  2. Scegli il nome del cluster.

  3. Scegli Componenti aggiuntivi.

  4. Trova il componente aggiuntivo Amazon CloudWatch Observability nell'elenco e installalo. Quando lo fai, scegli Configurazione opzionale e includi i seguenti valori di configurazione JSON.

    { "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "kueue_container_insights": true, "enhanced_container_insights": true }, "application_signals": { } } }, "traces": { "traces_collected": { "application_signals": { } } } }, }, }

Aggiungere file di configurazione del OpenTelemetry collettore

L' CloudWatch agente supporta file di configurazione dei OpenTelemetry raccoglitori supplementari oltre ai propri file di configurazione. Questa funzionalità consente di utilizzare funzionalità CloudWatch dell'agente come CloudWatch Application Signals o Container Insights tramite la configurazione dell' CloudWatch agente e di inserire la configurazione del OpenTelemetry raccoglitore esistente con un singolo agente.

Per evitare conflitti di fusione con le pipeline create automaticamente dall' CloudWatch agente, si consiglia di aggiungere un suffisso personalizzato a ciascuno dei componenti e delle pipeline nella configurazione del collettore. OpenTelemetry In questo modo si eviteranno scontri e conflitti di unione.

  • Se utilizzi il componente aggiuntivo Amazon CloudWatch Observability EKS

    --configuration-values file://values.yaml

    oppure

    --configuration-values ' agent: otelConfig: receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '
  • Se utilizzi la tabella Helm

    --set agent.otelConfig=' receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '