Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Gérez Amazon Managed Service pour Prometheus AWS avec des contrôleurs pour Kubernetes

Mode de mise au point
Gérez Amazon Managed Service pour Prometheus AWS avec des contrôleurs pour Kubernetes - 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.

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.

Amazon Managed Service for Prometheus est intégré à AWS Controllers for Kubernetes (ACK) et permet de gérer votre espace de travail, le gestionnaire d’alertes et les ressources de règles dans Amazon EKS. Vous pouvez utiliser les définitions de ressources personnalisées AWS Controllers for Kubernetes (CRDs) et les objets Kubernetes natifs sans avoir à définir de ressources en dehors de votre cluster.

Cette section explique comment configurer les AWS contrôleurs pour Kubernetes et Amazon Managed Service pour Prometheus dans un cluster Amazon EKS existant.

Vous pouvez également lire les articles de blog présentant les AWS contrôleurs pour Kubernetes et le contrôleur ACK pour Amazon Managed Service for Prometheus.

Prérequis

Avant de commencer à intégrer AWS Controllers for Kubernetes et Amazon Managed Service for Prometheus à votre cluster Amazon EKS, vous devez remplir les conditions préalables suivantes.

Lorsque votre cluster Amazon EKS est correctement configuré, vous devez être en mesure de voir les métriques formatées pour Prometheus en appelant kubectl get --raw /metrics. Vous êtes maintenant prêt à installer un contrôleur de service AWS Controllers for Kubernetes et à l'utiliser pour déployer les ressources Amazon Managed Service for Prometheus.

Déploiement d'un espace de travail avec AWS Controllers for Kubernetes

Pour déployer un nouvel espace de travail Amazon Managed Service pour Prometheus, vous devez installer AWS un contrôleur Controllers for Kubernetes, puis l'utiliser pour créer l'espace de travail.

Pour déployer un nouvel espace AWS de travail Amazon Managed Service pour Prometheus avec Controllers for Kubernetes
  1. Les commandes suivantes permettent d’utiliser Helm pour installer le contrôleur de service Amazon Managed Service for Prometheus. Pour plus d'informations, consultez Installer un contrôleur ACK dans la documentation des AWS contrôleurs pour Kubernetes sur. GitHub Utilisez la version region adaptée à votre système, par exempleus-east-1.

    export SERVICE=prometheusservice export RELEASE_VERSION=`curl -sL https://api.github.com/repos/aws-controllers-k8s/$SERVICE-controller/releases/latest | grep '"tag_name":' | cut -d'"' -f4` export ACK_SYSTEM_NAMESPACE=ack-system export AWS_REGION=region aws ecr-public get-login-password --region us-east-1 | helm registry login --username AWS --password-stdin public.ecr.aws helm install --create-namespace -n $ACK_SYSTEM_NAMESPACE ack-$SERVICE-controller \ oci://public.ecr.aws/aws-controllers-k8s/$SERVICE-chart --version=$RELEASE_VERSION --set=aws.region=$AWS_REGION

    Après quelques instants, vous devriez voir une réponse similaire à la suivante, qui indique la réussite de l’opération.

    You are now able to create Amazon Managed Service for Prometheus (AMP) resources! The controller is running in "cluster" mode. The controller is configured to manage AWS resources in region: "us-east-1"

    Vous pouvez éventuellement vérifier que le contrôleur AWS Controllers for Kubernetes a été correctement installé à l'aide de la commande suivante.

    helm list --namespace $ACK_SYSTEM_NAMESPACE -o yaml

    Cela renverra des informations sur le contrôleur ack-prometheusservice-controller, notamment status: deployed.

  2. Créez un fichier appelé workspace.yaml avec le texte suivant. Il sera utilisé comme configuration pour l’espace de travail que vous créez.

    apiVersion: prometheusservice.services.k8s.aws/v1alpha1 kind: Workspace metadata: name: my-amp-workspace spec: alias: my-amp-workspace tags: ClusterName: EKS-demo
  3. Exécutez la commande suivante pour créer votre espace de travail (cette commande dépend des variables système que vous avez définies à l’étape 1).

    kubectl apply -f workspace.yaml -n $ACK_SYSTEM_NAMESPACE

    Après quelques instants, vous devriez être en mesure de voir un nouvel espace de travail appelé my-amp-workspace dans votre compte.

    Exécutez la commande suivante pour afficher les détails et le statut de votre espace de travail, notamment l’ID de l’espace de travail. Vous pouvez également consulter le nouvel espace de travail dans la console Amazon Managed Service for Prometheus.

    kubectl describe workspace my-amp-workspace -n $ACK_SYSTEM_NAMESPACE
    Note

    Vous pouvez également utiliser un espace de travail existant plutôt que d’en créer un.

  4. Créez deux nouveaux fichiers yaml comme configuration pour les groupes de règles et AlertManager que vous créerez ensuite en utilisant la configuration suivante.

    Enregistrez cette configuration sous rulegroup.yaml. WORKSPACE-IDRemplacez-le par l'ID de l'espace de travail de l'étape précédente.

    apiVersion: prometheusservice.services.k8s.aws/v1alpha1 kind: RuleGroupsNamespace metadata: name: default-rule spec: workspaceID: WORKSPACE-ID name: default-rule configuration: | groups: - name: example rules: - alert: HostHighCpuLoad expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 60 for: 5m labels: severity: warning event_type: scale_up annotations: summary: Host high CPU load (instance {{ $labels.instance }}) description: "CPU load is > 60%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - alert: HostLowCpuLoad expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) < 30 for: 5m labels: severity: warning event_type: scale_down annotations: summary: Host low CPU load (instance {{ $labels.instance }}) description: "CPU load is < 30%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"

    Enregistrez la configuration suivante sous alertmanager.yaml. WORKSPACE-IDRemplacez-le par l'ID de l'espace de travail de l'étape précédente. TOPIC-ARNRemplacez-le par l'ARN de la rubrique Amazon SNS à laquelle envoyer des notifications, et REGION par le Région AWS que vous utilisez. N’oubliez pas qu’Amazon Managed Service for Prometheus doit disposer d’autorisations pour accéder à la rubrique Amazon SNS.

    apiVersion: prometheusservice.services.k8s.aws/v1alpha1 kind: AlertManagerDefinition metadata: name: alert-manager spec: workspaceID: WORKSPACE-ID configuration: | alertmanager_config: | route: receiver: default_receiver receivers: - name: default_receiver sns_configs: - topic_arn: TOPIC-ARN sigv4: region: REGION message: | alert_type: {{ .CommonLabels.alertname }} event_type: {{ .CommonLabels.event_type }}
    Note

    Pour en savoir plus sur les formats de ces fichiers de configuration, consultez les sections RuleGroupsNamespaceData et AlertManagerDefinitionData.

  5. Exécutez les commandes suivantes pour créer la configuration de votre groupe de règles et de votre gestionnaire d’alertes (cette commande dépend des variables système que vous avez définies à l’étape 1).

    kubectl apply -f rulegroup.yaml -n $ACK_SYSTEM_NAMESPACE kubectl apply -f alertmanager.yaml -n $ACK_SYSTEM_NAMESPACE

    Les modifications seront disponibles en quelques instants.

    Note

    Pour mettre à jour une ressource, plutôt que de la créer, il suffit de mettre à jour le fichier yaml et de réexécuter la commande kubectl apply.

    Pour supprimer une ressource, exécutez la commande suivante. Remplacez ResourceType par le type de ressource que vous souhaitez supprimer WorkspaceAlertManagerDefinition, ouRuleGroupNamespace. Remplacez ResourceName par le nom de la ressource à supprimer.

    kubectl delete ResourceType ResourceName -n $ACK_SYSTEM_NAMESPACE

Le déploiement du nouvel espace de travail est terminé. La section suivante décrit la configuration de votre cluster pour envoyer des métriques à cet espace de travail.

Configuration de votre cluster Amazon EKS pour écrire dans l’espace de travail Amazon Managed Service for Prometheus

Cette section décrit comment utiliser Helm pour configurer l’instance Prometheus exécutée dans votre cluster Amazon EKS afin d’écrire à distance des métriques dans l’espace de travail Amazon Managed Service for Prometheus créé à la section précédente.

Pour cette procédure, vous aurez besoin du nom du rôle IAM que vous avez créé pour l’ingestion de métriques. Si vous ne l’avez pas déjà fait, consultez la section Configuration de rôles de service pour l’ingestion de métriques à partir de clusters Amazon EKS pour de plus amples informations et instructions. Si vous suivez ces instructions, le rôle IAM sera appelé amp-iamproxy-ingest-role.

Pour configurer votre cluster Amazon EKS pour l’écriture à distance
  1. Utilisez la commande suivante pour obtenir le prometheusEndpoint pour votre espace de travail. WORKSPACE-IDRemplacez-le par l'ID de l'espace de travail indiqué dans la section précédente.

    aws amp describe-workspace --workspace-id WORKSPACE-ID

    Le point de terminaison prometheusEndpoint figurera dans les résultats renvoyés et sera formaté comme suit :

    https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-a1b2c3d4-a123-b456-c789-ac1234567890/

    Enregistrez cette URL pour l’utiliser lors des prochaines étapes.

  2. Créez un fichier avec le texte suivant et nommez-le prometheus-config.yaml. accountRemplacez-le par votre identifiant de compte, workspaceURL/ par l'URL que vous venez de trouver et region par l'URL appropriée Région AWS à votre système.

    serviceAccounts: server: name: "amp-iamproxy-ingest-service-account" annotations: eks.amazonaws.com/role-arn: "arn:aws:iam::account:role/amp-iamproxy-ingest-role" server: remoteWrite: - url: workspaceURL/api/v1/remote_write sigv4: region: region queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500
  3. Recherchez le graphique Prometheus et les noms des espaces de noms ainsi que la version du graphique à l’aide de la commande Helm suivante.

    helm ls --all-namespaces

    D’après les étapes effectuées jusqu’à présent, le graphique Prometheus et l’espace de noms doivent tous deux être nommés prometheus, et la version du graphique peut être 15.2.0.

  4. Exécutez la commande suivante en utilisant le PrometheusChartNamePrometheusNamespace, et PrometheusChartVersion trouvé à l'étape précédente.

    helm upgrade PrometheusChartName prometheus-community/prometheus -n PrometheusNamespace -f prometheus-config.yaml --version PrometheusChartVersion

    Après quelques minutes, un message s’affiche, indiquant que la mise à niveau a réussi.

  5. Vous pouvez éventuellement vérifier que les métriques ont bien été envoyées en interrogeant le point de terminaison Amazon Managed Service for Prometheus via awscurl. RegionRemplacez-le par celui Région AWS que vous utilisez et workspaceURL/ par l'URL que vous avez trouvée à l'étape 1.

    awscurl --service="aps" --region="Region" "workspaceURL/api/v1/query?query=node_cpu_seconds_total"

Vous avez maintenant créé un espace de travail Amazon Managed Service for Prometheus et vous y êtes connecté depuis votre cluster Amazon EKS, en utilisant des fichiers YAML comme configuration. Ces fichiers, appelés définitions de ressources personnalisées (CRDs), se trouvent au sein de votre cluster Amazon EKS. Vous pouvez utiliser le contrôleur AWS Controllers for Kubernetes pour gérer toutes vos ressources Amazon Managed Service for Prometheus directement depuis le cluster.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.