web-dev-qa-db-fra.com

Cloudwatch Log Alert - Comment inclure des données de trace d'erreur/exception/pile dans la notification par courrier électronique

Je viens de configurer les journaux Cloudwatch sur mes instances ec2 et je l'aime jusqu'à présent. J'ai également mis en place des alertes pour certains mots clés, tels que "ERREUR". Bien que l'alerte par courrier électronique semble fonctionner correctement, je me demandais s'il était possible d'ajuster le courrier d'alerte pour le rendre un peu concis et informatif. Plus précisément, je cherche à

  1. Débarrassez-vous de tout le texte standard dans l'e-mail d'alerte. 

  2. Incluez des informations sur l'erreur/exception qui a déclenché l'alerte. Cela pourrait être quelque chose d'aussi simple que d'inclure l'instruction de journal qui a généré l'alerte. 

À l'heure actuelle, l'e-mail d'alerte ressemble à

Vous recevez cet e-mail, car votre alarme Amazon CloudWatch "App-Error-Alarm" dans la région USA Est - N. Virginie est entrée à l'état ALARM, car "Seuil croisé: 1 point de données ( 1,0) était supérieur à au seuil égal à (1.0). " à "Mardi 07 février 2017 16:39:43 UTC".

Affichez cette alarme dans la console de gestion AWS: https://console.aws.Amazon.com/cloudwatch/home?region=us- Aly-##s=Alarms&alarm=App-Error-Alarm

Détails de l'alarme: - Nom: App-Error-Alarm - Description: Erreurs dans app.log - Changement d'état: INSUFFICIENT_DATA -> ALARME - Raison de Changement d'état: Seuil franchi: 1 point de donnée (1.0) était supérieur ou égal au seuil (1.0). - Horodatage: mardi 07 février 2017 16:39:43 UTC - Compte AWS : <>

Seuil: - L'alarme est à l'état ALARM lorsque la métrique est GreaterThanOrEqualToThreshold 1.0 pendant 300 secondes. 

Métrique surveillée: - MetricNamespace: LogMetrics - MetricName: ERROR - Dimensions: - Période: 300 secondes - Statistique: Sum. ____.] - Unité: non spécifié

Actions de changement d'état: - OK: - ALARME: [arn: aws: sns: us-est-1: <>: support] - INSUFFICIENT_DATA:

Je voudrais quelque chose comme 

Alarme: alarme d'erreur d'application 

Mot clé: "ERREUR" 

Raison: ERROR 2017-02-07 07: 31: 47,375 [SimpleAsyncTaskExecutor-5] Com.app.server.rest.Watcher: javax.net.ssl.SSLHandshakeException: Alerte fatale reçue: poignée de main

Son bref, doux et me dit instantanément si c'est quelque chose qui a besoin de mon attention immédiate. Cela peut-il être fait sans écrire le code comme suggéré ici

16
Bhardwaj

Vous avez ce problème parce que vous avez configuré une alarme et est destiné aux données agrégées, pas à un enregistrement de journal spécifique. Vous le configurez pour une mesure (nombre d'enregistrements de journal avec le mot clé ERROR). 

Vous pouvez utiliser l'abonnement au journal à la place et diffuser tous les enregistrements de journal correspondant à un filtre dans une fonction Lambda personnalisée. Vous pouvez l'utiliser pour envoyer des notifications par courrier électronique ou par Slack.

Pour configurer la transmission en continu des journaux, accédez à Lambda dans la console AWS et créez une nouvelle fonction à partir d'un plan directeur nommé "cloudwatch-logs-process-data" . Il a une structure de base et est facile à personnaliser selon vos besoins.

 enter image description here

2
Igor Romanov

Vous pouvez personnaliser les alarmes Cloudwatch à l’aide de Journaux Cloudwatch Personnaliser les alarmes Package fourni par AWS labs .

Lorsque vous recevez une alarme, vous souhaitez disposer de suffisamment d'informations pour décider si Nécessite une attention immédiate ou non. Vous souhaitez également personnaliser le texte d'alarme En fonction des besoins opérationnels. Personnaliser les alarmes CloudWatch Logs Est une fonction Lambda qui facilite la lecture des journaux à partir de CloudWatch Journaux lors d’une alarme et envoie un courrier électronique personnalisé via SES.

Les packages permettent d’utiliser un noeud final Lambda SNS, qui peut ensuite personnaliser la notification d’alarme en fonction de vos besoins opérationnels.

1
Rodrigo M