Come posso risolvere i problemi di configurazione quando integro Fluent Bit con gli approfondimenti sui container per Amazon EKS?
Desidero risolvere i problemi di configurazione quando integro Fluent Bit con gli approfondimenti sui container Amazon Cloudwatch per Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descrizione
Nota: è consigliabile utilizzare Fluent Bit anziché Fluentd. Per ulteriori informazioni, consulta Send logs to CloudWatch Logs.
Per consentire a Fluent Bit di consegnare i log dei container a CloudWatch Logs, devi concedere le autorizzazioni AWS Identity and Access Management (IAM) a Fluent Bit. Per ulteriori informazioni, consulta Verify prerequisites.
Per utilizzare gli approfondimenti sui container con Fluent bit, configura un ruolo IAM per l'account di servizio (IRSA), quindi implementa gli approfondimenti sui container nel tuo cluster EKS.
Soluzione
Configura gli approfondimenti sui container con Fluent Bit
Usa la policy gestita da AWS CloudWatchAgentServerPolicy per creare un cloudwatch-agent e un account di servizio fluent-bit.
Completa i seguenti passaggi:
-
Per impostare le variabili di ambiente, esegui i comandi seguenti:
export CLUSTER=clustername export AWS_REGION=awsregion
Nota: sostituisci clustername, awsregion con il nome del tuo cluster e la regione AWS.
-
Esegui il seguente comando eksctl per creare un account di servizio CloudWatch-Agent con IRSA:
eksctl create iamserviceaccount \ --name cloudwatch-agent \ --namespace amazon-cloudwatch \ --cluster $CLUSTER \ --attach-policy-arn "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy" \ --approve \ --override-existing-serviceaccounts
-
Esegui il seguente comando eksctl per creare l'account di servizio Fluent Bit con IRSA:
eksctl create iamserviceaccount \ --name fluent-bit \ --namespace amazon-cloudwatch \ --cluster $CLUSTER \ --attach-policy-arn "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy" \ --approve \ --override-existing-serviceaccounts
-
Per utilizzare l'avvio rapido per implementare gli approfondimenti sui container, esegui il seguente comando
:ClusterName=<my-cluster-name> RegionName=<my-cluster-region> FluentBitHttpPort='2020' FluentBitReadFromHead='Off' [[ ${FluentBitReadFromHead} = 'On' ]] && FluentBitReadFromTail='Off'|| FluentBitReadFromTail='On' [[ -z ${FluentBitHttpPort} ]] && FluentBitHttpServer='Off' || FluentBitHttpServer='On' curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/quickstart/cwagent-fluent-bit-quickstart-enhanced.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/;s/{{region_name}}/'${RegionName}'/;s/{{http_server_toggle}}/"'${FluentBitHttpServer}'"/;s/{{http_server_port}}/"'${FluentBitHttpPort}'"/;s/{{read_from_head}}/"'${FluentBitReadFromHead}'"/;s/{{read_from_tail}}/"'${FluentBitReadFromTail}'"/' | kubectl apply -f -
Nota: sostituisci my-cluster-name e my-cluster-region con il nome e la regione del tuo cluster. Il comando precedente crea ClusterRole, ClusterRoleBinding, ConfigMap e DaemonSet per l'agente CloudWatch e Fluent Bit.
-
Esegui il comando seguente per convalidare l'implementazione dell'agente CloudWatch e di Fluent Bit:
kubectl get pods -n amazon-cloudwatch
Al termine dell’implementazione, l'agente CloudWatch crea il gruppo di log /aws/containerinsights/Cluster_Name/performance.
Fluent Bit crea i gruppi di log /aws/containerinsights/Cluster_Name/application, /aws/containerinsights/Cluster_Name/host e /aws/containerinsights/Cluster_Name/dataplane.
Risolvi i problemi di configurazione di Fluent Bit
I pod Fluent Bit si bloccano
Per verificare la presenza di messaggi di errore nei log del pod Fluent Bit, completa i seguenti passaggi:
-
Esegui i seguenti comandi per trovare gli eventi dei pod Fluent Bit:
kubectl -n amazon-cloudwatch logs -l k8s-app=fluent-bit kubectl -n amazon-cloudwatch describe pod fluent_pod pod_name
-
Verifica che cluster-info sia accurato e non contenga errori di sintassi.
-
Verifica che tutti i valori relativi al nome del cluster e alla regione siano impostati. Per ulteriori informazioni, consulta amazon-cloudwatch-container-insights sul sito web di GitHub.
Fluent Bit non invia i log a CloudWatch
Completa i seguenti passaggi per risolvere il problema:
-
Verifica che il plug-in di output sia impostato correttamente nel file di configurazione di Fluent Bit. Per verificare se ci sono errori di spedizione dei dati, esegui il seguente comando per visualizzare i log del pod Fluent Bit:
kubectl -n amazon-cloudwatch logs fluent_pod_name
-
Assicurati che i pod Fluent Bit dispongano delle autorizzazioni IAM necessarie per creare gruppi di log e trasmettere log a CloudWatch. È necessario che la policy CloudWatchAgentServerPolicy sia collegata al ruolo IAM indicato nell'account di servizio di Fluent-bit.
Se hai utilizzato IRSA, devi collegare il ruolo IAM ai nodi worker. Per ulteriori informazioni, consulta Come si risolvono gli errori IRSA in Amazon EKS?
Se non vedi i log delle applicazioni particolari, verifica che l'applicazione possa essere eseguita. Quindi, verifica se l'applicazione è in grado di generare altri tipi di log. Se l'applicazione viene eseguita e vengono generati i log, controlla i log del pod Fluent-bit per vedere se vengono inviati errori specifici a CloudWatch.
I pod Fluent Bit sono bloccati nello stato CreateContainerConfigError
Esegui il comando seguente per ottenere il messaggio di errore esatto:
kubectl describe pod pod_name -n amazon-cloudwatch
Nella sezione Eventi dell'output del comando, cerca un messaggio di errore come il seguente:
Error syncing pod ("fluent-bit-xxxxxxx"), skipping: failed to "StartContainer" with CreateContainerConfigError: "configmap \"fluent-bit-config\" not found"
Se viene visualizzato il messaggio di errore precedente, significa che manca ConfigMap for Fluent Bit (****fluent-bit-config). Ripeti il passaggio 4 nella sezione Configura approfondimenti sui container con Fluent Bit per questo articolo.
Informazioni correlate
Set up the CloudWatch agent to collect cluster metrics
Avvio rapido con l'operatore dell' CloudWatch agente e Fluent Bit
Activate debug logging sul sito Web GitHub

Contenuto pertinente
- AWS UFFICIALEAggiornata 2 mesi fa
- AWS UFFICIALEAggiornata un mese fa
- AWS UFFICIALEAggiornata 17 giorni fa
- AWS UFFICIALEAggiornata 2 anni fa