Como faço para solucionar problemas de configuração quando integro o Fluent Bit com o Container Insights para o Amazon EKS?
Quero solucionar problemas de configuração quando integro o Fluent Bit com o Amazon CloudWatch Container Insights para o Amazon Elastic Kubernetes Service (Amazon EKS).
Breve descrição
Observação: é uma prática recomendada usar o Fluent Bit em vez do Fluentd. Para obter mais informações, consulte Enviar logs ao CloudWatch Logs.
Para permitir que o Fluent Bit forneça logs de contêineres ao CloudWatch Logs, você deve conceder permissões do AWS Identity and Access Management (IAM) ao Fluent Bit. Para obter mais informações, consulte Verifique os pré-requisitos.
Para usar o Container Insights com o Fluent bit, configure um perfil do IAM para a conta de serviço (IRSA) e implante o Container Insights no seu cluster do EKS.
Resolução
Configurar o Container Insights com o Fluent Bit
Use a política gerenciada do AWS CloudWatchAgentServerPolicy para criar uma conta de serviço cloudwatch-agent e fluent-bit.
Conclua as seguintes etapas:
-
Execute os seguintes comandos para configurar as variáveis de ambiente:
export CLUSTER=clustername export AWS_REGION=awsregion
Observação: substitua clustername, awsregion por seu próprio nome de cluster e região da AWS.
-
Execute o seguinte comando eksctl para criar uma conta de serviço CloudWatch-agent com 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
-
Execute o seguinte comando eksctl para criar a conta de serviço do Fluent Bit com 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
-
Para usar o início rápido para implantar o Container Insights, execute o seguinte 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 -
Observação: substitua my-cluster-name e my-cluster-region por seu próprio nome de cluster e região. O comando anterior cria um ClusterRole, ClusterRoleBinding, ConfigMap e DaemonSet para o agente do CloudWatch e o Fluent Bit.
-
Execute o seguinte comando para validar a implantação do agente do CloudWatch e do Fluent Bit:
kubectl get pods -n amazon-cloudwatch
Quando a implementação estiver concluída, o agente do CloudWatch criará o grupo de logs /aws/containerinsights/Cluster_Name/performance.
O Fluent Bit cria os grupos de registro /aws/containerinsights/Cluster_Name/application, /aws/containerinsights/Cluster_Name/host e /aws/containerinsights/Cluster_Name/dataplane.
Solucionar problemas de configuração do Fluent Bit
Falha nos pods do Fluent Bit
Para verificar se há mensagens de erro nos logs do pod do Fluent Bit, conclua as etapas a seguir:
-
Execute os seguintes comandos para localizar eventos de pods do Fluent Bit:
kubectl -n amazon-cloudwatch logs -l k8s-app=fluent-bit kubectl -n amazon-cloudwatch describe pod fluent_pod pod_name
-
Verifique se o endereço cluster-info está correto e não contém erros de sintaxe.
-
Verifique se todos os valores de nome e região do cluster estão definidos. Para obter mais informações, consulte amazon-cloudwatch-container-insights no site do GitHub.
O Fluent Bit não envia logs ao CloudWatch
Conclua as etapas a seguir para solucionar o problema:
-
Verifique se o plug-in de saída está configurado corretamente no arquivo de configuração do Fluent Bit. Para verificar se há algum erro de envio de dados, execute o seguinte comando para visualizar os logs do pod do Fluent Bit:
kubectl -n amazon-cloudwatch logs fluent_pod_name
-
Certifique-se de que os pods do Fluent Bit tenham as permissões do IAM necessárias para criar grupos de logs e transmitir logs ao CloudWatch. Você deve ter a política do IAM CloudWatchAgentServerPolicy anexada ao perfil do IAM que está anotado na conta de serviço fluent-bit.
Se você usou o IRSA, deverá anexar o perfil do IAM aos nós de processamento. Para obter mais informações, consulte Como faço para solucionar erros de IRSA no Amazon EKS?
Se você não vir logs de aplicativos específicos, confirme se a aplicação pode ser executado. Em seguida, confirme se a aplicação pode gerar outros tipos de logs. Se a aplicação for executada e os logs forem gerados, verifique os logs do pod fluent-bit para ver se erros específicos são enviados ao CloudWatch.
Os pods do Fluent Bit estão presos no status CreateContainerConfigError
Execute o seguinte comando para obter a mensagem de erro exata:
kubectl describe pod pod_name -n amazon-cloudwatch
Na seção Eventos da saída do comando, procure uma mensagem de erro como a seguinte:
Error syncing pod ("fluent-bit-xxxxxxx"), skipping: failed to "StartContainer" with CreateContainerConfigError: "configmap \"fluent-bit-config\" not found"
Se você vir a mensagem de erro anterior, o ConfigMap do Fluent Bit (fluent-bit-config) está ausente. Repita a etapa 4 na seção Configurar o Container Insights com o Fluent Bit deste artigo.
Informações relacionadas
Configurar o atendente do CloudWatch para coletar métricas do cluster
Início rápido ao usar o operador do agente do CloudWatch e o Fluent Bit
Activate debug logging no site do GitHub

Conteúdo relevante
- feita há 2 meseslg...
- Resposta aceitafeita há 2 meseslg...
- feita há 3 meseslg...
- AWS OFICIALAtualizada há 2 meses
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há 3 meses