Consulta con Grafana que se ejecuta en un clúster de Amazon EKS - 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.

Consulta con Grafana que se ejecuta en un clúster de Amazon EKS

Amazon Managed Service para Prometheus admite el uso de la versión 7.3.5 y posteriores de Grafana para consultar métricas en un espacio de trabajo de Amazon Managed Service para Prometheus. Las versiones 7.3.5 y posteriores incluyen soporte para la autenticación de la versión 4 de AWS Signature (SiGv4).

Para configurar Grafana para que funcione con Amazon Managed Service for Prometheus, debes iniciar sesión en una cuenta que tenga la AmazonPrometheusQueryAccesspolítica o los aps:QueryMetrics permisos,, y. aps:GetMetricMetadata aps:GetSeries aps:GetLabels Para obtener más información, consulte Permisos y políticas de IAM.

Configura SigV4 AWS

Grafana ha agregado una nueva función para admitir la autenticación AWS Signature Version 4 (SiGv4). Para obtener más información, consulte Proceso de firma Signature Version 4. Esta característica no está habilitada en los servidores de Grafana de forma predeterminada. En las siguientes instrucciones para habilitar esta característica, se supone que está utilizando Helm para implementar Grafana en un clúster de Kubernetes.

Para habilitar SigV4 en un servidor de Grafana 7.3.5 o posterior
  1. Cree un nuevo archivo de actualización para anular la configuración de Grafana y llámelo amp_query_override_values.yaml.

  2. Copie el siguiente contenido en el archivo y guárdelo. Reemplazar account-id con el ID de AWS cuenta en el que se ejecuta el servidor de Grafana.

    serviceAccount: name: "amp-iamproxy-query-service-account" annotations: eks.amazonaws.com/role-arn: "arn:aws:iam::account-id:role/amp-iamproxy-query-role" grafana.ini: auth: sigv4_auth_enabled: true

    En el contenido de ese YAML archivo, amp-iamproxy-query-role está el nombre del rol que crearás en la siguiente sección,Configure los IAM roles para las cuentas de servicio. Puede reemplazar este rol por su propio nombre de rol si ya ha creado un rol para realizar consultas en el espacio de trabajo.

Utilizará este archivo más adelante, en Actualización del servidor de Grafana con Helm.

Configure los IAM roles para las cuentas de servicio

Si utilizas un servidor Grafana en un EKS clúster de Amazon, te recomendamos que utilices IAM funciones para las cuentas de servicio, también conocidas como funciones de servicio, para el control de acceso. Si lo haces para asociar un IAM rol a una cuenta de servicio de Kubernetes, la cuenta de servicio puede conceder AWS permisos a los contenedores de cualquier pod que utilice esa cuenta de servicio. Para obtener más información, consulta las IAMfunciones de las cuentas de servicio.

Si aún no ha configurado estos roles de servicio para las consultas, siga las instrucciones que figuran en Configuración de roles de IAM en cuentas de servicio para consultar métricas para configurarlos.

Luego, debe agregar la cuenta de servicio de Grafana en las condiciones de la relación de confianza.

Para agregar la cuenta de servicio de Grafana en las condiciones de la relación de confianza
  1. Desde una ventana de terminal, determine el espacio de nombres y el nombre de la cuenta de servicio del servidor de Grafana. Por ejemplo, puede utilizar el comando siguiente:

    kubectl get serviceaccounts -n grafana_namespace
  2. En la EKS consola de Amazon, abre el IAM rol de las cuentas de servicio que está asociado al EKS clúster.

  3. Elija Editar relación de confianza.

  4. Actualice la condición para que incluya el espacio de nombres de Grafana y el nombre de la cuenta de servicio de Grafana que haya encontrado en el resultado del comando en el paso 1. A continuación, se muestra un ejemplo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::account-id:oidc-provider/oidc.eks.aws_region.amazonaws.com/id/openid" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region.amazonaws.com/id/openid:sub": [ "system:serviceaccount:aws-amp:amp-iamproxy-query-service-account", "system:serviceaccount:grafana-namespace:grafana-service-account-name" ] } } } ] }
  5. Elija Actualizar política de confianza.

Actualización del servidor de Grafana con Helm

Este paso actualiza el servidor de Grafana para utilizar las entradas que haya agregado al archivo amp_query_override_values.yaml en la sección anterior.

Ejecute los siguientes comandos. Para obtener más información sobre los gráficos de Helm para Grafana, consulte Gráficos Helm de Kubernetes de la comunidad de Grafana.

helm repo add grafana https://grafana.github.io/helm-charts
helm upgrade --install grafana grafana/grafana -n grafana_namespace -f ./amp_query_override_values.yaml

Adición del origen de datos de Prometheus en Grafana

En los siguientes pasos se explica cómo configurar el origen de datos de Prometheus en Grafana para consultar las métricas de Amazon Managed Service para Prometheus.

Para agregar el origen de datos de Prometheus al servidor de Grafana
  1. Abra la consola de Grafana.

  2. En Configuraciones, elija Orígenes de datos.

  3. Elija Agregar origen de datos.

  4. Elija Prometheus.

  5. Para el HTTPURL, especifique la consulta Endpoint: que URL se muestra en la página de detalles del espacio de trabajo de la consola de Amazon Managed Service for Prometheus.

  6. En la HTTP URL que acaba de especificar, elimine la /api/v1/query cadena que se adjunta aURL, ya que la fuente de datos de Prometheus la añadirá automáticamente.

  7. En Autenticación, seleccione la opción Autenticación SigV4 para habilitarla.

    Deje en blanco los campos Asumir rol ARN e ID externo. A continuación, en Región predeterminada, seleccione la región en la que se encuentre el espacio de trabajo de Amazon Managed Service para Prometheus.

  8. Elija Guardar y probar.

    Debería ver el siguiente mensaje: El origen de datos funciona

  9. Pruebe una consulta de PromQL con el nuevo origen de datos:

    1. Elija Explorar.

    2. Ejecute una consulta de PromQL de ejemplo, como:

      prometheus_tsdb_head_series