View a markdown version of this page

Alarmes d'ingestion depuis les APM avec intégration directe d'Amazon SNS - Guide de l'utilisateur d'AWS Incident Detection and Response

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.

Alarmes d'ingestion depuis les APM avec intégration directe d'Amazon SNS

Si votre APM prend en charge l'envoi d'alarmes vers des rubriques Amazon SNS, vous pouvez suivre ce guide pour intégrer vos alarmes APM à AWS Incident Detection and Response.

Vous pouvez déployer le CloudFormation modèle fourni ou configurer manuellement cette intégration. Avant de configurer l'intégration, vérifiez que le rôle AWS lié aux services (SLR) AWSServiceRoleForHealth_EventProcessor est créé dans vos comptes.

Option 1 : utilisation CloudFormation

Un CloudFormation modèle est disponible pour simplifier le processus de création de l'infrastructure d'intégration requise pour intégrer les alarmes à AWS Incident Detection and Response à partir de votre APM avec l'intégration Amazon SNS.

Note
  • Des coûts supplémentaires seront encourus pour les ressources déployées via ce CloudFormation modèle (par exemple : Lambda et EventBridge). Pour plus d'informations sur la tarification de ces services, consultez la section AWS Tarification.

  • Ce CloudFormation modèle doit être déployé dans chaque AWS compte et chaque région depuis lesquels les alarmes doivent être ingérées par AWS Incident Detection and Response.

  • Les exemples fournis dans ce document concernent Grafana, mais ce modèle peut être utilisé pour tout APM directement intégré à Amazon Simple Notification Service.

  • Pour des raisons de sécurité, AWS recommande de supprimer les logger.info() instructions du TransformLambdaFunction afin d'empêcher la charge utile d'être enregistrée dans Amazon CloudWatch Logs.

Conditions préalables au déploiement de ce CloudFormation modèle :

  • Une rubrique Amazon Simple Notification Service standard doit être créée pour recevoir les événements d'alarme de votre APM. Créez une rubrique SNS dans la console Amazon Simple Notification Service.

  • Le TransformLambdaFunction contenu du modèle doit être modifié pour ["detail"]["incident-detection-response-identifier"] atteindre la valeur souhaitée en fonction de l'APM utilisé.

Achèvement des prérequis :

  1. Ouvrez la console Amazon SNS, puis sélectionnez Rubriques. Copiez l'ARN de la rubrique Amazon SNS standard créée pour recevoir les événements d'alarme de votre APM.

    • Exemple : arn:aws:sns:eu-west-1:012345678912:<your-apm-name>-sns

  2. Téléchargez et ouvrez le CloudFormation modèle

    • Localisez-le TransformLambdaFunction dans le modèle

      • Sous def lambda_handler(event, context) défini sur event["detail"]["incident-detection-response-identifier"] le chemin json où le nom de l'alarme apparaît dans la charge utile JSON de l'enregistrement SNS.

        • Tout événement envoyé au TransformLambdaFunction via SNS possède une structure de charge utile parente sous la forme. event["Records"][n]["Sns"]["Message"] L'origine réelle de la charge utile depuis la source (APM) est encapsulée dans la structure parente.

        • Exemple pour Grafana : event["Records"][n]["Sns"]["Message"]["alerts"][n]["labels"]["alertname"]

Déploiement du CloudFormation modèle :

  1. Accédez à la CloudFormation console dans le compte et la région dans lesquels vous devez configurer l'intégration.

  2. Naviguez vers CloudFormation.

    • Choisissez Créer une pile, avec de nouvelles ressources (standard)

      • Sélectionnez Choisir un modèle existant, Charger un fichier modèle, Choisir un fichier, puis téléchargez le CloudFormation modèle que vous avez enregistré localement.

  3. Spécifiez les détails de la pile :

    • Entrez un nom de pile. Exemple : <your-apm-name>IntegrationForIDR

    • Spécifiez les valeurs de paramètres obtenues lors de l'achèvement des prérequis

      • APMNameParameterExemple : Grafana

      • Exemple de paramètre TriggerSNS  : arn:aws:sns:eu-west-1:012345678912:<your-apm-name>-sns

    • Choisissez Suivant.

  4. Configurez les options de pile :

    • Accédez au bas de la page et confirmez la case à cocher pour autoriser la création CloudFormation de ressources IAM avec des noms personnalisés.

  5. Vérifiez et créez :

    • Vérifiez que les valeurs des paramètres sont correctement configurées, puis choisissez Soumettre.

  6. La CloudFormation pile déploiera les ressources nécessaires pour intégrer vos événements APM à AWS Incident Detection and Response. Attendez que l'état de la CloudFormation pile soit CREATE_COMPLETE.

  7. La CloudFormation pile crée les ressources ci-dessous en supposant que les valeurs d'exemple ont été entrées dans les paramètres de Grafana et exécutées dans la EU-WEST-1 région.

    • CustomEventBus: Grafana-AWSIncidentDetectionResponse-EventBus

    • Abonnement au réseau social : arn:aws:sns:eu-west- 1:012345678912:grafana-sns : [random_string]

    • TransformLambdaExecutionRole: IDR-TransformLambdaExecutionRole-eu-west-1

    • TransformLambdaFunction: Grafana-AWSIncidentDetectionResponse-Lambda-Transform

    • TransformLambdaPermission: GrafanaIntegrationForIDR-TransformLambdaPermission - [chaîne_aléatoire]

Tests d'intégration

Une fois la CloudFormation pile déployée avec succès, vous pouvez valider l'intégration en envoyant une charge utile de test depuis votre APM. Une fois la charge utile de test envoyée depuis votre APM :

  1. Accédez à la console Lambda et sélectionnez la APMNameParameter-AWSIncidentDetectionResponse-Lambda-Transform fonction. Choisissez ensuite l'onglet Moniteur.

  2. Une invocation réussie doit être observée dans les graphiques métriques.

  3. Sélectionnez Afficher les CloudWatch journaux Amazon. Vous pouvez vérifier à partir des événements du journal dans les flux de journaux que la charge utile de test envoyée par votre APM est présente ou si des erreurs ont été rencontrées.

Partage de l'ARN de votre bus d'événements avec AWS Incident Detection and Response

  1. Accédez à la EventBridge console Amazon. Sélectionnez les bus événementiels.

  2. Enregistrez l'ARN du bus d'événements personnalisé déployé dans le cadre de la CloudFormation pile, par exemple :arn:aws:events:eu-west-1:012345678912:event-bus/Grafana-AWSIncidentDetectionResponse-EventBus.

  3. Au cours du processus d'intégration, AWS Incident Detection and Response créera une EventBridge règle gérée sur ce bus d'événements personnalisé afin d'ingérer vos alarmes APM.

Option 2 : intégration manuelle

Schéma illustrant un exemple d'intégration à l'aide d'Amazon SNS.
  1. Ouvrez la console Amazon SNS et créez une rubrique Amazon SNS standard nommée [apm_name]-sns pour recevoir les événements d'alarme de votre APM. Assurez-vous de sélectionner Standard (et non FIFO) comme type de rubrique. Notez l'ARN de la rubrique Amazon SNS créée.

  2. Effectuez l'une des actions suivantes :

    • (Recommandé) Créez un bus d'événements EventBridge personnalisé nommé[apm_name]-AWSIncidentDetectionResponse-EventBus.

    • (Alternative) Utilisez le bus d' EventBridge événements par défaut au lieu d'un bus d'événements personnalisé.

    AWS Incident Detection and Response installera une règle gérée (AWSHealthEventProcessorEventSource-DO-NOT-DELETE) sur le bus d'événements personnalisé ou par défaut via le AWSServiceRoleForHealth_EventProcessor SLR. La source de la règle sera le bus d'événements personnalisé ou par défaut, la destination de la règle sera AWS Incident Detection and Response, et la règle correspondra au modèle d'ingestion d'événements APM tiers.

  3. Créez une fonction Lambda nommée $YourApmName-AWSIncidentDetectionResponse-LambdaFunction pour transformer vos charges utiles SNS.

  4. Définissez la rubrique SNS comme déclencheur de votre fonction Lambda. $YourApmName-AWSIncidentDetectionResponse-LambdaFunction

    • Sur la page « Ajouter des déclencheurs », recherchez « SNS ».

    • Ajoutez l'ARN de votre rubrique SNS dédiée créée à l'étape 1.

    • Choisissez « Ajouter ».

  5. Suivez votre documentation APM pour configurer une destination SNS pour vos charges utiles APM qui doivent être ingérées par AWS Incident Detection and Response.

AWS Incident Detection and Response installera une règle gérée (AWSHealthEventProcessorEventSource-DO-NOT-DELETE) sur le bus d'événements personnalisé ou par défaut via le AWSServiceRoleForHealth_EventProcessor SLR. La source de la règle sera le bus d'événements personnalisé ou par défaut, la destination de la règle sera AWS Incident Detection and Response, et la règle correspondra au modèle d'ingestion d'événements APM tiers.