Configuração de início rápido para o Container Insights no Amazon EKS e no Kubernetes - Amazon CloudWatch

Configuração de início rápido para o Container Insights no Amazon EKS e no Kubernetes

Importante

Se estiver instalando o Container Insights em um cluster do Amazon EKS, recomendamos que use o complemento de observabilidade do EKS do Amazon CloudWatch para a instalação em vez de usar as instruções desta seção. Além disso, para recuperar redes com computação acelerada, use o complemento Amazon CloudWatch Observability EKS. Para mais informações e instruções, consulte Instalar o complemento Amazon CloudWatch Observability do EKS.

Para concluir a configuração do Container Insights, siga as instruções de início rápido nesta seção. Se estiver instalando em um cluster do Amazon EKS e usar as instruções desta seção em ou após 6 de novembro de 2023, você instalará o Container Insights com observabilidade aprimorada para o Amazon EKS no cluster.

Importante

Antes de executar as etapas desta seção, você deve ter verificado os pré-requisitos, inclusive as permissões do IAM. Para obter mais informações, consulte Verifique os pré-requisitos do .

Como alternativa, você pode seguir as instruções nas duas seções a seguir, Configurar o atendente do CloudWatch para coletar métricas do cluster e Enviar logs ao CloudWatch Logs. Essas seções fornecem mais detalhes sobre como o atendente do CloudWatch funciona com o Amazon EKS e o Kubernetes, mas necessitam que você execute mais etapas de instalação.

Com a versão original do Container Insights, as métricas coletadas e os registros ingeridos são cobrados como métricas personalizadas. Com o Container Insights com observabilidade aprimorada para o Amazon EKS, as métricas e os logs do Container Insights são cobrados por observação em vez de serem cobrados por métrica armazenada ou log ingerido. Para obter mais informações sobre os preços do CloudWatch, consulte Preço do Amazon CloudWatch.

nota

A Amazon agora lançou o Fluent Bit como a solução de log padrão para o Container Insights com ganhos consideráveis de performance. Recomendamos usar o Fluent Bit em vez do Fluentd.

Início rápido com o atendente do CloudWatch e o Fluent Bit

Existem duas configurações para Fluent Bit: uma versão otimizada e uma versão que fornece uma experiência mais semelhante ao Fluentd. A configuração de início rápido usa a versão otimizada. Para obter mais detalhes sobre a configuração compatível com o Fluentd, consulte Configurar o Fluent Bit como um DaemonSet para enviar logs ao CloudWatch Logs.

Para implantar o Container Insights usando o início rápido, insira o comando a seguir.

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 -

Nesse comando, my-cluster-name é o nome do cluster do Amazon EKS ou do Kubernetes, e my-cluster-region é o nome da região onde os logs são publicados. Recomendamos usar a mesma região em que o cluster está implantado para reduzir os custos de transferência de dados de saída da AWS.

Por exemplo, para implantar o Container Insights no cluster chamado MyCluster e publicar os logs e as métricas em Oeste dos EUA (Oregon), insira o comando a seguir.

ClusterName='MyCluster' LogRegion='us-west-2' 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}}/'${LogRegion}'/;s/{{http_server_toggle}}/"'${FluentBitHttpServer}'"/;s/{{http_server_port}}/"'${FluentBitHttpPort}'"/;s/{{read_from_head}}/"'${FluentBitReadFromHead}'"/;s/{{read_from_tail}}/"'${FluentBitReadFromTail}'"/' | kubectl apply -f -

Migrar do Fluentd

Se você já tiver o Fluentd configurado e quiser mover para o Fluent Bit, será necessário excluir os pods do Fluentd após instalar o Fluent Bit. É possível usar os comandos a seguir para excluir o Fluentd.

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/fluentd/fluentd.yaml | kubectl delete -f - kubectl delete configmap cluster-info -n amazon-cloudwatch

Excluir o Container Insights

Para remover o Container Insights depois de usar a configuração de início rápido, insira o comando a seguir.

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.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/;s/{{region_name}}/'${LogRegion}'/;s/{{http_server_toggle}}/"'${FluentBitHttpServer}'"/;s/{{http_server_port}}/"'${FluentBitHttpPort}'"/;s/{{read_from_head}}/"'${FluentBitReadFromHead}'"/;s/{{read_from_tail}}/"'${FluentBitReadFromTail}'"/' | kubectl delete -f -

Início rápido com o atendente do CloudWatch e o Fluentd

Se você já estiver usando o Fluentd em seu cluster do Kubernetes e desejar estendê-lo para ser a solução de log do Container Insights, fornecemos uma configuração Fluentd para isso.

Atenção

O suporte ao Container Insights para o Fluentd está agora em modo de manutenção, o que significa que a AWS não fornecerá outras atualizações do Fluentd e que estamos planejando descontinuá-lo em um futuro próximo. Além disso, a configuração atual do Fluentd para o Container Insights está usando uma versão antiga da imagem do Fluentd fluent/fluentd-kubernetes-daemonset:v1.10.3-debian-cloudwatch-1.0 que não tem os últimos patches de melhorias e segurança. Para obter a imagem do Fluentd mais recente com suporte na comunidade de código aberto, consulte fluentd-kubernetes-daemonset.

É altamente recomendável migrar para usar o FluentBit com o Container Insights sempre que possível. Usar o FluentBit como encaminhador de log para o Container Insights proporciona ganhos consideráveis de performance.

Para obter mais informações, consulte Configurar o Fluent Bit como um DaemonSet para enviar logs ao CloudWatch Logs e O que se difere se você já estiver usando Fluentd.

Para implantar o atendente do CloudWatch e o Fluentd com o início rápido, use o comando a seguir. A configuração a seguir contém uma imagem de contêiner do Fluentd com suporte na comunidade, compatível com as versões 1.24 e posteriores do Amazon EKS. É possível substituir a imagem por sua própria imagem do Fluentd, desde que ela atenda aos requisitos de imagem do Fluentd. Para obter mais informações, consulte (Opcional) Configurar o Fluentd como um DaemonSet para enviar logs ao CloudWatch Logs.

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/quickstart/cwagent-fluentd-quickstart-enhanced.yaml | sed "s/{{cluster_name}}/cluster-name/;s/{{region_name}}/cluster-region/" | kubectl apply -f -

Nesse comando, cluster-name é o nome do cluster do Amazon EKS ou do Kubernetes, e cluster-region é o nome da região onde os logs são publicados. Recomendamos usar a mesma região em que o cluster está implantado para reduzir os custos de transferência de dados de saída da AWS.

Por exemplo, para implantar o Container Insights no cluster chamado MyCluster e publicar os logs e as métricas em Oeste dos EUA (Oregon), insira o comando a seguir.

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/quickstart/cwagent-fluentd-quickstart.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/us-west-2/" | kubectl apply -f -

Excluir o Container Insights

Para remover o Container Insights depois de usar a configuração de início rápido, insira o comando a seguir.

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/quickstart/cwagent-fluentd-quickstart.yaml | sed "s/{{cluster_name}}/cluster-name/;s/{{region_name}}/cluster-region/" | kubectl delete -f -