View a markdown version of this page

Configura Amazon Managed Service para AWS Prometheus con Observability Accelerator - Servicio administrado por Amazon para Prometheus

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configura Amazon Managed Service para AWS Prometheus con Observability Accelerator

AWS proporciona herramientas de observabilidad, que incluyen monitoreo, registro, alertas y paneles, para sus proyectos de Amazon Elastic Kubernetes Service (Amazon EKS). Esto incluye Amazon Managed Service for Prometheus, Amazon Managed AWS Grafana, OpenTelemetry Distro for y otras herramientas. Para ayudarle a utilizar estas herramientas en conjunto, AWS proporciona módulos de Terraform que configuran la observabilidad con estos servicios, denominados Acelerador de Observabilidad.AWS

AWS Observability Accelerator proporciona dos perfiles de recopiladores para Amazon Managed Service for Prometheus:

  • Métricas gestionadas (sin agentes): utiliza el recopilador de Amazon Managed Service for Prometheus, un rastreador totalmente gestionado y sin agentes que se ejecuta fuera del clúster. No hay módulos recopiladores que gestionar. Solo métricas.

  • Autogestionado: despliega un OpenTelemetry recopilador mediante Helm en tu clúster. Admite métricas, rastreos (AWS X-Ray) y registros (Amazon CloudWatch).

En esta sección se explican ambas opciones, empezando por el enfoque sin agentes recomendado.

Las plantillas de Terraform y las instrucciones detalladas se encuentran en la página del Acelerador de AWS Observabilidad para Terraform. GitHub

Requisitos previos

Para usar AWS Observability Accelerator, debe tener un clúster de Amazon EKS existente y cumplir los siguientes requisitos previos:

  • AWS CLI— se utiliza para llamar a la AWS funcionalidad desde la línea de comandos.

  • kubectl: se utiliza para controlar el clúster de EKS desde la línea de comandos.

  • Terraform (>= 1.5.0): se utiliza para automatizar la creación de los recursos para esta solución. Debe tener el AWS proveedor configurado con un rol de IAM que tenga acceso para crear y gestionar Amazon Managed Service for Prometheus, Amazon Managed Grafana e IAM en su cuenta. AWS Para obtener más información sobre cómo configurar el proveedor de AWS para Terraform, consulte Proveedor de AWS en la documentación de Terraform.

Usando el ejemplo de las métricas administradas (sin agentes)

En este ejemplo, se utiliza el recopilador Amazon Managed Service for Prometheus para extraer las métricas de Prometheus de su clúster de Amazon EKS sin implementar ningún módulo recopilador. El recopilador requiere al menos dos subredes en dos zonas de disponibilidad distintas. Para obtener más información, consulte el eks-amp-managedejemplo de GitHub.

Para utilizar el módulo Terraform de monitorización de infraestructuras sin agentes
  1. Desde la carpeta en la que desea crear el proyecto, clone el repositorio con el siguiente comando:

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
  2. Inicialice Terraform con los siguientes comandos:

    cd examples/eks-amp-managed terraform init
  3. Cree un nuevo archivo terraform.tfvars, como en el siguiente ejemplo. Utilice la AWS región, el ID del clúster y los detalles de la red de VPC para su clúster de Amazon EKS. El recopilador requiere al menos dos subredes en dos zonas de disponibilidad 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. Cree un espacio de trabajo de Amazon Managed Grafana si aún no tiene ninguno que quiera utilizar. Para obtener información sobre cómo crear un nuevo espacio de trabajo, consulte Creación de su primer espacio de trabajo en la Guía del usuario de Amazon Managed Grafana.

  5. Cree dos variables para que Terraform utilice el espacio de trabajo de Grafana ejecutando los siguientes comandos en la línea de comandos. Deberás sustituirlo por el ID grafana-workspace-id de tu espacio de trabajo de 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 utilizar un espacio de trabajo de Amazon Managed Service for Prometheus existente, añade el ID al archivo, como en terraform.tfvars el ejemplo siguiente, y sustituye prometheus-workspace-id el por tu ID de espacio de trabajo de Prometheus. Si no especifica un espacio de trabajo existente, se creará un nuevo espacio de trabajo de Prometheus.

    # (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id"
  7. Implemente la solución con el siguiente comando.

    terraform apply -var-file=terraform.tfvars

De este modo, se crearán recursos en su AWS cuenta, entre los que se incluyen los siguientes:

  • Un nuevo espacio de trabajo de Amazon Managed Service para Prometheus (a menos que haya optado por utilizar un espacio de trabajo existente).

  • Un recopilador de Amazon Managed Service for Prometheus (raspador sin agente) configurado para extraer las métricas de Prometheus de su clúster de Amazon EKS.

  • Reglas de grabación y alerta de Prometheus en tu espacio de trabajo de Amazon Managed Service para Prometheus.

  • kube-state-metrics y un exportador de nodos implementado en su clúster de Amazon EKS para métricas de infraestructura.

  • Nuevo origen de datos y paneles de Amazon Managed Grafana en el espacio de trabajo actual. Los paneles se enumerarán en EKS Monitoring.

Alternativa: recopilador autogestionado OpenTelemetry

Si necesita rastreos, registros o un control total sobre la canalización de recopilación, utilice el perfil autogestionado. Esto implementa un OpenTelemetry recopilador mediante Helm en su clúster de Amazon EKS, configurado para recopilar las métricas de Prometheus y escribir de forma remota en Amazon Managed Service for Prometheus. También admite trazas (AWS X-Ray) y registros (Amazon CloudWatch). Para obtener más información, consulte el eks-amp-otelejemplo de GitHub.

Para usar el módulo Terraform autogestionado
  1. Clona el repositorio e inicializa Terraform.

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git cd examples/eks-amp-otel terraform init
  2. Cree un nuevo archivo terraform.tfvars, como en el siguiente ejemplo.

    # (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. Configura tu espacio de trabajo de Grafana gestionado por Amazon y tu clave de API siguiendo los mismos pasos que en el ejemplo de las métricas gestionadas (pasos 4 a 6 anteriores).

  4. Implemente la solución con el siguiente comando.

    terraform apply -var-file=terraform.tfvars

Esto creará los siguientes recursos en tu AWS cuenta (a diferencia del enfoque sin agentes, el recopilador se ejecuta dentro de tu clúster):

  • Un espacio de trabajo de Amazon Managed Service para Prometheus (si no se proporciona).

  • Un espacio de trabajo de Grafana gestionado por Amazon con fuente de datos y paneles.

  • Un OpenTelemetry recopilador implementado mediante Helm en su clúster de Amazon EKS, configurado para recopilar las métricas de Prometheus y escribir de forma remota en Amazon Managed Service for Prometheus.

  • Una función de IAM para las cuentas de servicio (IRSA) del recopilador. OpenTelemetry

  • Rastrea la canalización hasta AWS X-Ray (activado de forma predeterminada).

  • Registra la canalización a Amazon CloudWatch (habilitada de forma predeterminada).

Visualización de paneles de control

Para ver los nuevos paneles, abra el panel específico en el espacio de trabajo de Amazon Managed Grafana. Terraform aprovisiona automáticamente los paneles de infraestructura. Para obtener más información sobre el uso de Amazon Managed Grafana, consulte Trabajo con el espacio de trabajo de Grafana en la Guía del usuario de Amazon Managed Grafana.