Requête à l’aide de Grafana exécutée dans un cluster Amazon EKS - Amazon Managed Service for Prometheus

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Requête à l’aide de Grafana exécutée dans un cluster Amazon EKS

Amazon Managed Service for Prometheus prend en charge l’utilisation de Grafana version 7.3.5 et versions ultérieures pour l’interrogation des métriques dans un espace de travail Amazon Managed Service for Prometheus. Les versions 7.3.5 et ultérieures incluent la prise en charge de l' AWS authentification Signature Version 4 (SigV4).

Pour configurer Grafana afin qu'il fonctionne avec Amazon Managed Service for Prometheus, vous devez être connecté à un compte disposant de la AmazonPrometheusQueryAccesspolitique ou des autorisations,, et. aps:QueryMetrics aps:GetMetricMetadata aps:GetSeries aps:GetLabels Pour plus d’informations, consultez Autorisations et politiques IAM.

Configurer AWS SigV4

Grafana a ajouté une nouvelle fonctionnalité pour prendre en charge l'authentification AWS Signature Version 4 (SigV4). Pour plus d'informations, consultez Processus de signature Signature Version 4. Cette fonctionnalité est activée par défaut sur les serveurs Grafana. Les instructions suivantes pour activer cette fonctionnalité supposent que vous utilisez Helm pour déployer Grafana sur un cluster Kubernetes.

Pour activer SigV4 sur votre serveur Grafana 7.3.5 ou version ultérieure
  1. Créez un nouveau fichier de mise à jour pour remplacer votre configuration Grafana et nommez-le amp_query_override_values.yaml.

  2. Entrez le contenu qui suit dans le fichier, puis enregistrez le fichier. Remplacez account-id par l'identifiant du AWS compte sur lequel le serveur Grafana est exécuté.

    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

    Dans le contenu de ce fichier YAML, amp-iamproxy-query-role correspond au nom du rôle que vous allez créer dans la section suivante, Configuration de rôles IAM pour les comptes de service. Vous pouvez remplacer ce rôle par votre propre nom de rôle si vous avez déjà créé un rôle pour interroger votre espace de travail.

Vous utiliserez ce fichier ultérieurement, dans Mise à niveau du serveur Grafana à l’aide de Helm.

Configuration de rôles IAM pour les comptes de service

Si vous utilisez un serveur Grafana dans un cluster Amazon EKS, nous vous recommandons d’utiliser des rôles IAM pour les comptes de service, également appelés rôles de service, pour votre contrôle d’accès. Lorsque vous le faites pour associer un rôle IAM à un compte de service Kubernetes, le compte de service peut alors fournir des AWS autorisations aux conteneurs de n'importe quel pod utilisant ce compte de service. Pour plus d’informations, consultez la section Rôles IAM pour les comptes de service.

Si vous n’avez pas encore configuré ces rôles de service pour l’interrogation, suivez les instructions de la section Configuration de rôles IAM de comptes de service pour l'interrogation des métriques pour les configurer.

Vous devez ensuite ajouter le compte de service Grafana dans les conditions de la relation de confiance.

Pour ajouter le compte de service Grafana dans les conditions de la relation de confiance
  1. À partir d’une fenêtre de terminal, déterminez l’espace de noms et le nom du compte de service de votre serveur Grafana. Par exemple, vous pouvez utiliser la commande suivante.

    kubectl get serviceaccounts -n grafana_namespace
  2. Dans la console Amazon EKS, ouvrez le rôle IAM pour les comptes de service associés au cluster EKS.

  3. Choisissez Modifier la relation d’approbation.

  4. Mettez à jour la condition pour inclure l’espace de noms Grafana et le nom du compte de service Grafana obtenus dans le résultat de la commande à l’étape 1. Voici un exemple.

    { "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. Choisissez Update Trust Policy (Mettre à jour la stratégie d’approbation).

Mise à niveau du serveur Grafana à l’aide de Helm

Cette étape met à niveau le serveur Grafana pour utiliser les entrées que vous avez ajoutées au fichier amp_query_override_values.yaml dans la section précédente.

Exécutez les commandes suivantes. Pour plus d’informations sur les Charts de Helm pour Grafana, consultez la section Grafana Community Kubernetes Helm Charts.

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

Ajout de la source de données Prometheus dans Grafana

Les étapes suivantes expliquent comment configurer la source de données Prometheus dans Grafana pour interroger vos métriques Amazon Managed Service for Prometheus.

Pour ajouter la source de données Prometheus dans votre serveur Grafana
  1. Ouvrez la console Grafana.

  2. Sous Configurations, sélectionnez Sources de données.

  3. Choisissez Add data source.

  4. Choisissez Prometheus.

  5. Pour l’URL HTTP, spécifiez le point de terminaison - l’URL de requête affiché sur la page de détails de l’espace de travail de la console Amazon Managed Service for Prometheus.

  6. Dans l’URL HTTP que vous venez de spécifier, supprimez la chaîne /api/v1/query ajoutée à l’URL, car la source de données Prometheus l’ajoutera automatiquement.

  7. Sous Auth, sélectionnez le bouton SigV4 Auth pour l’activer.

    Laissez les champs Assume Role ARN et External ID vides. Ensuite, pour Default Region, sélectionnez la région dans laquelle se trouve votre espace de travail Amazon Managed Service for Prometheus.

  8. Choisissez Enregistrer et tester.

    Vous devez voir le message suivant : Data source is working.

  9. Testez une requête ProMQL sur la nouvelle source de données :

    1. Choisissez Explore.

    2. Exécutez un exemple de requête ProMQL tel que :

      prometheus_tsdb_head_series