

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.

# Gestion et transfert des alertes dans Amazon Managed Service for Prometheus avec le gestionnaire d'alertes
<a name="AMP-alert-manager"></a>

Lorsque Amazon Managed Service for Prometheus déclenchent des [règles d’alerte](AMP-ruler-rulesfile.md), le gestionnaire d’alertes gère les alertes envoyées. Il déduplique, regroupe et achemine les alertes vers les récepteurs en aval. Amazon Managed Service for Prometheus prend uniquement en charge Amazon Simple Notification Service en tant que récepteur et peut acheminer des messages vers les rubriques Amazon SNS sur le même compte. Vous pouvez également utiliser le gestionnaire d’alertes pour désactiver ou bloquer des alertes.

Le gestionnaire d’alertes fournit des fonctionnalités similaires à celles du gestionnaire d’alertes dans Prometheus.

Vous pouvez utiliser le fichier de configuration du gestionnaire d’alertes pour les opérations suivantes :
+ **Regroupement** : le regroupement permet de rassembler des alertes similaires en une seule notification. Cela est particulièrement utile lors de pannes importantes lorsque de nombreux systèmes tombent en panne en même temps et que des centaines d’alertes peuvent se déclencher simultanément. Par exemple, supposons qu’une panne de réseau entraîne la défaillance simultanée de plusieurs nœuds. Si les alertes de ce type sont regroupées, le gestionnaire d’alertes ne vous envoie qu’une seule notification. 

  Le regroupement des alertes et le calendrier des notifications groupées sont configurés par une arborescence de routage dans le fichier de configuration du gestionnaire d’alertes. Pour plus d’informations, consultez [<route>](https://prometheus.io/docs/alerting/latest/configuration/#route).
+ **Inhibition** : supprime les notifications pour certaines alertes si d’autres alertes sont déjà déclenchées. Par exemple, si une alerte indique qu’un cluster est inaccessible, vous pouvez configurer le gestionnaire d’alertes pour masquer toutes les autres alertes concernant ce cluster. Cela permet d’éviter les notifications pour des centaines ou des milliers d’alertes de déclenchement qui ne sont pas liées au problème réel. Pour plus d’informations sur la rédaction des règles d’inhibition, consultez [<inhibit\$1rule>](https://prometheus.io/docs/alerting/latest/configuration/#inhibit_rule).
+ **Silences** : masque les alertes pendant une durée spécifiée, par exemple pendant une période de maintenance. Les alertes entrantes sont vérifiées pour déterminer si elles correspondent à tous les critères d’égalité ou d’expression régulière d’un silence actif. Si c’est le cas, aucune notification n’est envoyée pour cette alerte.

  Pour créer un silence, vous devez utiliser l’API `PutAlertManagerSilences`. Pour de plus amples informations, veuillez consulter [PutAlertManagerSilences](AMP-APIReference-PutAlertManagerSilences.md).

**Modélisation de Prometheus**

Prometheus autonome prend en charge la création de modèles à l'aide de fichiers modèles distincts. Les modèles peuvent notamment utiliser des conditions et formater des données.

[Dans Amazon Managed Service for Prometheus, vous placez votre modèle dans le même fichier de configuration du gestionnaire d'alertes que celui de votre gestionnaire d'alertes.](AMP-alertmanager-config.md)

**Topics**
+ [Comprendre les autorisations IAM nécessaires pour travailler avec le gestionnaire d'alertes](AMP-alertmanager-IAM-permissions.md)
+ [Créez une configuration de gestionnaire d'alertes dans Amazon Managed Service pour Prometheus afin de gérer et d'acheminer les alertes](AMP-alertmanager-config.md)
+ [Transférer les alertes à un récepteur d'alertes à l'aide du gestionnaire d'alertes dans Amazon Managed Service for Prometheus](AMP-alertmanager-receiver.md)
+ [Téléchargez le fichier de configuration de votre gestionnaire d'alertes sur Amazon Managed Service for Prometheus](AMP-alertmanager-upload.md)
+ [Intégrez des alertes à Amazon Managed Grafana ou à Grafana open source](integrating-grafana.md)
+ [Résoudre les problèmes liés au gestionnaire d'alertes avec les journaux CloudWatch](Troubleshooting-alerting.md)

# Comprendre les autorisations IAM nécessaires pour travailler avec le gestionnaire d'alertes
<a name="AMP-alertmanager-IAM-permissions"></a>

Vous devez autoriser les utilisateurs à utiliser le gestionnaire d'alertes dans Amazon Managed Service for Prometheus. Créez une politique Gestion des identités et des accès AWS (IAM) avec les autorisations suivantes et attribuez-la à vos utilisateurs, groupes ou rôles.

# Créez une configuration de gestionnaire d'alertes dans Amazon Managed Service pour Prometheus afin de gérer et d'acheminer les alertes
<a name="AMP-alertmanager-config"></a>

Pour utiliser le gestionnaire d’alertes et le système de modélisation dans Amazon Managed Service for Prometheus, vous devez créer un fichier YAML de configuration de gestionnaire d’alertes. Un fichier de gestionnaire d’alertes Amazon Managed Service for Prometheus comporte deux sections principales :
+ `template_files:` contient les modèles utilisés pour les messages envoyés par les destinataires. Pour plus d’informations, consultez les sections [Référence de modèles](https://prometheus.io/docs/prometheus/latest/configuration/template_reference/) et [Exemples de modèles](https://prometheus.io/docs/prometheus/latest/configuration/template_examples/) de la documentation Prometheus.
+ `alertmanager_config:` contient la configuration du gestionnaire d’alertes. Il utilise la même structure qu’un fichier de configuration de gestionnaire d’alertes dans Prometheus autonome. Pour plus d’informations, consultez [Configuration](https://prometheus.io/docs/alerting/latest/configuration/) dans la documentation du gestionnaire d’alertes.
**Note**  
La configuration `repeat_interval` décrite dans la documentation Prometheus ci-dessus comporte une limitation supplémentaire dans Amazon Managed Service for Prometheus. La valeur maximale autorisée est de cinq jours. Si vous définissez une durée supérieure à cinq jours, elle sera traitée comme cinq jours et les notifications seront à nouveau envoyées une fois la période de cinq jours écoulée.

**Note**  
Vous pouvez également modifier le fichier de configuration directement dans la console Amazon Managed Service for Prometheus, mais il doit toujours respecter le format spécifié ici. Pour plus d'informations sur le téléchargement ou la modification d'un fichier de configuration, consultez[Téléchargez le fichier de configuration de votre gestionnaire d'alertes sur Amazon Managed Service for Prometheus](AMP-alertmanager-upload.md).

Dans Amazon Managed Service for Prometheus, le fichier de configuration de votre gestionnaire d’alertes doit contenir l’ensemble de la configuration dans une clé `alertmanager_config` située à la racine du fichier YAML.

Voici un exemple de fichier de configuration de gestionnaire d’alertes :

```
alertmanager_config: |
  route:
    receiver: 'default'
  receivers:
    - name: 'default'
      sns_configs:
      - topic_arn: arn:aws:sns:us-east-2:123456789012:My-Topic
        sigv4:
          region: us-east-2
        attributes:
          key: key1
          value: value1
```

Le seul récepteur actuellement pris en charge est Amazon Simple Notification Service (Amazon SNS). Si d’autres types de récepteurs sont répertoriés dans la configuration, ils seront rejetés.

Voici un autre exemple de fichier de configuration de gestionnaire d’alertes qui utilise à la fois le bloc `template_files` et le bloc `alertmanager_config`.

```
template_files:
  default_template: |
    {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }}
    {{ define "__alertmanager" }}AlertManager{{ end }}
    {{ define "__alertmanagerURL" }}{{ .ExternalURL }}/#/alerts?receiver={{ .Receiver | urlquery }}{{ end }}
alertmanager_config: |
  global:
  templates:
    - 'default_template'
  route:
    receiver: default
  receivers:
    - name: 'default'
      sns_configs:
      - topic_arn: arn:aws:sns:us-east-2:accountid:My-Topic
        sigv4:
          region: us-east-2
        attributes:
          key: severity
          value: SEV2
```

**Bloc de modèle Amazon SNS par défaut**

La configuration Amazon SNS par défaut utilise le modèle suivant, sauf si vous le remplacez explicitement.

```
{{ define "sns.default.message" }}{{ .CommonAnnotations.SortedPairs.Values | join " " }}
  {{ if gt (len .Alerts.Firing) 0 -}}
  Alerts Firing:
    {{ template "__text_alert_list" .Alerts.Firing }}
  {{- end }} 
  {{ if gt (len .Alerts.Resolved) 0 -}} 
  Alerts Resolved:
    {{ template "__text_alert_list" .Alerts.Resolved }}
  {{- end }}
{{- end }}
```

# Transférer les alertes à un récepteur d'alertes à l'aide du gestionnaire d'alertes dans Amazon Managed Service for Prometheus
<a name="AMP-alertmanager-receiver"></a>

Lorsqu'une alerte est déclenchée par une règle d'alerte, elle est envoyée au gestionnaire d'alertes. Le gestionnaire d'alertes exécute des fonctions telles que la déduplication des alertes, l'inhibition des alertes pendant la maintenance ou leur regroupement selon les besoins. Il transmet ensuite l'alerte sous forme de message à un *récepteur d'alerte*. Vous pouvez configurer un récepteur d'alertes capable d'avertir les opérateurs, de recevoir des réponses automatisées ou de répondre aux alertes d'une autre manière.

Vous pouvez configurer Amazon Simple Notification Service (Amazon SNS) PagerDuty et en tant que destinataires d'alertes dans Amazon Managed Service for Prometheus. Les rubriques suivantes décrivent comment créer et configurer votre récepteur d'alertes.

**Topics**
+ [Utiliser Amazon SNS comme récepteur d'alertes](AMP-alertmanager-receiver-createtopic.md)
+ [Utiliser PagerDuty comme récepteur d'alertes](AMP-alertmanager-pagerduty.md)

# Utiliser Amazon SNS comme récepteur d'alertes
<a name="AMP-alertmanager-receiver-createtopic"></a>

Vous pouvez utiliser une rubrique Amazon SNS existante comme récepteur d'alertes pour Amazon Managed Service for Prometheus, ou vous pouvez en créer une nouvelle. Nous vous recommandons d’utiliser une rubrique **Standard**, afin de pouvoir transférer des alertes de la rubrique vers un e-mail, un SMS ou le protocole HTTP.

Pour créer une rubrique Amazon SNS à utiliser comme récepteur de votre gestionnaire d’alertes, suivez les étapes de la section [Étape 1 : Créer une rubrique](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#step-create-queue). Assurez-vous de choisir **Standard** pour le type de rubrique.

Si vous souhaitez recevoir des e-mails chaque fois qu’un message est envoyé à cette rubrique Amazon SNS, suivez les étapes de la section [Étape 2 : Créer un abonnement à la rubrique](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#step-send-message).

Que vous utilisiez une rubrique Amazon SNS nouvelle ou existante, vous aurez besoin du nom de ressource Amazon (ARN) de votre rubrique Amazon SNS pour effectuer les tâches suivantes.

**Topics**
+ [Autoriser Amazon Managed Service for Prometheus à envoyer des messages d'alerte à votre rubrique Amazon SNS](AMP-alertmanager-receiver-AMPpermission.md)
+ [Configurer le gestionnaire d'alertes pour envoyer des messages à votre rubrique Amazon SNS](AMP-alertmanager-receiver-config.md)
+ [Configurer le gestionnaire d'alertes pour envoyer des messages à Amazon SNS au format JSON](AMP-alertmanager-receiver-JSON.md)
+ [Configurer Amazon SNS pour envoyer des messages d'alerte vers d'autres destinations](AMP-alertmanager-SNS-otherdestinations.md)
+ [Comprendre les règles de validation des messages Amazon SNS](AMP-alertmanager-receiver-validation-truncation.md)

# Autoriser Amazon Managed Service for Prometheus à envoyer des messages d'alerte à votre rubrique Amazon SNS
<a name="AMP-alertmanager-receiver-AMPpermission"></a>

Vous devez autoriser Amazon Managed Service for Prometheus à envoyer des messages à votre rubrique Amazon SNS. La déclaration de politique suivante donnera cette autorisation. Il comprend une `Condition` déclaration visant à prévenir un problème de sécurité connu sous le nom de problème de *confusion des adjoints*. L’instruction `Condition` restreint l’accès à la rubrique Amazon SNS pour autoriser uniquement les opérations provenant de ce compte spécifique et de l’espace de travail Amazon Managed Service for Prometheus. Pour de plus amples informations sur le problème de l’adjoint confus, veuillez consulter [Prévention du cas de figure de l’adjoint désorienté entre services](#cross-service-confused-deputy-prevention).

**Pour autoriser Amazon Managed Service for Prometheus à envoyer des messages à votre rubrique Amazon SNS**

1. [Ouvrez la console Amazon SNS à l'adresse v3/home. https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)

1. Dans le volet de navigation, choisissez **Rubriques**.

1. Choisissez le nom de la rubrique que vous utilisez avec Amazon Managed Service for Prometheus.

1. Choisissez **Modifier**.

1. Choisissez **Stratégie d’accès** et ajoutez l’instruction de stratégie suivante à la stratégie existante.

   ```
   {
       "Sid": "Allow_Publish_Alarms",
       "Effect": "Allow",
       "Principal": {
           "Service": "aps.amazonaws.com"
       },
       "Action": [
           "sns:Publish",
           "sns:GetTopicAttributes"
       ],
       "Condition": {
           "ArnEquals": {
               "aws:SourceArn": "workspace_ARN"
           },
           "StringEquals": {
               "AWS:SourceAccount": "account_id"
           }
       },
       "Resource": "arn:aws:sns:region:account_id:topic_name"
   }
   ```

   [Facultatif] Si votre rubrique Amazon SNS est activée pour le chiffrement côté service (SSE), vous devez autoriser Amazon Managed Service for Prometheus à envoyer des messages à cette rubrique cryptée en ajoutant les `kms:Decrypt` autorisations `kms:GenerateDataKey*` et à la politique AWS KMS clé de la clé utilisée pour chiffrer la rubrique.

   Par exemple, vous pouvez ajouter ce qui suit à la politique :

   ```
   {
     "Statement": [{
       "Effect": "Allow",
       "Principal": {
         "Service": "aps.amazonaws.com"
       },
       "Action": [
         "kms:GenerateDataKey*",
         "kms:Decrypt"
       ],
       "Resource": "*"
     }]
   }
   ```

   Pour plus d’informations, veuillez consulter la section [AWS Autorisations KMS pour SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#sns-what-permissions-for-sse).

1. Sélectionnez **Enregistrer les modifications**.

**Note**  
 Par défaut, Amazon SNS crée la stratégie d’accès avec la condition `AWS:SourceOwner`. Pour plus d’informations, veuillez consulter la section [SNS Access Policy](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html#source-account-versus-source-owner).

**Note**  
IAM suit la règle de la [stratégie la plus restrictive en premier](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html). Dans votre rubrique SNS, s’il existe un bloc de stratégie plus restrictif que le bloc de stratégie Amazon SNS documenté, l’autorisation pour la stratégie de la rubrique n’est pas accordée. Pour évaluer votre stratégie et savoir ce qui a été accordé, consultez la section [Logique d’évaluation de stratégies](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html). 

## Configuration des rubriques SNS pour les régions optionnelles
<a name="AMP-alertmanager-sns-regional-config"></a>

Vous pouvez l'utiliser `aps.amazonaws.com` pour configurer une rubrique Amazon SNS de la même manière Région AWS que votre espace de travail Amazon Managed Service for Prometheus. Pour utiliser un sujet SNS provenant d'une non-opt-in région (telle que us-east-1) avec une région optionnelle (telle que af-south-1), vous devez utiliser le format principal du service régional. Dans le principe du service régional, remplacez *us-east-1* par la non-opt-in région que vous souhaitez utiliser :**aps.*us-east-1*.amazonaws.com**.

Le tableau suivant répertorie les régions optionnelles et les principaux services régionaux correspondants :


**Régions adhérentes et leurs principaux de services régionaux**  

| Nom de la région | Région | Directeur du service régional | 
| --- | --- | --- | 
| Afrique (Le Cap) | af-south-1 | af-south-1.aps.amazonaws.com | 
| Asie-Pacifique (Hong Kong) | ap-east-1 | ap-east-1.aps.amazonaws.com | 
| Asie-Pacifique (Thaïlande) | ap-southeast-7 | ap-southeast-7.aps.amazonaws.com | 
| Europe (Milan) | eu-south-1 | eu-south-1.aps.amazonaws.com | 
| Europe (Zurich) | eu-central-2 | eu-central-2.aps.amazonaws.com | 
| Moyen-Orient (EAU) | me-central-1 | me-central-1.aps.amazonaws.com | 
| Asie-Pacifique (Malaisie) | ap-southeast-5 | ap-southeast-5.aps.amazonaws.com | 

Pour plus d'informations sur l'activation d'une région optionnelle, consultez la section [Gestion Régions AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html) du *guide de l'utilisateur IAM* dans le. Référence générale d'Amazon Web Services

Lorsque vous configurez votre rubrique Amazon SNS pour ces régions optionnelles, assurez-vous d'utiliser le principal de service régional approprié pour permettre la diffusion des alertes entre les régions.

## Prévention du cas de figure de l’adjoint désorienté entre services
<a name="cross-service-confused-deputy-prevention"></a>

Le problème de député confus est un problème de sécurité dans lequel une entité qui n’est pas autorisée à effectuer une action peut contraindre une entité plus privilégiée à le faire. En AWS, l'usurpation d'identité interservices peut entraîner la confusion des adjoints. L’usurpation d’identité entre services peut se produire lorsqu’un service (le *service appelant*) appelle un autre service (le *service appelé*). Le service appelant peut être manipulé et ses autorisations utilisées pour agir sur les ressources d’un autre client auxquelles on ne serait pas autorisé à accéder autrement. Pour éviter cela, AWS fournit des outils qui vous aident à protéger vos données pour tous les services avec des principaux de service qui ont eu accès aux ressources de votre compte. 

Nous vous recommandons d’utiliser les clés de contexte de condition globale [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dans les politiques de ressources afin de limiter les autorisations accordées à la ressource par Amazon Managed Service for Promotheus. Si vous utilisez les deux clés de contexte de condition globale, la valeur `aws:SourceAccount` et le compte de la valeur `aws:SourceArn` doit utiliser le même ID de compte lorsqu’il est utilisé dans la même déclaration de stratégie.

La valeur de `aws:SourceArn` doit être l’ARN de l’espace de travail Amazon Managed Service for Prometheus.

Le moyen le plus efficace de se protéger contre le problème de député confus consiste à utiliser la clé de contexte de condition globale `aws:SourceArn` avec l’ARN complet de la ressource. Si vous ne connaissez pas l’ARN complet de la ressource ou si vous spécifiez plusieurs ressources, utilisez la clé de contexte de condition globale `aws:SourceArn` avec des caractères génériques (`*`) pour les parties inconnues de l’ARN. Par exemple, `arn:aws:servicename::123456789012:*`. 

La stratégie présentée à la section [Autoriser Amazon Managed Service for Prometheus à envoyer des messages d'alerte à votre rubrique Amazon SNS](#AMP-alertmanager-receiver-AMPpermission) montre comment utiliser les clés de contexte de condition globale `aws:SourceArn` et `aws:SourceAccount` dans Amazon Managed Service for Prometheus afin d’éviter le problème de l’adjoint confus.

# Configurer le gestionnaire d'alertes pour envoyer des messages à votre rubrique Amazon SNS
<a name="AMP-alertmanager-receiver-config"></a>

Une fois que vous avez créé une rubrique Amazon SNS de type **standard** (nouvelle ou existante), vous pouvez l'ajouter à la configuration de votre gestionnaire d'alertes en tant que récepteur d'alertes. Le gestionnaire d'alertes peut transmettre vos alertes à un récepteur d'alertes configuré. Pour terminer, vous devez connaître le nom de ressource Amazon (ARN) de votre rubrique Amazon SNS.

Pour plus d’informations sur la configuration du récepteur Amazon SNS, consultez la section [<sns\$1configs>](https://prometheus.io/docs/alerting/latest/configuration/#sns_configs) dans la documentation de configuration de Prometheus. 

**Propriétés non prises en charge**

Amazon Managed Service for Prometheus prend en charge Amazon SNS en tant que récepteur d’alertes. Cependant, en raison de contraintes de service, toutes les propriétés du récepteur Amazon SNS ne sont pas prises en charge. Les propriétés suivantes ne sont pas autorisées dans un fichier de configuration de gestionnaire d’alertes Amazon Managed Service for Prometheus :
+ `api_url:` : Amazon Managed Service for Prometheus définit `api_url` pour vous. Cette propriété n’est donc pas autorisée.
+ `Http_config` : cette propriété vous permet de définir des proxys externes. Amazon Managed Service for Prometheus ne prend actuellement pas en charge cette fonctionnalité.

En outre, les paramètres SigV4 doivent avoir une propriété Région. Sans la propriété Région, Amazon Managed Service for Prometheus ne dispose pas de suffisamment d’informations pour effectuer la demande d’autorisation. 

**Pour configurer le gestionnaire d’alertes avec votre rubrique Amazon SNS comme destinataire**

1. Si vous utilisez un fichier de configuration de gestionnaire d’alertes existant, ouvrez-le dans un éditeur de texte.

1. S’il existe actuellement des récepteurs autres qu’Amazon SNS dans le bloc `receivers`, supprimez-les. Vous pouvez configurer plusieurs rubriques Amazon SNS pour qu’elles soient des récepteurs en les plaçant dans des blocs `sns_config` distincts au sein du bloc `receivers`.

1. Ajoutez le bloc YAML suivant dans la section `receivers`.

   ```
   - name: name_of_receiver
     sns_configs:
       - sigv4:
           region: Région AWS
         topic_arn: ARN_of_SNS_topic
         subject: yoursubject
         attributes:
           key: yourkey
           value: yourvalue
   ```

Si aucun `subject` n’est spécifié, par défaut, un objet est généré avec le modèle par défaut avec le nom et les valeurs de l’étiquette, ce qui peut entraîner une valeur trop longue pour SNS. Pour modifier le modèle appliqué à l’objet, reportez-vous à la section [Configurer le gestionnaire d'alertes pour envoyer des messages à Amazon SNS au format JSON](AMP-alertmanager-receiver-JSON.md) du présent guide. 

Vous devez à présent télécharger le fichier de configuration de votre gestionnaire d’alertes sur Amazon Managed Service for Prometheus. Pour de plus amples informations, veuillez consulter [Téléchargez le fichier de configuration de votre gestionnaire d'alertes sur Amazon Managed Service for Prometheus](AMP-alertmanager-upload.md).

# Configurer le gestionnaire d'alertes pour envoyer des messages à Amazon SNS au format JSON
<a name="AMP-alertmanager-receiver-JSON"></a>

Par défaut, le gestionnaire d'alertes Amazon Managed Service for Prometheus produit des messages sous forme de liste en texte brut. Cela peut être plus difficile à analyser pour les autres services. Vous pouvez configurer le gestionnaire d'alertes pour qu'il envoie des alertes au format JSON à la place. Le JSON peut simplifier le traitement des messages en aval d'Amazon SNS dans AWS Lambda ou dans les points de terminaison recevant des webhooks. Au lieu d’utiliser le modèle par défaut, vous pouvez définir un modèle personnalisé pour afficher le contenu du message au format JSON, ce qui facilite l’analyse dans les fonctions en aval.

Pour envoyer des messages du gestionnaire d’alertes à Amazon SNS au format JSON, mettez à jour la configuration de votre gestionnaire d’alertes afin qu’il contienne le code suivant dans votre section racine `template_files` :

```
default_template: |
   {{ define "sns.default.message" }}{{ "{" }}"receiver": "{{ .Receiver }}","status": "{{ .Status }}","alerts": [{{ range $alertIndex, $alerts := .Alerts }}{{ if $alertIndex }}, {{ end }}{{ "{" }}"status": "{{ $alerts.Status }}"{{ if gt (len $alerts.Labels.SortedPairs) 0 -}},"labels": {{ "{" }}{{ range $index, $label := $alerts.Labels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $label.Name }}": "{{ $label.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len $alerts.Annotations.SortedPairs ) 0 -}},"annotations": {{ "{" }}{{ range $index, $annotations := $alerts.Annotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $annotations.Name }}": "{{ $annotations.Value }}"{{ end }}{{ "}" }}{{- end }},"startsAt": "{{ $alerts.StartsAt }}","endsAt": "{{ $alerts.EndsAt }}","generatorURL": "{{ $alerts.GeneratorURL }}","fingerprint": "{{ $alerts.Fingerprint }}"{{ "}" }}{{ end }}]{{ if gt (len .GroupLabels) 0 -}},"groupLabels": {{ "{" }}{{ range $index, $groupLabels := .GroupLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $groupLabels.Name }}": "{{ $groupLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonLabels) 0 -}},"commonLabels": {{ "{" }}{{ range $index, $commonLabels := .CommonLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonLabels.Name }}": "{{ $commonLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonAnnotations) 0 -}},"commonAnnotations": {{ "{" }}{{ range $index, $commonAnnotations := .CommonAnnotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonAnnotations.Name }}": "{{ $commonAnnotations.Value }}"{{ end }}{{ "}" }}{{- end }}{{ "}" }}{{ end }}
   {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }}
```

**Note**  
Ce modèle crée des données au format JSON à partir de données alphanumériques. Si vos données comportent des caractères spéciaux, encodez-les avant d’utiliser ce modèle.

Pour vous assurer que ce modèle est utilisé dans les notifications sortantes, référencez-le dans votre bloc `alertmanager_config` comme suit :

```
alertmanager_config: |
  global:
  templates:
    - 'default_template'
```

**Note**  
Ce modèle est destiné à l’ensemble du corps du message au format JSON. Ce modèle remplace l’intégralité du corps du message. Vous ne pouvez pas remplacer le corps du message si vous souhaitez utiliser ce modèle spécifique. Tout remplacement effectué manuellement a la priorité sur le modèle.

Pour plus d’informations sur :
+ Le fichier de configuration du gestionnaire d’alertes, voir [Créez une configuration de gestionnaire d'alertes dans Amazon Managed Service pour Prometheus afin de gérer et d'acheminer les alertes](AMP-alertmanager-config.md).
+ Le chargement de votre fichier de configuration, voir [Téléchargez le fichier de configuration de votre gestionnaire d'alertes sur Amazon Managed Service for Prometheus](AMP-alertmanager-upload.md).

# Configurer Amazon SNS pour envoyer des messages d'alerte vers d'autres destinations
<a name="AMP-alertmanager-SNS-otherdestinations"></a>

Amazon Managed Service for Prometheus peut uniquement envoyer des messages d'alerte à Amazon Simple Notification Service (Amazon SNS). Pour envoyer ces messages vers d'autres destinations, telles que le courrier électronique, le webhook, Slack, etc. OpsGenie, vous devez configurer Amazon SNS pour transférer les messages vers ces points de terminaison.

Les sections suivantes décrivent la configuration d'Amazon SNS pour transférer les alertes vers d'autres destinations.

**Topics**
+ [E-mail](#AMP-alertmanager-SNS-otherdestinations-email)
+ [Webhook](#AMP-alertmanager-SNS-otherdestinations-webhook)
+ [Slack](#AMP-alertmanager-SNS-otherdestinations-Slack)
+ [OpsGenie](#AMP-alertmanager-SNS-otherdestinations-OpsGenie)

## E-mail
<a name="AMP-alertmanager-SNS-otherdestinations-email"></a>

Pour configurer une rubrique Amazon SNS pour envoyer des messages par e-mail, créez un abonnement. Dans la console Amazon SNS, choisissez l’onglet **Abonnements** pour ouvrir la page de liste **Abonnements**. Choisissez **Créer un abonnement**, puis sélectionnez **E-mail**. Amazon SNS envoie un e-mail de confirmation à l’adresse e-mail répertoriée. Après avoir accepté la confirmation, vous pouvez recevoir des notifications Amazon SNS sous forme d’e-mails provenant de la rubrique à laquelle vous vous êtes abonné. Pour plus d’informations, consultez [Abonnement à une rubrique Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html).

## Webhook
<a name="AMP-alertmanager-SNS-otherdestinations-webhook"></a>

Pour configurer une rubrique Amazon SNS pour envoyer des messages à un point de terminaison webhook, créez un abonnement. Dans la console Amazon SNS, choisissez l’onglet **Abonnements** pour ouvrir la page de liste **Abonnements**. Choisissez **Créer un abonnement**, puis sélectionnez **HTTP/HTTPS**. Après avoir créé l’abonnement, vous devez suivre les étapes de confirmation pour l’activer. Lorsqu’il est actif, votre point de terminaison HTTP doit recevoir les notifications Amazon SNS. Pour plus d’informations, consultez [Abonnement à une rubrique Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html). Pour plus d’informations sur l’utilisation de webhooks Slack pour publier des messages vers différentes destinations, consultez [Comment utiliser les webhooks pour publier des messages Amazon SNS sur Amazon Chime, Slack ou Microsoft Teams ?](https://aws.amazon.com/premiumsupport/knowledge-center/sns-lambda-webhooks-chime-slack-teams/)

## Slack
<a name="AMP-alertmanager-SNS-otherdestinations-Slack"></a>

Pour configurer une rubrique Amazon SNS afin qu’elle envoie des messages à Slack, deux options s’offrent à vous. Vous pouvez soit intégrer email-to-channel l'intégration de Slack, qui permet à Slack d'accepter des e-mails et de les transférer vers un canal Slack, soit utiliser une fonction Lambda pour réécrire la notification Amazon SNS envoyée à Slack. Pour plus d'informations sur le transfert d'e-mails vers les chaînes Slack, consultez [Confirmation de l'abonnement aux AWS rubriques SNS pour Slack](https://stackoverflow.com/questions/49341187/confirming-aws-sns-topic-subscription-for-slack-webhook) Webhook. Pour plus d’informations sur la construction d’une fonction Lambda pour convertir les messages Amazon SNS en messages Slack, consultez la section [How to integrate Amazon Managed Service for Prometheus with Slack](https://aws.amazon.com/blogs/mt/how-to-integrate-amazon-managed-service-for-prometheus-with-slack/).

## OpsGenie
<a name="AMP-alertmanager-SNS-otherdestinations-OpsGenie"></a>

Pour plus d'informations sur la configuration d'une rubrique Amazon SNS vers laquelle envoyer des messages OpsGenie, consultez [Intégrer Opsgenie à Amazon SNS entrant](https://support.atlassian.com/opsgenie/docs/integrate-opsgenie-with-incoming-amazon-sns/).

# Comprendre les règles de validation des messages Amazon SNS
<a name="AMP-alertmanager-receiver-validation-truncation"></a>

Amazon Simple Notification Service (Amazon SNS) exige que les messages répondent à certaines normes. Les messages qui ne répondent pas à ces normes seront modifiés dès leur réception. Les messages d'alerte seront validés, tronqués ou modifiés, si nécessaire, par le récepteur Amazon SNS selon les règles suivantes :
+ Le message contient des caractères non UTF.
  + Le message sera remplacé par **Error - il ne s'agit pas d'une chaîne codée en UTF-8 valide**.
  + Un attribut de message sera ajouté avec la clé **tronquée** et la valeur **true**.
  + Un attribut de message sera ajouté avec la clé **Modified** et la valeur **Message : Error - chaîne codée en UTF-8 non valide**.
+ Le message est vide.
  + Le message sera remplacé par **Erreur - Le message ne doit pas être vide**.
  + Un attribut de message sera ajouté avec la clé « **modifié** » et la valeur « **Message : Error - Le message ne doit pas être vide** ».
+ Le message a été tronqué.
  + Le contenu du message sera tronqué.
  + Un attribut de message sera ajouté avec la clé **tronquée** et la valeur **true**.
  + Un attribut de message sera ajouté avec la clé « modifié » et la valeur **Message : Erreur - Le message a été tronqué de *X* Ko, car il dépasse la limite de 256 Ko**.
+ Le sujet contient des caractères de contrôle ou non ASCII.
  + Si le sujet contient des caractères de contrôle ou des caractères non ASCII, SNS remplace le sujet par **Error (contient des caractères de contrôle ou non ASCII)**.
  + Pour les sujets des e-mails SNS, supprimez les caractères de contrôle, tels que les nouvelles lignes :. `\n`
+ L’objet n’est pas au format ASCII.
  + Le sujet sera remplacé par **Erreur - contient des caractères ASCII non imprimables**.
  + Un attribut de message sera ajouté avec la clé **Modified** et la valeur **Subject : Error - contient des caractères ASCII non imprimables**.
+ L’objet a été tronqué.
  + Le contenu de l’objet sera tronqué.
  + Un attribut de message sera ajouté avec la clé « **modifié** » et la valeur « **Objet : erreur » - Le nombre de *X* caractères de l'objet a été tronqué, car il dépasse la limite de 100 caractères**.
+ La clé/valeur de l’attribut de message n’est pas valide.
  + L’attribut de message non valide sera supprimé.
  + Un attribut de message sera ajouté avec la clé de **modification** et la valeur **MessageAttribute: Erreur - si les attributs *X* du message ont été supprimés car non valides MessageAttributeKey ou MessageAttributeValue**.
+ L’attribut de message a été tronqué.
  + Les attributs de message supplémentaires seront supprimés.
  + Un attribut de message sera ajouté avec la clé « **modifié** » et la valeur « **Erreur » MessageAttribute : si les attributs *X* du message ont été supprimés, car il dépasse la limite de 256 Ko**.

# Utiliser PagerDuty comme récepteur d'alertes
<a name="AMP-alertmanager-pagerduty"></a>

Vous pouvez configurer Amazon Managed Service for Prometheus pour qu'il envoie des alertes directement à. PagerDuty Cette intégration nécessite que vous stockiez votre clé PagerDuty d'intégration AWS Secrets Manager et que vous autorisiez Amazon Managed Service for Prometheus à lire le secret.

PagerDuty l'intégration permet d'automatiser les flux de travail de réponse aux incidents et de garantir que les alertes critiques parviennent aux bons membres de l'équipe au bon moment. Lorsque vous l'utilisez PagerDuty en tant que récepteur d'alertes, vous pouvez tirer parti des politiques d'escalade, PagerDuty de la planification des appels et des fonctionnalités de gestion des incidents pour garantir que les alertes sont reconnues et résolues rapidement. Cette intégration est particulièrement utile pour les environnements de production où une réponse rapide aux problèmes du système est essentielle pour maintenir la disponibilité des services et respecter les exigences des SLA. Pour plus d'informations, consultez la [base de PagerDuty connaissances](https://support.pagerduty.com/) sur le *PagerDuty site Web*.

## PagerDuty options de configuration
<a name="AMP-alertmanager-pagerduty-configuration-options"></a>




| Option | Description | Obligatoire | 
| --- | --- | --- | 
|  `routing_key`  |  La clé PagerDuty de routage pour une intégration sur un service. Vous devez le spécifier en tant qu'ARN du Gestionnaire de Secrets  |  Oui  | 
|  `service_key`  |  La clé PagerDuty de service pour une intégration sur un service. Vous devez le spécifier en tant qu'ARN du Gestionnaire de Secrets  |  Oui (pour l'API Events v1)  | 
|  `client`  |  L'identification du client du notifiant  |  Non  | 
|  `client_url`  |  Un lien retour vers l'expéditeur de la notification  |  Non  | 
|  `description`  |  Description de l'incident  |  Non  | 
|  `details`  |  Un ensemble de key/value paires arbitraires qui fournissent plus de détails sur l'incident  |  Non  | 
|  `severity`  |  Gravité de l'incident  |  Non  | 
|  `class`  |  La classe, ou le type, de l'événement  |  Non  | 
|  `component`  |  Composant de la machine source responsable de l'événement  |  Non  | 
|  `group`  |  Regroupement logique de composants  |  Non  | 
|  `source`  |  L'emplacement unique du système concerné  |  Non  | 

**Note**  
Les `http_config` options`url`, `service_key_file``routing_key_file`, et ne sont pas prises en charge.

Les rubriques suivantes décrivent comment procéder à la configuration PagerDuty en tant que récepteur d'alertes dans Amazon Managed Service for Prometheus.

**Topics**
+ [PagerDuty options de configuration](#AMP-alertmanager-pagerduty-configuration-options)
+ [Configuration AWS Secrets Manager et autorisations](AMP-alertmanager-pagerduty-permissions.md)
+ [Configurer le gestionnaire d'alertes pour envoyer des alertes à PagerDuty](AMP-alertmanager-pagerduty-configure-alertmanager.md)

# Configuration AWS Secrets Manager et autorisations
<a name="AMP-alertmanager-pagerduty-permissions"></a>

Avant de pouvoir envoyer des alertes à PagerDuty, vous devez stocker en toute sécurité votre clé PagerDuty d'intégration et configurer les autorisations nécessaires. Ce processus implique de créer un secret AWS Secrets Manager, de le chiffrer avec une clé gérée par le client AWS Key Management Service (AWS KMS) et d'accorder à Amazon Managed Service for Prometheus les autorisations requises pour accéder à la fois au secret et à sa clé de chiffrement. Les procédures suivantes vous guident à chaque étape de ce processus de configuration. 

**Pour créer un secret dans Secrets Manager pour PagerDuty**  
Pour l'utiliser PagerDuty comme récepteur d'alertes, vous devez enregistrer votre clé PagerDuty d'intégration dans Secrets Manager. Procédez comme suit :

1. Ouvrez la [console Secrets Manager](https://console.aws.amazon.com/secretsmanager/).

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Pour **Secret type** (Type de secret), choisissez **Other type of secret** (Autre type de secret).

1. Pour les **paires clé/valeur**, entrez votre clé PagerDuty d'intégration comme valeur secrète. Il s'agit de la clé de routage ou de la clé de service de votre PagerDuty intégration.

1. Choisissez **Suivant**.

1. Entrez le nom et la description de votre secret, puis choisissez **Next**.

1. Configurez les paramètres de rotation si vous le souhaitez, puis choisissez **Next**.

1. Vérifiez vos paramètres et choisissez **Store**.

1. Après avoir créé le secret, notez son ARN. Vous en aurez besoin pour configurer le gestionnaire d'alertes.

**Pour chiffrer votre secret avec une clé gérée par le client AWS KMS**

Vous devez autoriser Amazon Managed Service for Prometheus à accéder à votre secret et à sa clé de chiffrement :

1. **Politique relative aux ressources secrètes** : ouvrez votre secret dans la [console Secrets Manager](https://console.aws.amazon.com/secretsmanager/).

   1. Choisissez **Autorisations relatives aux ressources**.

   1. Choisissez **Modifier les autorisations**.

   1. Ajoutez la déclaration de politique suivante. Dans la déclaration, remplacez le *highlighted values* par vos valeurs spécifiques.

      ```
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "aps.amazonaws.com"
        },
        "Action": "secretsmanager:GetSecretValue",
        "Resource": "*",
        "Condition": {
          "ArnEquals": {
            "aws:SourceArn": "arn:aws:aps:aws-region:123456789012:workspace/WORKSPACE_ID"
          },
          "StringEquals": {
            "aws:SourceAccount": "123456789012"
          }
        }
      }
      ```

   1. Choisissez **Enregistrer**.

1. **Politique relative aux clés KMS** : ouvrez votre AWS KMS clé dans la [AWS KMS console](https://console.aws.amazon.com/kms).

   1. Choisissez **Key policy**.

   1. Choisissez **Modifier**.

   1. Ajoutez la déclaration de politique suivante. Dans la déclaration, remplacez le *highlighted values* par vos valeurs spécifiques.

      ```
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "aps.amazonaws.com"
        },
        "Action": "kms:Decrypt",
        "Resource": "*",
        "Condition": {
          "ArnEquals": {
            "aws:SourceArn": "arn:aws:aps:aws-region:123456789012:workspace/WORKSPACE_ID"
          },
          "StringEquals": {
            "aws:SourceAccount": "123456789012"
          }
        }
      }
      ```

   1. Choisissez **Enregistrer**.

**Prochaines étapes** — Passez à la rubrique suivante,[Configurer le gestionnaire d'alertes pour envoyer des alertes à PagerDuty](AMP-alertmanager-pagerduty-configure-alertmanager.md).

# Configurer le gestionnaire d'alertes pour envoyer des alertes à PagerDuty
<a name="AMP-alertmanager-pagerduty-configure-alertmanager"></a>

Pour configurer le gestionnaire d'alertes auquel envoyer des alertes PagerDuty, vous devez mettre à jour la définition de votre gestionnaire d'alertes. Pour ce faire, utilisez le AWS Management Console AWS CLI, ou AWS SDKs.

**Example configuration du gestionnaire d'alertes**  
Voici un exemple de configuration du gestionnaire d'alertes qui envoie des alertes à PagerDuty. Dans l'exemple, remplacez le *highlighted values* par vos valeurs spécifiques.  

```
alertmanager_config: |
  route:
    receiver: 'pagerduty-receiver'
    group_by: ['alertname']
    group_wait: 30s
    group_interval: 5m
    repeat_interval: 1h
  receivers:
    - name: 'pagerduty-receiver'
      pagerduty_configs:
      - routing_key: 
          aws_secrets_manager:
            secret_arn: 'arn:aws:secretsmanager:aws-region:123456789012:secret:YOUR_SECRET_NAME'
            secret_key: 'YOUR_SECRET_KEY'
            refresh_interval: 5m
        description: '{{ .CommonLabels.alertname }}'
        severity: 'critical'
        details:
          firing: '{{ .Alerts.Firing | len }}'
          status: '{{ .Status }}'
          instance: '{{ .CommonLabels.instance }}'
```

**Example AWS CLI**  
Vous trouverez ci-dessous une AWS CLI commande utilisée pour mettre à jour la définition de votre gestionnaire d'alertes. Dans l'exemple, remplacez le *highlighted values* par vos valeurs spécifiques.  

```
aws amp put-alert-manager-definition \
  --workspace-id WORKSPACE_ID \
  --data file://alertmanager-config.yaml
```

## Résolution des problèmes PagerDuty d'intégration
<a name="AMP-alertmanager-pagerduty-troubleshooting"></a>

Si aucune alerte n'est envoyée à PagerDuty, vérifiez les points suivants :
+ Vérifiez que votre secret existe et qu'il contient la bonne clé PagerDuty d'intégration.
+ Vérifiez que votre secret est chiffré à l'aide d'une clé KMS gérée par le client.
+ Assurez-vous que les politiques de ressources relatives au secret et à la clé KMS accordent les autorisations nécessaires à Amazon Managed Service for Prometheus.
+ Vérifiez que l'ARN de la configuration de votre gestionnaire d'alertes fait correctement référence à votre secret.
+ Vérifiez que votre clé PagerDuty d'intégration est valide et active dans votre PagerDuty compte.

Amazon Managed Service for Prometheus prend en charge CloudWatch Amazon Logs et les indicateurs suivants pour faciliter CloudWatch le dépannage. Pour plus d’informations, consultez [Surveillez les événements Prometheus via Amazon Managed Service grâce aux journaux CloudWatch](CW-logs.md) et [Utilisez CloudWatch des métriques pour surveiller les ressources Amazon Managed Service for Prometheus](AMP-CW-usage-metrics.md).CloudWatch métriques
+ `SecretFetchFailure`
+ `AlertManagerNotificationsThrottledByIntegration`
+ `AlertManagerNotificationsFailedByIntegration`

# Téléchargez le fichier de configuration de votre gestionnaire d'alertes sur Amazon Managed Service for Prometheus
<a name="AMP-alertmanager-upload"></a>

Une fois que vous savez ce que vous voulez inclure dans votre fichier de configuration d'Alert Manager, vous pouvez le créer et le modifier dans la console, ou vous pouvez télécharger un fichier existant avec la console Amazon Managed Service for Prometheus ou. AWS CLI

**Note**  
Si vous utilisez un cluster Amazon EKS, vous pouvez également télécharger un fichier de configuration du gestionnaire d'alertes à l'aide de [AWS Controllers for Kubernetes](integrating-ack.md).

**Pour utiliser la console Amazon Managed Service for Prometheus afin de modifier ou de remplacer la configuration de votre gestionnaire d'alertes**

1. Ouvrez la console Amazon Managed Service for Prometheus à l'adresse. [https://console.aws.amazon.com/prometheus/](https://console.aws.amazon.com/prometheus/home)

1. Dans le coin supérieur gauche de la page, cliquez sur l’icône du menu, puis sur **Tous les espaces de travail**.

1. Choisissez l’ID de l’espace de travail, puis cliquez sur l’onglet **Gestionnaire d’alertes**.

1. Si l’espace de travail ne possède pas encore de définition de gestionnaire d’alertes, choisissez **Add definition**.
**Note**  
Si l'espace de travail possède une définition de gestionnaire d'alertes que vous souhaitez remplacer, choisissez plutôt **Modifier**.

1. Choisissez **Choose file**, sélectionnez le fichier de définition du gestionnaire d’alertes, puis cliquez sur **Continuer**.
**Note**  
Vous pouvez également créer un nouveau fichier et le modifier directement dans la console en choisissant l'option **Créer une définition**. Cela créera un exemple de configuration par défaut que vous modifierez avant le téléchargement.

**AWS CLI Pour télécharger une configuration de gestionnaire d'alertes dans un espace de travail pour la première fois**

1. Encodez en Base64 le contenu du fichier de votre gestionnaire d’alertes. Sous Linux, vous pouvez utiliser la commande suivante :

   ```
   base64 input-file output-file
   ```

   Sous macOS, vous pouvez utiliser la commande suivante :

   ```
   openssl base64 input-file output-file
   ```

1. Pour télécharger le fichier, entrez l’une des commandes suivantes.

   Dans la AWS CLI version 2, entrez :

   ```
   aws amp create-alert-manager-definition --data file://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

   Dans la AWS CLI version 1, entrez :

   ```
   aws amp create-alert-manager-definition --data fileb://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

1. Il faut compter quelques secondes pour que la configuration de votre gestionnaire d’alertes soit activée. Pour vérifier l’état, entrez la commande suivante :

   ```
   aws amp describe-alert-manager-definition --workspace-id workspace_id --region region
   ```

   Si l’`status` est `ACTIVE`, la nouvelle définition de votre gestionnaire d’alertes a pris effet.

**Pour utiliser le AWS CLI pour remplacer la configuration du gestionnaire d'alertes d'un espace de travail par une nouvelle**

1. Encodez en Base64 le contenu du fichier de votre gestionnaire d’alertes. Sous Linux, vous pouvez utiliser la commande suivante :

   ```
   base64 input-file output-file
   ```

   Sous macOS, vous pouvez utiliser la commande suivante :

   ```
   openssl base64 input-file output-file
   ```

1. Pour télécharger le fichier, entrez l’une des commandes suivantes.

   Dans la AWS CLI version 2, entrez :

   ```
   aws amp put-alert-manager-definition --data file://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

   Dans la AWS CLI version 1, entrez :

   ```
   aws amp put-alert-manager-definition --data file://path_to_base_64_output_file --workspace-id my-workspace-id --region region
   ```

1. Il faut compter quelques secondes pour que votre nouvelle configuration de gestionnaire d’alertes soit activée. Pour vérifier l’état, entrez la commande suivante :

   ```
   aws amp describe-alert-manager-definition --workspace-id workspace_id --region region
   ```

   Si l’`status` est `ACTIVE`, la nouvelle définition de votre gestionnaire d’alertes a pris effet. Jusqu’à ce moment, la configuration précédente de votre gestionnaire d’alertes reste active.

# Intégrez des alertes à Amazon Managed Grafana ou à Grafana open source
<a name="integrating-grafana"></a>

Les règles d’alerte que vous avez créées dans le gestionnaire d’alertes au sein d’Amazon Managed Service for Prometheus peuvent être transmises et consultées dans [Amazon Managed Grafana](https://aws.amazon.com/grafana/) et [Grafana](https://grafana.com), unifiant ainsi vos règles d’alerte et vos alertes dans un environnement unique. Dans Amazon Managed Grafana, vous pouvez consulter vos règles d’alerte et les alertes générées.

## Conditions préalables
<a name="grafana-prereqs"></a>

Avant de commencer à intégrer Amazon Managed Service for Prometheus dans Amazon Managed Grafana, vous devez remplir les conditions suivantes :
+ Vous devez disposer d'informations d'identification Compte AWS et d'identification IAM existantes pour créer des rôles Amazon Managed Service for Prometheus et IAM par programmation.

  Pour plus d'informations sur la création d'informations d'identification Compte AWS et IAM, consultez[Configurez AWS](AMP-setting-up.md).
+ Vous devez disposer d’un espace de travail Amazon Managed Service for Prometheus et y ingérer des données. Pour configurer un nouvel espace de travail, consultez la section [Création d’un espace de travail Amazon Managed Service for Prometheus](AMP-onboard-create-workspace.md). Vous devez également connaître les concepts de Prometheus tels que le gestionnaire d’alertes et les règles. Pour plus d’informations sur ces rubriques, consultez la [documentation Prometheus](https://prometheus.io/docs/introduction/overview/).
+ Vous disposez d’une configuration de gestionnaire d’alertes et d’un fichier de règles déjà configurés dans Amazon Managed Service for Prometheus. Pour plus d’informations sur le gestionnaire d’alertes dans Amazon Managed Service for Prometheus, consultez la section [Gestion et transfert des alertes dans Amazon Managed Service for Prometheus avec le gestionnaire d'alertes](AMP-alert-manager.md). Pour plus d’informations sur les règles, consultez [Utilisation de règles pour modifier ou surveiller les métriques au fur et à mesure de leur réception](AMP-Ruler.md).
+ Amazon Managed Grafana doit être installé ou la version open source de Grafana doit être en cours d’exécution.
  + Si vous utilisez Amazon Managed Grafana, vous devez utiliser les alertes Grafana. Pour plus d’informations, consultez la section [Migrating legacy dashboard alerts to Grafana alerting](https://docs.aws.amazon.com/grafana/latest/userguide/alert-opt-in.html).
  + Si vous utilisez la version open source de Grafana, vous devez utiliser la version 9.1 ou une version supérieure.
**Note**  
Vous pouvez utiliser les versions antérieures de Grafana, mais vous devez [activer la fonctionnalité d’alerte unifiée](https://grafana.com/docs/grafana/v8.4/alerting/unified-alerting/opt-in/) (alerte Grafana), et vous devrez peut-être configurer un [proxy sigv4](https://github.com/awslabs/aws-sigv4-proxy) pour passer des appels depuis Grafana vers Amazon Managed Service for Prometheus. Pour de plus amples informations, veuillez consulter [Configuration de Grafana open source ou Grafana Enterprise pour une utilisation avec Amazon Managed Service for Prometheus](AMP-onboard-query-standalone-grafana.md).
+ Amazon Managed Grafana doit avoir les autorisations suivantes pour vos ressources Prometheus. Vous devez les ajouter aux politiques gérées par le service ou aux politiques gérées par le client décrites dans [https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-manage-permissions.html).
  + `aps:ListRules`
  + `aps:ListAlertManagerSilences`
  + `aps:ListAlertManagerAlerts`
  + `aps:GetAlertManagerStatus`
  + `aps:ListAlertManagerAlertGroups`
  + `aps:PutAlertManagerSilences`
  + `aps:DeleteAlertManagerSilence`

## Configuration d’Amazon Managed Grafana
<a name="grafana-set-up-grafana"></a>

Si vous avez déjà défini des règles et des alertes dans votre instance Amazon Managed Service for Prometheus, la configuration permettant d’utiliser Amazon Managed Grafana comme tableau de bord pour ces alertes est entièrement effectuée dans Amazon Managed Grafana. 

**Pour configurer Amazon Managed Grafana comme tableau de bord des alertes**

1. Ouvrez la console Grafana pour votre espace de travail.

1. Sous **Configurations**, sélectionnez **Sources de données**.

1. Créez ou ouvrez votre source de données Prometheus. Si vous n’avez pas encore configuré de source de données Prometheus, consultez la section [Étape 2 : Ajouter la source de données Prometheus dans Grafana](AMP-onboard-query-standalone-grafana.md#AMP-onboard-query-standalone-grafana-datasource) pour plus d’informations.

1. Dans la source de données Prometheus, sélectionnez **Manage alerts via Alertmanager UI**.

1. Revenez à l’interface **Sources de données**.

1. Créez une nouvelle source de données de gestionnaire d’alertes.

1. Sur la page de configuration de la source de données du gestionnaire d’alertes, ajoutez les paramètres suivants :
   + Définissez **Implementation** sur `Prometheus`.
   + Pour le paramètre **URL**, utilisez l’URL de votre espace de travail Prometheus, supprimez tout ce qui se trouve après l’ID d’espace de travail et ajoutez `/alertmanager` à la fin. Dans l'exemple suivant, remplacez les *variables* par vos propres informations (spécifiques au compte) :

     ```
     https://aps-workspaces.US East (N. Virginia).amazonaws.com/workspaces/ws-example-1234-5678-abcd-xyz00000001/alertmanager.
     ```
   + Sous **Auth**, activez **SigV4Auth**. Cela indique à Grafana d’utiliser l’[authentification](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)AWS pour les demandes.
   + Sous **Sigv4Auth Details**, pour **Default Region**, indiquez la région de votre instance Prometheus, par exemple `us-east-1`.
   + Définissez l’option **Default** sur `true`.

1. Choisissez **Save and test**.

1. Vos alertes Amazon Managed Service for Prometheus doivent désormais être configurées pour fonctionner avec votre instance Grafana. Sur la page **Alerte** de Grafana, vérifiez que vous pouvez voir **Alert rules**, **Alert groups** (notamment les alertes actives) et **Silences** sur votre instance Amazon Managed Service for Prometheus.

# Résoudre les problèmes liés au gestionnaire d'alertes avec les journaux CloudWatch
<a name="Troubleshooting-alerting"></a>

[Surveillez les événements Prometheus via Amazon Managed Service grâce aux journaux CloudWatch](CW-logs.md) vous permet de résoudre les problèmes liés au gestionnaire d’alertes et à l’outil de règle. Cette section contient des rubriques de dépannage relatives au gestionnaire d’alertes. 

**Topics**
+ [Alertes actives (avertissement)](#Troubleshooting-alerting-active-alerts)
+ [Avertissement concernant la taille du groupe d'agrégation d'alertes](#Troubleshooting-alerting-aggregation-group-size)
+ [La taille des alertes est trop grande (avertissement)](#Troubleshooting-alerting-size-too-big)
+ [Avertissement de contenu vide](#Troubleshooting-alerting-empty)
+ [Avertissement `key/value` non valide](#Troubleshooting-alerting-invalid-keyvalue)
+ [Avertissement de limite de message](#Troubleshooting-alerting-msg-limit)
+ [Aucune erreur de stratégie basée sur les ressources](#Troubleshooting-alerting-no-policy)
+ [Avertissement de format non ASCII](#Troubleshooting-alerting-non-ASCII)
+ [Non autorisé à appeler KMS](#Troubleshooting-alerting-no-access-kms)
+ [Erreur de modèle](#Troubleshooting-template-error)

## Alertes actives (avertissement)
<a name="Troubleshooting-alerting-active-alerts"></a>

**Lorsque le journal contient l’avertissement suivant**

```
{
    "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
    "message": {
        "log": "too many alerts, limit: 1000",
        "level": "WARN"
    },
    "component": "alertmanager"
}
```

Cela signifie que le quota d'**alertes actives du gestionnaire d'alertes** est dépassé.

**Action à exécuter**

Demandez une augmentation de quota. Connectez-vous à la console Service Quotas AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/).

## Avertissement concernant la taille du groupe d'agrégation d'alertes
<a name="Troubleshooting-alerting-aggregation-group-size"></a>

**Lorsque le journal contient l’avertissement suivant**

```
{
    "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
    "message": {
        "log": "Too many aggregation groups, cannot create new group for alert, groups=1000, limit=1000, alert=sample-alert",
        "level": "WARN"
    },
    "component": "alertmanager"
}
```

Cela signifie que le quota de taille du groupe d'agrégation d'alertes du gestionnaire d'alertes a été dépassé.

**Action à exécuter**

Réduisez la taille du groupe d'agrégation d'alertes en utilisant le `group_by` paramètre. *Pour plus d'informations, consultez la section [Paramètres relatifs à l'itinéraire dans la documentation de Prometheus](https://prometheus.io/docs/alerting/latest/configuration/).*

Vous pouvez également demander une augmentation de quota. Connectez-vous à la console Service Quotas AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/).

## La taille des alertes est trop grande (avertissement)
<a name="Troubleshooting-alerting-size-too-big"></a>

**Lorsque le journal contient l’avertissement suivant**

```
{
    "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
    "message": {
        "log": "alerts too big, total size limit: 20000000 bytes",
        "level": "WARN"
    },
    "component": "alertmanager"
}
```

Cela signifie que le quota d'alertes par espace de travail, en termes de taille, a été dépassé.

**Action à exécuter**

Supprimez les annotations et les étiquettes inutiles afin de réduire la taille des alertes.

## Avertissement de contenu vide
<a name="Troubleshooting-alerting-empty"></a>

**Lorsque le journal contient l’avertissement suivant**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Message has been modified because the content was empty."
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Cela signifie que le modèle de gestionnaire d’alertes a résolu l’alerte sortante en message vide. 

**Action à exécuter**

Validez votre modèle de gestionnaire d’alertes et assurez-vous que vous disposez d’un modèle valide pour tous les chemins de réception. 

## Avertissement `key/value` non valide
<a name="Troubleshooting-alerting-invalid-keyvalue"></a>

**Lorsque le journal contient l’avertissement suivant**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "MessageAttributes has been removed because of invalid key/value, numberOfRemovedAttributes=1"
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Cela signifie que certains attributs du message ont été supprimés car ils n' keys/values étaient pas valides. 

**Action à exécuter**

Réévaluez les modèles que vous utilisez pour renseigner les attributs des messages et assurez-vous qu’ils correspondent à des attributs de message SNS valides. Pour plus d’informations sur la validation d’un message envoyé à une rubrique Amazon SNS, consultez la section [Validating SNS topic](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html#API_Publish_RequestParameters).

## Avertissement de limite de message
<a name="Troubleshooting-alerting-msg-limit"></a>

**Lorsque le journal contient l’avertissement suivant**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Message has been truncated because it exceeds size limit, originSize=266K, truncatedSize=12K"
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Cela signifie qu’une partie de la taille du message est trop grande. 

**Action à exécuter**

Examinez le modèle de message du récepteur d’alertes et modifiez-le pour qu’il respecte la limite de taille.

## Aucune erreur de stratégie basée sur les ressources
<a name="Troubleshooting-alerting-no-policy"></a>

**Lorsque le journal contient l’erreur suivante**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Notify for alerts failed, AMP is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-west-2:12345:testSnsReceiver because no resource-based policy allows the SNS:Publish action"
       "level": "ERROR"
   },
   "component": "alertmanager"
}
```

Cela signifie qu’Amazon Managed Service for Prometheus n’est pas autorisé à envoyer l’alerte à la rubrique SNS spécifiée. 

**Action à exécuter**

Vérifiez que la stratégie d’accès de la rubrique SNS autorise Amazon Managed Service for Prometheus à envoyer des messages SNS à la rubrique. Créez une politique d'accès aux réseaux sociaux donnant au service `aps.amazonaws.com` (Amazon Managed Service for Prometheus) l'accès à votre rubrique Amazon SNS. Pour plus d'informations sur les politiques d'accès aux réseaux sociaux, consultez les [sections Utilisation du langage des politiques d'accès](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-language-using.html) et [exemples de cas pour le contrôle d'accès Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html) dans le guide du *développeur Amazon Simple Notification Service*.

## Avertissement de format non ASCII
<a name="Troubleshooting-alerting-non-ASCII"></a>

**Lorsque le journal contient l’avertissement suivant**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Subject has been modified because it contains control or non-ASCII characters."
       "level": "WARN"
   },
   "component": "alertmanager"
}
```

Cela signifie que l’objet comporte des caractères non ASCII. 

**Action à exécuter**

Dans le champ d’objet de votre modèle, supprimez les références aux étiquettes susceptibles de contenir des caractères non ASCII.

## Non autorisé à appeler KMS
<a name="Troubleshooting-alerting-no-access-kms"></a>

**Lorsque le journal contient l' AWS KMS erreur suivante**

```
{
   "workspaceId": "ws-abcd1234-ef56-78ab-cd90-1234abcd0000",
   "message": {
       "log": "Notify for alerts failed, AMP is not authorized to call KMS",
       "level": "ERROR"
   },
   "component": "alertmanager"
}
```

**Action à exécuter**

Vérifiez que la politique clé de la clé utilisée pour chiffrer le sujet Amazon SNS autorise le `aps.amazonaws.com` principal de service Amazon Managed Service for Prometheus à effectuer les actions suivantes : et. `kms:GenerateDataKey*` `kms:Decrypt` Pour plus d’informations, veuillez consulter la section [AWS Autorisations KMS pour SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#sns-what-permissions-for-sse).

## Erreur de modèle
<a name="Troubleshooting-template-error"></a>

**Lorsque le journal contient l’erreur suivante**

```
               {
   "workspaceId": "ws-efdc5b42-b051-11ec-b123-4567ac120002",
   "message": {
       "log": "Notify for alerts failed. There is an error in a receiver that is using templates in the AlertManager definition. Make sure that the syntax is correct and only template functions and variables that exist are used in the receiver 'default', sns_configs position #2, section 'attributes'"
       "level": "ERROR"
   },
   "component": "alertmanager"
}
```

Cela signifie qu'un modèle utilisé dans la AlertManager définition contient une erreur. L'entrée d'erreur contient des instructions concernant le récepteur, la position dans le fichier sns\$1configs et la propriété contenant les erreurs.

**Action à exécuter**

Validez votre définition d'Alert Manager. Assurez-vous que la syntaxe est correcte et que vous faites référence aux variables de modèle et aux fonctions existantes. Pour plus d'informations, consultez la [référence du modèle de notification](https://prometheus.io/docs/alerting/latest/notifications/) dans la documentation open *source de Prometheus*.