Configuración de la ingesta desde un servidor de Prometheus existente en Kubernetes en EC2 - 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.

Configuración de la ingesta desde un servidor de Prometheus existente en Kubernetes en EC2

Amazon Managed Service para Prometheus admite la ingesta de métricas de servidores de Prometheus en clústeres que se ejecuten en Amazon EKS y en clústeres de Kubernetes autoadministrados que se ejecuten en Amazon EC2. Las instrucciones detalladas de esta sección son para un servidor de Prometheus en un clúster de Amazon EKS. Los pasos para un clúster de Kubernetes autoadministrado en Amazon EC2 son los mismos, excepto que deberá encargarse de configurar por su cuenta los roles de proveedor de OIDC y de IAM para las cuentas de servicio en el clúster de Kubernetes.

En las instrucciones de esta sección, se utiliza Helm como administrador de paquetes de Kubernetes.

Paso 1: Configurar roles de IAM para cuentas de servicio

Para el método de incorporación que estamos documentando, debe utilizar roles de IAM para las cuentas de servicio del clúster de Amazon EKS en el que se ejecuta el servidor de Prometheus. Estos roles también se denominan roles de servicio.

Con los roles de servicio, puede asociar un rol de IAM a una cuenta de servicio de Kubernetes. A continuación, esta cuenta de servicio puede proporcionar AWS permisos a los contenedores de cualquier módulo que utilice esa cuenta de servicio. Para obtener más información, consulte Roles de IAM para cuentas de servicio.

Si aún no ha configurado estos roles, siga las instrucciones de Configuración de roles de servicio para la ingesta de métricas desde los clústeres de Amazon EKS para configurarlos.

Paso 2: Actualizar un servidor de Prometheus existente mediante Helm

Las instrucciones de esta sección incluyen la configuración de la escritura remota y sigv4 para autenticar el servidor de Prometheus y autorizarlo a escribir de forma remota en el espacio de trabajo de Amazon Managed Service para Prometheus.

Uso de Prometheus versión 2.26.0 o posterior

Siga estos pasos si utiliza un gráfico de Helm con una imagen del servidor de Prometheus de la versión 2.26.0 o posterior.

Para configurar la escritura remota desde un servidor de Prometheus mediante un gráfico de Helm
  1. Cree una nueva sección de escritura remota en el archivo de configuración de Helm:

    • ${IAM_PROXY_PROMETHEUS_ROLE_ARN}Sustitúyalo por el ARN del amp-iamproxy-ingest-roleque creó. Paso 1: Configurar roles de IAM para cuentas de servicio El ARN del rol debe tener el formato arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role.

    • Reemplace ${WORKSPACE_ID} por el ID del espacio de trabajo de Amazon Managed Service para Prometheus.

    • Reemplace ${REGION} por la región del espacio de trabajo de Amazon Managed Service para Prometheus (como us-west-2).

    ## The following is a set of default values for prometheus server helm chart which enable remoteWrite to AMP ## For the rest of prometheus helm chart values see: https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus/values.yaml ## serviceAccounts: server: name: amp-iamproxy-ingest-service-account annotations: eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN} server: remoteWrite: - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write sigv4: region: ${REGION} queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500
  2. Actualice la configuración existente del servidor de Prometheus mediante Helm:

    • Reemplace prometheus-chart-name por el nombre de la versión de Prometheus.

    • Reemplace prometheus-namespace por el espacio de nombres de Kubernetes en el que está instalado el servidor de Prometheus.

    • Reemplace my_prometheus_values_yaml por la ruta al archivo de configuración de Helm.

    • Reemplace current_helm_chart_version por la versión actual del gráfico de Helm del servidor de Prometheus. Puede encontrar la versión actual del gráfico mediante el comando helm list.

    helm upgrade prometheus-chart-name prometheus-community/prometheus \ -n prometheus-namespace \ -f my_prometheus_values_yaml \ --version current_helm_chart_version

Uso de versiones anteriores de Prometheus

Siga estos pasos si utiliza una versión de Prometheus anterior a la 2.26.0. Estos pasos utilizan un enfoque de sidecar, ya que las versiones anteriores de Prometheus no AWS admiten de forma nativa el proceso de firma de la versión 4 de Signature (SiGv4).AWS

En estas instrucciones, se presupone que está utilizando Helm para implementar Prometheus.

Para configurar la escritura remota desde un servidor de Prometheus
  1. En el servidor de Prometheus, cree una nueva configuración de escritura remota: En primer lugar, cree un nuevo archivo de actualización. Llamaremos al archivo amp_ingest_override_values.yaml.

    Agregue los siguientes valores al archivo YAML.

    serviceAccounts: server: name: "amp-iamproxy-ingest-service-account" annotations: eks.amazonaws.com/role-arn: "${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}" server: sidecarContainers: - name: aws-sigv4-proxy-sidecar image: public.ecr.aws/aws-observability/aws-sigv4-proxy:1.0 args: - --name - aps - --region - ${REGION} - --host - aps-workspaces.${REGION}.amazonaws.com - --port - :8005 ports: - name: aws-sigv4-proxy containerPort: 8005 statefulSet: enabled: "true" remoteWrite: - url: http://localhost:8005/workspaces/${WORKSPACE_ID}/api/v1/remote_write

    Reemplace ${REGION} por la región del espacio de trabajo de Amazon Managed Service para Prometheus.

    ${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}Sustitúyalo por el ARN del amp-iamproxy-ingest-roleque creó. Paso 1: Configurar roles de IAM para cuentas de servicio El ARN del rol debe tener el formato arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role.

    Reemplace ${WORKSPACE_ID} por el ID del espacio de trabajo.

  2. Mejore el gráfico de Helm de Prometheus. Primero, busca el nombre del gráfico de Helm introduciendo el siguiente comando. En el resultado de este comando, busque un gráfico con un nombre que incluya prometheus.

    helm ls --all-namespaces

    A continuación, escriba el siguiente comando.

    helm upgrade --install prometheus-helm-chart-name prometheus-community/prometheus -n prometheus-namespace -f ./amp_ingest_override_values.yaml

    prometheus-helm-chart-nameSustitúyalo por el nombre de la carta de mando de Prometheus que se devolvió en el comando anterior. Reemplace prometheus-namespace por el nombre del espacio de nombres.

Descarga de gráficos de Helm

Si aún no ha descargado los gráficos de Helm de forma local, puede utilizar el siguiente comando para ello.

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm pull prometheus-community/prometheus --untar