Monitoramento aberto com o Prometheus - Amazon Managed Streaming for Apache Kafka

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Monitoramento aberto com o Prometheus

É possível monitorar o cluster do MSK com o Prometheus, um sistema de código aberto para o monitoramento de dados de métrica de séries temporais. Você pode publicar esses dados no Amazon Managed Service for Prometheus usando o recurso de gravação remota do Prometheus. Também é possível usar ferramentas compatíveis com as métricas ou as ferramentas formatadas do Prometheus que se integram ao Monitoramento aberto do Amazon MSK, como a lógica do Datadog, Lenses, New Relic e Sumo. O monitoramento aberto está disponível gratuitamente, mas cobranças são aplicáveis à transferência de dados entre zonas de disponibilidade. Para obter informações sobre o Prometheus, consulte a documentação do Prometheus.

Como criar um cluster do Amazon MSK com um monitoramento aberto habilitado

Usando o AWS Management Console
  1. Faça login no AWS Management Console e abra o console do Amazon MSK em https://console.aws.amazon.com/msk/home?region=us-east-1#/home/.

  2. Na seção Monitoring (Monitoramento), marque a caixa de seleção ao lado de Enable open monitoring with Prometheus (Habilitar o monitoramento aberto com o Prometheus).

  3. Forneça as informações obrigatórias em todas as seções da página e revise todas as opções disponíveis.

  4. Selecione Criar cluster.

Usando o AWS CLI
  • Invoque o comando create-cluster e especifique a opção open-monitoring. Habilite o JmxExporter, o NodeExporter ou ambos. Se você especificar o open-monitoring, os dois exportadores não poderão ser desabilitados ao mesmo tempo.

Uso da API
  • Invoque a CreateClusteroperação e especifiqueOpenMonitoring. Habilite o jmxExporter, o nodeExporter ou ambos. Se você especificar o OpenMonitoring, os dois exportadores não poderão ser desabilitados ao mesmo tempo.

Como habilitar o monitoramento aberto para um cluster existente do Amazon MSK

Para habilitar o monitoramento aberto, verifique se o cluster está no estado ACTIVE.

Usando o AWS Management Console
  1. Faça login no AWS Management Console e abra o console do Amazon MSK em https://console.aws.amazon.com/msk/home?region=us-east-1#/home/.

  2. Escolha o nome do cluster que deseja atualizar. Você será redirecionado para uma página com os detalhes do cluster.

  3. Na guia Propriedades, role para baixo para encontrar a seção Monitoramento.

  4. Selecione a opção Editar.

  5. Marque a caixa de seleção ao lado de Enable open monitoring with Prometheus (Habilitar o monitoramento aberto com o Prometheus).

  6. Escolha Salvar alterações.

Usando o AWS CLI
  • Invoque o comando update-monitoring e especifique a opção open-monitoring. Habilite o JmxExporter, o NodeExporter ou ambos. Se você especificar o open-monitoring, os dois exportadores não poderão ser desabilitados ao mesmo tempo.

Uso da API
  • Invoque a UpdateMonitoringoperação e especifiqueOpenMonitoring. Habilite o jmxExporter, o nodeExporter ou ambos. Se você especificar o OpenMonitoring, os dois exportadores não poderão ser desabilitados ao mesmo tempo.

Como configurar um host do Prometheus em uma instância do Amazon EC2

  1. Baixe o servidor do Prometheus em https://prometheus.io/download/#prometheus para sua instância do Amazon EC2.

  2. Extraia o arquivo obtido por download para um diretório e acesse esse diretório.

  3. Crie um arquivo com o seguinte conteúdo e nomeie-o como prometheus.yml.

    # file: prometheus.yml # my global config global: scrape_interval: 60s # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' static_configs: # 9090 is the prometheus server port - targets: ['localhost:9090'] - job_name: 'broker' file_sd_configs: - files: - 'targets.json'
  4. Use a ListNodesoperação para obter uma lista dos corretores do seu cluster.

  5. Crie um arquivo denominado targets.json com a seguinte JSON: Substitua broker_dns_1, broker_dns_2 e o restante dos nomes do DNS com os nomes do DNS obtidos para os agentes na etapa anterior. Inclua todos os agentes que você obteve na etapa anterior. O Amazon MSK usa a porta 11001 para o JMX Exporter e a porta 11002 para o Node Exporter.

    ZooKeeper mode targets.json
    [ { "labels": { "job": "jmx" }, "targets": [ "broker_dns_1:11001", "broker_dns_2:11001", . . . "broker_dns_N:11001" ] }, { "labels": { "job": "node" }, "targets": [ "broker_dns_1:11002", "broker_dns_2:11002", . . . "broker_dns_N:11002" ] } ]
    KRaft mode targets.json
    [ { "labels": { "job": "jmx" }, "targets": [ "broker_dns_1:11001", "broker_dns_2:11001", . . . "broker_dns_N:11001", "controller_dns_1:11001", "controller_dns_2:11001", "controller_dns_3:11001" ] }, { "labels": { "job": "node" }, "targets": [ "broker_dns_1:11002", "broker_dns_2:11002", . . . "broker_dns_N:11002" ] } ]
    nota

    Para extrair métricas JMX dos controladores Kraft, adicione nomes DNS do controlador como destinos no arquivo JSON. Por exemplo:controller_dns_1:11001, controller_dns_1 substituindo pelo nome DNS real do controlador.

  6. Para iniciar o servidor do Prometheus na instância do Amazon EC2, execute o seguinte comando no diretório no qual extraiu os arquivos do Prometheus e salvou prometheus.yml e targets.json.

    ./prometheus
  7. Localize o endereço IP IPv4 público da instância do Amazon EC2 na qual executou o Prometheus na etapa anterior. Esse endereço IP público será necessário na próxima etapa.

  8. Para acessar IU Web do Prometheus, abra um navegador capaz de acessar sua instância do Amazon EC2 e acesse Prometheus-Instance-Public-IP:9090, com Prometheus-Instance-Public-IP indicando o endereço IP público obtido na etapa anterior.

Métricas do Prometheus

Todas as métricas emitidas pelo Apache Kafka para o JMX são acessíveis ao usar o monitoramento aberto com o Prometheus. Para obter informações sobre as métricas do Apache Kafka, consulte Monitoring (Monitoramento) na documentação do Apache Kafka. Junto com as métricas do Apache Kafka, as métricas de atraso do consumidor também estão disponíveis na porta 11001 sob o nome kafka.consumer.group:type=ConsumerLagMetrics no JMX MBean. Você também pode usar o Prometheus Node Exporter para obter métricas de CPU e disco para seus agentes na porta 11002.

Como armazenar as métricas do Prometheus no Amazon Managed Service for Prometheus

O Amazon Managed Service for Prometheus é um serviço de monitoramento e emissão de alertas compatível com o Prometheus que você pode usar para monitorar os clusters do Amazon MSK. É um serviço totalmente gerenciado que dimensiona automaticamente a ingestão, o armazenamento, a consulta e o alerta de métricas. Ele também se integra aos serviços de AWS segurança para oferecer acesso rápido e seguro aos seus dados. É possível usar a linguagem de consulta PromQL de código aberto para consultar suas métricas e emitir alertas sobre elas.

Para obter mais informações, consulte Conceitos básicos do Amazon Managed Service for Prometheus.