Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Solução do CloudWatch: workload do Kafka no Amazon EC2

Modo de foco
Solução do CloudWatch: workload do Kafka no Amazon EC2 - Amazon CloudWatch

Esta solução auxilia na configuração da coleta de métricas prontas para uso com agentes do CloudWatch para workloads do Kafka (agentes, produtores e consumidores) que estão sendo executadas em instâncias do EC2. Além disso, a solução ajuda na configuração de um painel do CloudWatch configurado previamente. Para obter informações gerais sobre todas as soluções de observabilidade do CloudWatch, consulte Soluções de observabilidade do CloudWatch.

Requisitos

Esta solução é aplicável nas seguintes condições:

Benefícios

A solução disponibiliza monitoramento do servidor do Kafka, fornecendo insights valiosos para os seguintes casos de uso:

  • Monitoramento da integridade do cluster do Kafka por meio de métricas de replicação e de sincronização.

  • Rastreamento da performance do agente por meio de falhas de solicitação e tempos de latência, juntamente com o tráfego de rede.

  • Monitoramento de erros por parte do produtor ou do consumidor, tempos de latência e atrasos do consumidor.

  • Análise da performance subjacente da JVM para clusters do Kafka.

  • Alternância entre diversos clusters, produtores e consumidores do Kafka configurados por meio da solução na mesma conta.

A seguir, apresentamos as principais vantagens da solução:

  • Automatiza a coleta de métricas para o Kafka e para a JVM subjacente usando a configuração do agente do CloudWatch, o que elimina a necessidade de instrumentação manual.

  • Fornece um painel do CloudWatch consolidado e configurado previamente para as métricas do Kafka e da JVM. O painel gerenciará automaticamente as métricas das novas instâncias do EC2 para o Kafka que foram configuradas usando a solução, mesmo que essas métricas não estejam disponíveis no momento de criação do painel. Além disso, o painel permite agrupar as métricas em aplicações lógicas para facilitar o foco e o gerenciamento.

A imagem apresentada a seguir é um exemplo do painel para esta solução.

Kafka cluster dashboard showing metrics like partitions, request times, and failure rates.

Custos

Esta solução cria e usa recursos em sua conta. A cobrança será realizada com base no uso padrão, que inclui o seguinte:

  • Todas as métricas coletadas pelo agente do CloudWatch são cobradas como métricas personalizadas. O número de métricas usadas por esta solução depende do número de hosts do EC2.

    • Cada host do agente configurado para a solução publica 33 métricas, além de uma métrica (disk_used_percent) cuja contagem de métricas para cada host do EC2 depende do número de caminhos dos discos fornecidos para este host.

    • Cada host produtor configurado para a solução publica três métricas com a dimensão topic e três métricas sem a dimensão topic. Para as métricas com a dimensão topic, cada tópico é contabilizado como uma métrica distinta.

    • Cada host consumidor configurado para a solução publica duas métricas com dimensões topic e três métricas sem dimensões topic. Para as métricas com a dimensões “topic”, cada tópico é contabilizado como uma métrica distinta.

  • Um painel personalizado.

  • As operações da API solicitadas pelo agente do CloudWatch para publicar as métricas. Com a configuração padrão para esta solução, o agente do CloudWatch chama a operação PutMetricData uma vez por minuto para cada host do EC2. Isso significa que a API PutMetricData será chamada 30*24*60=43,200 em um mês com 30 dias para cada host do EC2.

Para obter mais informações sobre os preços do CloudWatch, consulte Preço do Amazon CloudWatch.

A calculadora de preços pode ajudar a estimar os custos mensais aproximados para o uso desta solução.

Como usar a calculadora de preços para estimar os custos mensais da solução
  1. Abra a calculadora de preços do Amazon CloudWatch.

  2. Na seção Métricas, em Número de métricas, insira broker_metrics_count + producer_metrics_count + consumer_metrics_count. Calcule estas métricas da seguinte forma:

    • broker_metrics_count = (33 + número médio de caminhos do disco por host do EC2) * number_of_ec2_broker_hosts

    • producer_metrics_count = (3 * average_number_of_topics_per_producer_host + 3) * number_of_ec2_producer_hosts

    • consumer_metrics_count = (2 * average_number_of_topics_per_consumer_host + 3) * number_of_ec2_consumer_hosts

  3. Na seção APIs, em Número de solicitações de API, insira 43200 * number of EC2 instances configured for this solution.

    Por padrão, o agente do CloudWatch executa uma operação PutMetricData a cada minuto para cada host do EC2.

  4. Na seção Painéis e alarmes, em Número de painéis, insira 1.

  5. É possível visualizar os custos mensais estimados na parte inferior da calculadora de preços.

Configuração do agente do CloudWatch para esta solução

O agente do CloudWatch é um software que opera de maneira contínua e autônoma em seus servidores e em ambientes com contêineres. Ele coleta métricas, logs e rastreamentos da infraestrutura e das aplicações e os envia para o CloudWatch e para o X-Ray.

Para obter mais informações sobre o agente do CloudWatch, consulte Coletar métricas, logs e rastreamentos com o agente do CloudWatch.

A configuração do agente nesta solução coleta as métricas fundamentais para o Kafka, a JVM e o EC2. O agente do CloudWatch pode ser configurado para coletar mais métricas do Kafka e da JVM do que as que são exibidas por padrão no painel. Para obter uma lista de todas as métricas do Kafka que você pode coletar, consulte Coletar métricas do Kafka. Para obter uma lista de todas as métricas da JVM que você pode coletar, consulte Coletar métricas da JVM. Para obter uma lista das métricas do EC2, consulte Métricas coletadas pelo atendente do CloudWatch em instâncias do Linux e macOS.

Exposição de portas do JMX para perfis de agente, produtor e consumidor do Kafka

O agente do CloudWatch depende do JMX para coletar as métricas relacionadas aos agentes, produtores e consumidores do Kafka. Para que isso aconteça, é necessário expor a porta do JMX em seus servidores e aplicações.

Para os agentes do Kafka, é necessário usar a variável de ambiente JMX_PORT para definir a porta. Será necessário reiniciar os agentes após definir essa variável de ambiente. Analise os scripts de inicialização e os arquivos de configuração da aplicação para encontrar o local mais adequado para adicionar esses argumentos.

Por exemplo, para os sistemas do Linux e do macOS, você pode usar o comando apresentado a seguir para definir a porta do JMX. Certifique-se de especificar um número de porta que não esteja em uso.

export JMX_PORT=port-number

Para os produtores e consumidores do Kafka, as instruções para expor a porta do JMX dependem do tipo de workload que você está usando para a aplicação da JVM voltada para os produtores e para os consumidores. Consulte a documentação específica para a aplicação para encontrar essas instruções.

De maneira geral, para habilitar uma porta do JMX para monitoramento e gerenciamento, você precisa configurar as propriedades do sistema apresentadas a seguir para a aplicação da JVM. O exemplo apresentado a seguir configura o JMX sem autenticação. Se suas políticas ou seus requisitos de segurança exigirem que você habilite o JMX com autenticação por senha ou SSL para a obtenção de acesso remoto, consulte a documentação do JMX para definir a propriedade necessária.

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=port-number -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

Para verificar a porta do JMX, execute ps aux | grep jmxremote.port. Os resultados devem mostrar que a porta do JMX foi definida nos processos da JVM.

Configuração do agente para esta solução

As métricas coletadas pelo agente são definidas na configuração do agente. A solução fornece configurações do agente para a coleta das métricas recomendadas com dimensões adequadas para o painel da solução. Cada perfil do Kafka, como agente, produtor ou consumidor, tem sua própria configuração de agente que possibilita a coleta de métricas do Kafka e de métricas da JVM e do EC2 subjacentes.

As etapas para a implantação da solução são descritas posteriormente em Implantação do agente para a sua solução. As informações apresentadas a seguir são destinadas a ajudar você a compreender como personalizar a configuração do agente para o seu ambiente.

Você deve personalizar algumas partes da seguinte configuração do agente para o seu ambiente:

  • O número da porta do JMX corresponde ao número da porta que você configurou na seção anterior desta documentação. O número da porta está na linha endpoint na configuração.

  • ClusterName: esta variável é usada como uma dimensão para as métricas de agentes coletadas. Forneça um nome significativo que represente o agrupamento do cluster para as instâncias que executam o agente do Kafka.

  • ProcessGroupName: esta variável é usada como uma dimensão para as métricas da JVM coletadas para os agentes. Forneça o mesmo valor fornecido para ClusterName. Isso possibilita a visualização das métricas da JVM pertencentes ao mesmo grupo de agentes do Kafka, agrupando-as junto com as métricas dos agentes no painel da solução.

  • ProducerGroupName: esta variável é usada como uma dimensão para as métricas de produtores coletadas. Forneça um nome significativo que represente o grupo de instâncias de produtores. Para este valor, é possível especificar a aplicação ou o serviço dos produtores que você deseja usar para obter uma visualização combinada das métricas de produtores no painel da solução.

  • ConsumerGroupName: esta variável é usada como uma dimensão para as métricas de consumidores coletadas. Forneça um nome significativo que represente o grupo de instâncias de consumidores. Este nome não deve ser confundido com o conceito de grupo de consumidores no Kafka. Trata-se apenas de uma dimensão de agrupamento, na qual você pode especificar a aplicação ou o serviço de consumidores para obter uma visualização combinada das métricas de consumidores no painel da solução.

Por exemplo, caso você tenha dois clusters do Kafka em execução na mesma conta, sendo uma para a aplicação order-processing e a outra para a aplicação inventory-management, é necessário configurar as dimensões ClusterName e ProcessGroupName de maneira adequada na configuração do agente da instância do agente.

  • Para as instâncias do agente do cluster order-processing, defina ClusterName=order-processing e ProcessGroupName=order-processing.

  • Para as instâncias do agente do cluster inventory-management, defina ClusterName=inventory-management e ProcessGroupName=inventory-management.

  • De forma semelhante, configure o ProducerGroupName para as instâncias de produtores e o ConsumerGroupName para as instâncias de consumidores, com base em suas respectivas aplicações.

Ao configurar corretamente as dimensões mencionadas acima, o painel das soluções agrupará automaticamente as métricas com base nas dimensões ClusterName, ProducerGroupName e ConsumerGroupName. O painel incluirá opções do menu suspenso para a seleção e para a visualização de métricas de clusters e de grupos específicos, permitindo o monitoramento da performance de clusters e de grupos individuais separadamente.

Certifique-se de implantar a configuração relevante do agente nas instâncias adequadas do EC2. Cada configuração será armazenada como um parâmetro distinto no Parameter Store do SSM, conforme detalhado posteriormente em Etapa 2: armazenar o arquivo de configuração recomendado do agente do CloudWatch no Systems Manager Parameter Store.

As instruções apresentadas a seguir descrevem a situação em que os perfis de produtor, consumidor e corretor são implantados em instâncias distintas do EC2, sem a ocorrência de sobreposições. Caso você esteja executando diversos perfis do Kafka na mesma instância do EC2, consulte Configuração do agente para diversos perfis do Kafka na mesma instância para obter mais informações.

Configuração do agente para agentes do agente do Kafka

Use a configuração apresentada a seguir do agente do CloudWatch nas instâncias do EC2 em que os agentes do agente do Kafka estão implantados. Substitua ClusterName pelo nome do cluster que será usado para agrupar essas métricas para obter uma visualização unificada. O valor especificado para o ClusterName é usado tanto como a dimensão ClusterName quanto como a dimensão ProcessGroupName. Substitua port-number pela porta do JMX do seu servidor do Kafka. Se o JMX tiver sido habilitado com autenticação por senha ou SSL para acesso remoto, consulte Coletar métricas do Java Management Extensions (JMX) para obter informações sobre como configurar o TLS ou a autorização, conforme necessário.

As métricas do EC2 mostradas nesta configuração (configuração apresentada de forma externa ao bloco do JMX) funcionam somente para instâncias do Linux e do macOS. Caso esteja usando instâncias do Windows, é possível optar por omitir essas métricas na configuração. Para obter mais informações sobre as métricas coletadas em instâncias do Windows, consulte Métricas coletadas pelo atendente do CloudWatch em instâncias do Windows Server.

{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka": { "measurement": [ "kafka.request.time.avg", "kafka.request.failed", "kafka.request.count", "kafka.purgatory.size", "kafka.partition.under_replicated", "kafka.partition.offline", "kafka.network.io", "kafka.leader.election.rate", "kafka.isr.operation.count" ] }, "append_dimensions": { "ClusterName": "ClusterName" } }, { "endpoint": "localhost:port-number", "jvm": { "measurement": [ "jvm.classes.loaded", "jvm.gc.collections.count", "jvm.gc.collections.elapsed", "jvm.memory.heap.committed", "jvm.memory.heap.max", "jvm.memory.heap.used", "jvm.memory.nonheap.committed", "jvm.memory.nonheap.max", "jvm.memory.nonheap.used", "jvm.threads.count" ] }, "append_dimensions": { "ProcessGroupName": "ClusterName" } } ], "disk": { "measurement": [ "used_percent" ] }, "mem": { "measurement": [ "used_percent" ] }, "swap": { "measurement": [ "used_percent" ] }, "netstat": { "measurement": [ "tcp_established", "tcp_time_wait" ] } } } }

Configuração do agente para produtores do Kafka

Use a configuração apresentada a seguir do agente do CloudWatch nas instâncias do Amazon EC2 em que os produtores do Kafka estão implantados. Substitua ProducerGroupName pelo nome da aplicação ou do grupo que você deseja usar para agrupar as métricas para obter uma visualização unificada. Substitua port-number pelo número da porta do JMX da aplicação do produtor do Kafka.

A solução não habilita métricas da JVM para os produtores do Kafka, pois o painel da solução não exibe métricas da JVM relacionadas à JVM para os produtores. Além disso, é possível personalizar a configuração do agente para emitir métricas da JVM, no entanto, as métricas da JVM relacionadas aos produtores não são visíveis no painel da solução.

{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka-producer": { "measurement": [ "kafka.producer.request-rate", "kafka.producer.byte-rate", "kafka.producer.request-latency-avg", "kafka.producer.response-rate", "kafka.producer.record-error-rate", "kafka.producer.record-send-rate" ] }, "append_dimensions": { "ProducerGroupName": "ProducerGroupName" } } ] } } }

Configuração do agente para consumidores do Kafka

Use a configuração apresentada a seguir do agente do CloudWatch nas instâncias do EC2 em que os consumidores do Kafka estão em execução. Substitua ConsumerGroupName pelo nome da aplicação ou do grupo que você deseja usar para agrupar essas métricas para obter uma visualização unificada. Substitua port-number pelo número da porta do JMX da aplicação do consumidor do Kafka.

A solução não habilita métricas da JVM para os consumidores do Kafka, pois o painel da solução não exibe métricas da JVM relacionadas à JVM para os consumidores. Além disso, é possível personalizar a configuração do agente para emitir métricas da JVM, no entanto, as métricas da JVM relacionadas aos consumidores não são visíveis no painel da solução.

{ "metrics": { "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka-consumer": { "measurement": [ "kafka.consumer.fetch-rate", "kafka.consumer.total.bytes-consumed-rate", "kafka.consumer.records-consumed-rate", "kafka.consumer.bytes-consumed-rate", "kafka.consumer.records-lag-max" ] }, "append_dimensions": { "ConsumerGroupName": "ConsumerGroupName" } } ] } } }

Implantação do agente para a sua solução

Existem várias abordagens para instalar o agente do CloudWatch, dependendo do caso de uso. Recomendamos o uso do Systems Manager para esta solução. Ele fornece uma experiência no console e simplifica o gerenciamento de uma frota de servidores gerenciados em uma única conta da AWS. As instruções apresentadas nesta seção usam o Systems Manager e são destinadas para situações em que o agente do CloudWatch não está em execução com as configurações existentes. É possível verificar se o agente do CloudWatch está em execução ao seguir as etapas apresentadas em Verificar se o atendente do CloudWatch está em execução.

Se você já estiver executando o agente do CloudWatch nos hosts do EC2 nos quais a workload está implantada e gerenciando as configurações do agente, pode pular as instruções apresentadas nesta seção e usar o mecanismo de implantação existente para atualizar a configuração. Certifique-se de combinar a configuração do agente de acordo com o perfil (agente, produtor ou consumidor) com a configuração do agente existente e, em seguida, implante a configuração combinada. Se você estiver usando o Systems Manager para armazenar e gerenciar a configuração do agente do CloudWatch, poderá combinar a configuração com o valor do parâmetro existente. Para obter mais informações, consulte Managing CloudWatch agent configuration files.

nota

Ao usar o Systems Manager para implantar as configurações do agente do CloudWatch apresentadas a seguir, qualquer configuração existente do agente do CloudWatch nas suas instâncias do EC2 será substituída ou sobrescrita. É possível modificar essa configuração para atender às necessidades do ambiente ou do caso de uso específico. As métricas definidas nesta solução representam o requisito mínimo para o painel recomendado.

O processo de implantação inclui as seguintes etapas:

  • Etapa 1: garantir que as instâncias do EC2 de destino têm as permissões do IAM necessárias.

  • Etapa 2: armazenar o arquivo de configuração recomendado do agente no Systems Manager Parameter Store.

  • Etapa 3: instalar o agente do CloudWatch em uma ou mais instâncias do EC2 usando uma pilha do AWS CloudFormation.

  • Etapa 4: verificar se a configuração do agente foi realizada corretamente.

Essas etapas devem ser repetidas dependendo de os agentes, produtores e consumidores estarem implantados na mesma instância do EC2 ou em instâncias distintas. Por exemplo, se o agente, o produtor e os consumidores do Kafka forem implantados em instâncias separadas, sem sobreposição, você deverá repetir essas etapas três vezes, com as configurações de agente apropriadas para as instâncias do EC2 destinadas ao agente, ao produtor e ao consumidor.

Etapa 1: garantir que as instâncias do EC2 de destino têm as permissões do IAM necessárias

Você deve conceder permissão para o Systems Manager instalar e configurar o agente do CloudWatch. Além disso, é necessário conceder permissão para que o agente do CloudWatch publique a telemetria da instância do EC2 para o CloudWatch. Certifique-se de que o perfil do IAM anexado à instância tenha as políticas do IAM CloudWatchAgentServerPolicy e AmazonSSMManagedInstanceCore associadas.

Etapa 2: armazenar o arquivo de configuração recomendado do agente do CloudWatch no Systems Manager Parameter Store

O Parameter Store simplifica a instalação do agente do CloudWatch em uma instância do EC2 ao armazenar e gerenciar os parâmetros de configuração de forma segura, eliminando a necessidade de valores com codificação rígida. Isso garante um processo de implantação mais seguro e flexível ao possibilitar o gerenciamento centralizado e as atualizações simplificadas para as configurações em diversas instâncias.

Use as etapas apresentadas a seguir para armazenar o arquivo de configuração recomendado do agente do CloudWatch como um parâmetro no Parameter Store.

Como criar o arquivo de configuração do agente do CloudWatch como um parâmetro
  1. Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação, escolha Gerenciamento de aplicações e, em seguida, Parameter Store.

  3. Siga as etapas apresentadas a seguir para criar um novo parâmetro para a configuração.

    1. Escolha Criar Parâmetro.

    2. Forneça um nome para o parâmetro que armazenará a configuração do seu agente do CloudWatch, como AmazonCloudWatch-Kafka-Producer-Configuration para produtores, AmazonCloudWatch-Kafka-Consumer-Configuration para consumidores ou AmazonCloudWatch-Kafka-Broker-Configuration para agentes. Caso você tenha diversos perfis do Kafka em uma única instância do EC2, nomeie-os de forma apropriada para facilitar a identificação. Esse valor será usado posteriormente para distribuir essa configuração para o agente em execução na instância do EC2.

    3. Em Camadas de parâmetros, escolha Padrão.

    4. Para Type (Tipo), escolha String.

    5. Em Tipo de dados, selecione texto.

    6. Na caixa Valor, cole o texto completo da configuração do agente do CloudWatch. Certifique-se de selecionar o bloco em JSON correspondente ao perfil do Kafka que essa instância está hospedando. Consulte as configurações fornecidas em Configuração do agente para agentes do agente do Kafka, Configuração do agente para produtores do Kafka e Configuração do agente para consumidores do Kafka ao armazenar a configuração para agentes, produtores e consumidores, respectivamente. Caso você esteja executando diversos perfis do Kafka na mesma instância do EC2, certifique-se de combinar as configurações, se necessário, conforme descrito em Configuração do agente para diversos perfis do Kafka na mesma instância.

    7. Escolha Criar Parâmetro.

Etapa 3: instalar o agente do CloudWatch e aplicar a configuração usando um modelo do AWS CloudFormation

É possível usar o AWS CloudFormation para instalar o agente e configurá-lo para usar a configuração do agente do CloudWatch criada nas etapas anteriores.

Como instalar e configurar o agente do CloudWatch para esta solução
  1. Abra o assistente para criar pilha de forma rápida do AWS CloudFormation usando este link: https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions.s3.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json.

  2. Verifique se a região selecionada no console corresponde à região em que a workload do Kafka está em execução.

  3. Em Nome da pilha, insira um nome para identificar esta pilha, como CWAgentInstallationStack.

  4. Na seção Parâmetros, especifique o seguinte:

    1. Para CloudWatchAgentConfigSSM, insira o nome do parâmetro do Systems Manager para a configuração do agente que você criou anteriormente, como AmazonCloudWatch-Kafka-Broker-Configuration para agentes, AmazonCloudWatch-Kafka-Producer-Configuration para produtores e AmazonCloudWatch-Kafka-Consumer-Configuration para consumidores.

    2. Para selecionar as instâncias de destino, você tem duas opções.

      1. Para InstanceIds, especifique uma lista delimitada por vírgulas de IDs de instâncias nas quais você deseja instalar o agente do CloudWatch com esta configuração. É possível listar uma única instância ou várias instâncias.

      2. Se você estiver realizando implantações em grande escala, é possível especificar a TagKey e o TagValue correspondente para direcionar todas as instâncias do EC2 associadas a essa etiqueta e a esse valor. Se você especificar uma TagKey, é necessário especificar um TagValue correspondente. (Para um grupo do Auto Scaling, especifique aws:autoscaling:groupName para a TagKey e defina o nome do grupo do Auto Scaling para a TagValue para realizar a implantação em todas as instâncias do grupo do Auto Scaling.)

        Caso você especifique tanto os parâmetros InstanceIds quanto TagKeys, InstanceIds terá precedência, e as etiquetas serão desconsideradas.

  5. Analise as configurações e, em seguida, escolha Criar pilha.

Se você desejar editar o arquivo de modelo previamente para personalizá-lo, selecione a opção Fazer upload de um arquivo de modelo no Assistente de criação de pilha para fazer o upload do modelo editado. Para obter mais informações, consulte Criar uma pilha no console do AWS CloudFormation. É possível usar o seguinte link para fazer download do modelo: https://aws-observability-solutions.s3.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json.

nota

Após a conclusão desta etapa, este parâmetro do Systems Manager será associado aos agentes do CloudWatch em execução nas instâncias de destino. Isto significa que:

  1. Se o parâmetro do Systems Manager for excluído, o agente será interrompido.

  2. Se o parâmetro do Systems Manager for editado, as alterações de configuração serão aplicadas automaticamente ao agente na frequência programada, que, por padrão, é de 30 dias.

  3. Se você desejar aplicar imediatamente as alterações a este parâmetro do Systems Manager, você deverá executar esta etapa novamente. Para obter mais informações sobre as associações, consulte Working with associations in Systems Manager.

Etapa 4: verificar se a configuração do agente foi realizada corretamente

É possível verificar se o agente do CloudWatch está instalado ao seguir as etapas apresentadas em Verificar se o atendente do CloudWatch está em execução. Se o agente do CloudWatch não estiver instalado e em execução, certifique-se de que todas as configurações foram realizadas corretamente.

Se todas as configurações estiverem corretas, as métricas do Kafka serão publicadas no CloudWatch e estarão disponíveis para visualização. É possível verificar no console do CloudWatch para assegurar que as métricas estão sendo publicadas corretamente.

Como verificar se as métricas do Kafka estão sendo publicadas no CloudWatch
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. Escolha Métricas e, depois, Todas as métricas.

  3. Certifique-se de ter selecionado a região na qual a solução foi implantada, escolha Namespaces personalizados e, em seguida, selecione CWAgent.

  4. Pesquise pelas métricas mencionadas na seção de configuração do agente deste documento, como kafka.partition.offline para agentes, kafka.consumer.fetch.rate para consumidores ou kafka.producer.request-rate para produtores. Caso encontre resultados para essas métricas, isso significa que elas estão sendo publicadas no CloudWatch.

Criação do painel da solução do Kafka

Este painel exibe as métricas emitidas recentemente para o Kafka e para a JVM subjacente. Este painel fornece uma visualização do principal colaborador para a integridade da workload do Kafka, entre produtores, agentes e consumidores. A visualização do principal colaborador exibe os dez principais colaboradores por widget de métrica. Isso permite a identificação de discrepâncias rapidamente.

O painel da solução não exibe métricas do EC2. Para visualizar as métricas relacionadas ao EC2, é necessário usar o painel automático do EC2 para acessar as métricas fornecidas diretamente pelo EC2 e usar o painel do console do EC2 para consultar as métricas do EC2 que são coletadas pelo agente do CloudWatch. Para obter mais informações sobre os painéis automáticos para serviços da AWS, consulte Visualização de um painel do CloudWatch para um único serviço da AWS.

Para criar o painel, é possível usar as seguintes opções:

  • Usar o console do CloudWatch para criar o painel.

  • Usar o console do AWS CloudFormation para implantar o painel.

  • Fazer o download do código de infraestrutura como código do AWS CloudFormation e integrá-lo como parte da automação de integração contínua (CI).

Ao usar o console do CloudWatch para criar um painel, é possível visualizá-lo previamente antes de criá-lo e incorrer em custos.

nota

O painel criado com o AWS CloudFormation nesta solução exibe métricas da região em que a solução está implantada. Certifique-se de que a pilha do AWS CloudFormation seja criada na mesma região em que as métricas do Kafka e da JVM são publicadas.

Se você especificou um namespace personalizado diferente de CWAgent na configuração do agente do CloudWatch, será necessário alterar o modelo do AWS CloudFormation para o painel, substituindo CWAgent pelo namespace personalizado que você está usando.

Como criar o painel usando o console do CloudWatch
nota

Atualmente, os painéis de soluções exibem métricas relacionadas à coleta de resíduos somente para o G1 Garbage Collector, que é o coletor padrão para as versões mais recentes do Java. Caso esteja usando um algoritmo de coleta de resíduos diferente, os widgets relacionados à coleta de resíduos estarão vazios. No entanto, você pode personalizar esses widgets alterando o modelo do painel do CloudFormation e aplicando o tipo de coleta de resíduos apropriado à dimensão do nome das métricas relacionadas à coleta de resíduos. Por exemplo, se você estiver usando a coleta de resíduos paralela, altere name=\"G1 Young Generation\" para name=\"Parallel GC\" da métrica de contagem de coleta de resíduos jvm.gc.collections.count.

  1. Abra o console do CloudWatch e acesse Criar painel usando este link: https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=ApacheKafkaOnEc2&referrer=os-catalog.

  2. Verifique se a região selecionada no console corresponde à região em que a workload do Kafka está em execução.

  3. Insira o nome do painel e, em seguida, escolha Criar painel.

    Para diferenciar este painel de painéis semelhantes em outras regiões com facilidade, recomendamos incluir o nome da região no nome do painel, por exemplo, KafkaDashboard-us-east-1.

  4. Visualize previamente o painel e escolha Salvar para criá-lo.

Como criar o painel usando o AWS CloudFormation
  1. Abra o assistente para criar pilha de forma rápida do AWS CloudFormation usando este link: https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions.s3.amazonaws.com/Kafka_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json.

  2. Verifique se a região selecionada no console corresponde à região em que a workload do Kafka está em execução.

  3. Em Nome da pilha, insira um nome para identificar esta pilha, como KafkaDashboardStack.

  4. Na seção Parâmetros, especifique o nome do painel no parâmetro DashboardName.

    Para diferenciar este painel de painéis semelhantes em outras regiões com facilidade, recomendamos incluir o nome da região no nome do painel, por exemplo, KafkaDashboard-us-east-1.

  5. Confirme as funcionalidades de acesso relacionadas às transformações na seção Capacidades e transformações. Lembre-se de que o CloudFormation não adiciona recursos do IAM.

  6. Analise as configurações e, em seguida, escolha Criar pilha.

  7. Quando o status da pilha mostrar CREATE_COMPLETE, selecione a guia Recursos na pilha criada e, em seguida, escolha o link exibido em ID físico para acessar o painel. Como alternativa, é possível acessar o painel diretamente no console do CloudWatch ao selecionar Painéis no painel de navegação do console à esquerda e localizar o nome do painel na seção Painéis personalizados.

Se você desejar editar o arquivo de modelo para personalizá-lo para atender a uma necessidade específica, é possível usar a opção Fazer upload de um arquivo de modelo no Assistente de criação de pilha para fazer o upload do modelo editado. Para obter mais informações, consulte Criar uma pilha no console do AWS CloudFormation. É possível usar este link para fazer download do modelo: https://aws-observability-solutions.s3.amazonaws.com/Kafka_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json.

nota

Atualmente, os painéis de soluções exibem métricas relacionadas à coleta de resíduos somente para o G1 Garbage Collector, que é o coletor padrão para as versões mais recentes do Java. Caso esteja usando um algoritmo de coleta de resíduos diferente, os widgets relacionados à coleta de resíduos estarão vazios. No entanto, você pode personalizar esses widgets alterando o modelo do painel do CloudFormation e aplicando o tipo de coleta de resíduos apropriado à dimensão do nome das métricas relacionadas à coleta de resíduos. Por exemplo, se você estiver usando a coleta de resíduos paralela, altere name=\"G1 Young Generation\" para name=\"Parallel GC\" da métrica de contagem de coleta de resíduos jvm.gc.collections.count.

Como começar a usar o painel do Kafka

A seguir, apresentamos algumas tarefas que você pode realizar para explorar o novo painel do Kafka. Essas tarefas permitem a validação do funcionamento correto do painel e fornecem uma experiência prática ao usá-lo para monitorar um cluster do Kafka. À medida que realiza as tarefas, você se familiarizará com a navegação no painel e com a interpretação das métricas visualizadas.

Uso das listas suspensas

O painel fornece listas suspensas na parte superior, que podem ser usadas para filtrar e selecionar os clusters, os produtores e os grupos de consumidores específicos do Kafka que você deseja monitorar.

  • Para exibir métricas para um cluster específico do Kafka, selecione o nome desse cluster na lista suspensa Cluster do Kafka.

  • Para exibir métricas para um grupo de produtores específico do Kafka, selecione o nome desse grupo de produtores na lista suspensa Produtor do Kafka.

  • Para exibir métricas para um grupo de consumidores específico do Kafka, selecione o nome desse grupo de consumidores na lista suspensa Grupo de consumidores do Kafka.

Verificação da integridade do cluster

Na seção Visão geral do cluster, localize os widgets Partições sub-replicadas e Réplicas em sincronização. Esses valores devem ser, idealmente, zero ou um número pequeno. Um valor elevado em qualquer uma dessas métricas podem indicar problemas no cluster do Kafka que requerem investigação.

Investigação da performance do agente

Na seção Agentes, localize os widgets Falha nas solicitações de busca e Falha nas solicitações do produtor. Esses widgets apresentam a quantidade de falhas nas solicitações de operações de busca e de produção, respectivamente. As taxas elevadas de falha podem indicar problemas nos agentes ou na conectividade da rede, que requerem uma investigação mais aprofundada.

Monitoramento da performance do produtor

Na seção Visão geral do grupo de produtores, localize os widgets Taxa média de solicitações, Latência média de solicitações e Taxa média de registros de envio ou de erros. Esses widgets disponibilizarão uma visão geral sobre a performance dos produtores do grupo selecionado. Além disso, é possível obter um detalhamento para visualizar métricas de produtores e de tópicos específicos na seção Produtores.

Monitoramento de atrasos dos consumidores

Na seção Visão geral do grupo de consumidores, localize o widget Atraso dos consumidores. Esse widget mostra o quão atrasados os consumidores estão no processamento das mensagens em relação aos últimos deslocamentos que ocorreram nas partições às quais eles são assinantes. Idealmente, o atraso dos consumidores deve ser um valor baixo ou zero. Um atraso dos consumidores significativo pode indicar que os consumidores não estão conseguindo acompanhar o ritmo de produção de dados, o que pode resultar em possíveis perdas de dados ou atrasos no processamento. Além disso, é possível obter um detalhamento para visualizar métricas de consumidores e de tópicos específicos na seção Consumidores.

Configuração do agente para diversos perfis do Kafka na mesma instância

As configurações individuais para os perfis do Kafka listadas na Configuração do agente do CloudWatch para esta solução são aplicáveis somente quando os perfis de produtor, consumidor e agente estão implantados em instâncias do EC2 distintas, sem sobreposição. Se você estiver executando diversos perfis do Kafka na mesma instância do Amazon EC2, existem duas opções:

  • Criar um único arquivo de configuração do agente que lista e configura todas as métricas para todos os perfis do Kafka implantados nessa instância. Se você planeja usar o Systems Manager para gerenciar a configuração do agente, esta é a opção recomendada.

    Ao escolher essa opção, se os diversos perfis do Kafka fizerem parte do mesmo processo da JVM, será necessário especificar o mesmo endpoint para cada um dos perfis do Kafka no arquivo de configuração do agente. Se os diversos perfis do Kafka fizerem parte de processos diferentes da JVM, o endpoint para cada um dos perfis pode ser distinto, dependendo da porta do JMX configurada para esse processo.

  • Criar arquivos de configuração do agente distintos para cada um dos perfis do Kafka e configurar o agente para aplicar ambos os arquivos de configuração. Para obter instruções sobre como aplicar diversos arquivos de configuração, consulte Vários arquivos de configuração do atendente CloudWatch.

O exemplo apresentado a seguir mostra uma configuração de agente do CloudWatch em que os perfis de produtor e de consumidor estão em execução em uma instância como parte do mesmo processo da JVM. Nesse caso, o número da porta deve ser semelhante nas partes de produtor e de consumidor da configuração abaixo. Se, em vez disso, os dois perfis estivessem em execução como parte de diferentes processos da JVM, você poderia especificar números de portas diferentes para cada um dos perfis, de acordo com a porta do JMX de cada processo individual da JVM.

{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka-producer": { "measurement": [ "kafka.producer.request-rate", "kafka.producer.byte-rate", "kafka.producer.request-latency-avg", "kafka.producer.response-rate", "kafka.producer.record-error-rate", "kafka.producer.record-send-rate" ] }, "append_dimensions": { "ProducerGroupName": "ProducerGroupName" } }, { "endpoint": "localhost:port-number", "kafka-consumer": { "measurement": [ "kafka.consumer.fetch-rate", "kafka.consumer.total.bytes-consumed-rate", "kafka.consumer.records-consumed-rate", "kafka.consumer.bytes-consumed-rate", "kafka.consumer.records-lag-max" ] }, "append_dimensions": { "ConsumerGroupName": "ConsumerGroupName" } } ] } } }
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.