Consultas con Grafana ejecutada 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.

Consultas con Grafana ejecutada 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. Reemplace account-id por el ID de AWS cuenta en el que se ejecuta el servidor 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 archivo YAML, amp-iamproxy-query-role es el nombre del rol que creará en la siguiente sección, Configuración de roles de IAM para 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.

Configuración de roles de IAM para cuentas de servicio

Si utiliza un servidor de Grafana en un clúster de Amazon EKS, le recomendamos que utilice roles de IAM para las cuentas de servicio, también conocidas como roles de servicio, para el control de acceso. Si haces esto para asociar una función de IAM 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, consulte Roles de IAM para 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 consola de Amazon EKS, abra el rol de IAM para las cuentas de servicio asociadas al clúster de EKS.

  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 la URL HTTP, especifique el Punto de conexión: URL de consulta que figura en la página de detalles del espacio de trabajo de la consola de Amazon Managed Service para Prometheus.

  6. En la URL HTTP que acaba de especificar, elimine la cadena /api/v1/query que se adjunta a la URL, ya que el origen de datos de Prometheus la anexará automáticamente.

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

    Deje en blanco los campos ARN de rol de asunción 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