View a markdown version of this page

Configure o Amazon Managed Service para AWS Prometheus com o Observability Accelerator - Amazon Managed Service for Prometheus

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á.

Configure o Amazon Managed Service para AWS Prometheus com o Observability Accelerator

AWS fornece ferramentas de observabilidade, incluindo monitoramento, registro, alertas e painéis, para seus projetos do Amazon Elastic Kubernetes Service (Amazon EKS). Isso inclui o Amazon Managed Service para Prometheus, o Amazon Managed Grafana, o AWS OpenTelemetryDistro for e outras ferramentas. Para ajudá-lo a usar essas ferramentas em conjunto, AWS fornece módulos do Terraform que configuram a observabilidade com esses serviços, chamados de AWS Observability Accelerator.

AWS O Observability Accelerator fornece dois perfis de coletor para o Amazon Managed Service for Prometheus:

  • Métricas gerenciadas (sem agente) — usa o coletor Amazon Managed Service for Prometheus, um raspador totalmente gerenciado e sem agentes que é executado fora do seu cluster. Não há cápsulas de coletor para gerenciar. Somente métricas.

  • Autogerenciado — implanta um OpenTelemetry coletor via Helm em seu cluster. Suporta métricas, rastreamentos (AWS X-Ray) e registros (Amazon CloudWatch).

Esta seção aborda as duas opções, começando com a abordagem sem agente recomendada.

Os modelos e instruções detalhadas do Terraform podem ser encontrados na página do AWS Observability Accelerator for Terraform. GitHub

Pré-requisitos

Para usar o AWS Observability Accelerator, você deve ter um cluster Amazon EKS existente e os seguintes pré-requisitos:

  • AWS CLI— usado para chamar a AWS funcionalidade a partir da linha de comando.

  • kubectl: usado para controlar seu cluster do EKS a partir da linha de comando.

  • Terraform (>= 1.5.0) — usado para automatizar a criação dos recursos para essa solução. Você deve configurar o AWS provedor com uma função do IAM que tenha acesso para criar e gerenciar o Amazon Managed Service para Prometheus, Amazon Managed Grafana e IAM em sua conta. AWS Para obter mais informações sobre como configurar o provedor da AWS para o Terraform, consulte o provedor da AWS na documentação do Terraform.

Usando o exemplo de métricas gerenciadas (sem agente)

Este exemplo usa o coletor Amazon Managed Service for Prometheus para extrair métricas do Prometheus do seu cluster Amazon EKS sem implantar nenhum pod de coletor. O coletor exige pelo menos duas sub-redes em duas zonas de disponibilidade distintas. Para obter mais detalhes, consulte o eks-amp-managedexemplo em GitHub.

Para usar o módulo Terraform de monitoramento de infraestrutura sem agente
  1. Na pasta em que você deseja criar seu projeto, clone o repositório usando o comando a seguir.

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
  2. Inicialize o Terraform com os comandos a seguir.

    cd examples/eks-amp-managed terraform init
  3. Crie um arquivo terraform.tfvars, como no exemplo a seguir. Use a AWS região, o ID do cluster e os detalhes da rede VPC para seu cluster Amazon EKS. O coletor exige pelo menos duas sub-redes em duas zonas de disponibilidade distintas.

    # (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" # (mandatory) Subnets for the managed scraper (>= 2 AZs) scraper_subnet_ids = ["subnet-aaa", "subnet-bbb"] # (mandatory) Security group allowing scraper access to the EKS API scraper_security_group_ids = ["sg-xxx"]
  4. Crie um espaço de trabalho do Amazon Managed Grafana, se você ainda não tiver um que queira usar. Para obter informações sobre como criar um espaço de trabalho, consulte Crie seu primeiro espaço de trabalho no Guia do usuário do Amazon Managed Grafana.

  5. Crie duas variáveis para que o Terraform use seu espaço de trabalho do Grafana executando os seguintes comandos na linha de comando. Você precisará substituí-lo pelo ID do grafana-workspace-id seu espaço de trabalho da Grafana.

    export TF_VAR_managed_grafana_workspace_id=grafana-workspace-id export TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text`
  6. [Opcional] Para usar um espaço de trabalho existente do Amazon Managed Service para Prometheus, adicione o ID ao arquivo, como no exemplo terraform.tfvars a seguir, substituindo-o pelo ID do espaço de trabalho do prometheus-workspace-id Prometheus. Se você não especificar um espaço de trabalho existente, um espaço de trabalho do Prometheus será criado para você.

    # (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id"
  7. Implante a solução com o seguinte comando.

    terraform apply -var-file=terraform.tfvars

Isso criará recursos em sua AWS conta, incluindo o seguinte:

  • Um novo espaço de trabalho do Amazon Managed Service for Prometheus (a menos que você tenha optado por usar um espaço de trabalho existente).

  • Um coletor do Amazon Managed Service for Prometheus (raspador sem agente) configurado para extrair métricas do Prometheus do seu cluster Amazon EKS.

  • Regras de gravação e alerta do Prometheus em seu espaço de trabalho do Amazon Managed Service for Prometheus.

  • kube-state-metrics e node-exporter implantado em seu cluster Amazon EKS para métricas de infraestrutura.

  • Nova fonte de dados e painéis do Amazon Managed Grafana em seu espaço de trabalho atual. Os painéis serão listados em Monitoramento EKS.

Alternativa: coletor autogerenciado OpenTelemetry

Se você precisar de rastreamentos, registros ou controle total sobre o pipeline de coleta, use o perfil autogerenciado. Isso implanta um OpenTelemetry Collector via Helm em seu cluster Amazon EKS, configurado para coletar métricas do Prometheus e gravar remotamente no Amazon Managed Service for Prometheus. Ele também suporta traços (AWS X-Ray) e registros (Amazon CloudWatch). Para obter mais detalhes, consulte o eks-amp-otelexemplo em GitHub.

Para usar o módulo autogerenciado do Terraform
  1. Clone o repositório e inicialize o Terraform.

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git cd examples/eks-amp-otel terraform init
  2. Crie um arquivo terraform.tfvars, como no exemplo a seguir.

    # (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster"
  3. Configure seu espaço de trabalho e chave de API do Amazon Managed Grafana usando as mesmas etapas do exemplo de métricas gerenciadas (etapas 4 a 6 acima).

  4. Implante a solução com o seguinte comando.

    terraform apply -var-file=terraform.tfvars

Isso criará os seguintes recursos em sua AWS conta (diferentemente da abordagem sem agente, o coletor é executado dentro do seu cluster):

  • Um espaço de trabalho do Amazon Managed Service para Prometheus (se não for fornecido).

  • Um espaço de trabalho Amazon Managed Grafana com fonte de dados e painéis.

  • Um OpenTelemetry coletor implantado via Helm em seu cluster Amazon EKS, configurado para coletar métricas do Prometheus e gravar remotamente no Amazon Managed Service for Prometheus.

  • Uma função do IAM para contas de serviço (IRSA) para o OpenTelemetry Collector.

  • Rastreia o pipeline até o AWS X-Ray (ativado por padrão).

  • Registra o pipeline na Amazon CloudWatch (ativado por padrão).

Visualizando painéis

Para visualizar seus novos painéis, abra o painel específico em seu espaço de trabalho do Amazon Managed Grafana. Os painéis de infraestrutura são provisionados automaticamente pelo Terraform. Para obter mais informações sobre o uso do Amazon Managed Grafana, consulte Trabalhar em seu espaço de trabalho do Grafana, no Guia do usuário do Amazon Managed Grafana.