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.
Créer des alertes sur les journaux
Vous pouvez créer des CloudWatch alarmes qui surveillent les données de vos journaux de deux manières :
-
Approche d'alarme de journal : créez une alarme de journal qui exécute une requête CloudWatch Logs Insights selon un calendrier et évalue les résultats agrégés directement par rapport à un seuil.
-
Approche du filtre métrique : créez un filtre métrique sur un groupe de logs, puis créez une alarme métrique standard sur la métrique résultante.
Création d'une alarme de journal
Création d'une alarme de journal
Vous pouvez créer une CloudWatch alarme qui utilise une requête CloudWatch Logs Insights pour surveiller directement les données du journal. La requête s'exécute selon un calendrier à l'aide d'une requête planifiée, et l'alarme évalue les résultats agrégés par rapport à un seuil. Pour plus d'informations sur le fonctionnement des alarmes de journal, consultezEnregistrer les alarmes.
Conditions préalables
Avant de créer une alarme de journal, vous devez créer un rôle IAM qui accorde à CloudWatch Logs l'autorisation d'exécuter la requête planifiée. Si vous souhaitez également que les lignes de journal soient incluses dans les notifications Amazon SNS, vous devez créer un deuxième rôle.
Note
Si vous créez une alarme de journal à partir de la CloudWatch console, celle-ci vous aide à créer ces rôles.
Rôle d'exécution de requêtes planifiée
Le rôle d'exécution planifiée des requêtes permet à CloudWatch Logs d'exécuter la requête en votre nom. Ce rôle est requis pour que toutes les alarmes de journal exécutent la requête planifiée. Le rôle doit faire confiance au directeur du logs.amazonaws.com service.
L'exemple suivant montre la politique de confiance pour le rôle d'exécution planifiée des requêtes.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
L'exemple suivant montre la politique d'autorisation. Étendue du champ d'application Resource aux ARN du groupe de journaux que la requête cible.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "logs:DescribeLogGroups" ], "Resource": "arn:aws:logs:region:account-id:log-group:your-log-group:*" } ] }
Rôle des lignes de log (facultatif)
Le rôle de lignes de journal permet CloudWatch de récupérer des lignes de journal pour les notifications par e-mail Amazon SNS. Ce rôle n'est obligatoire que si vous définissez une valeur supérieure ActionLogLineCount à 0. Le rôle doit faire confiance au directeur du cloudwatch.amazonaws.com service.
L'exemple suivant montre la politique de confiance pour le rôle Loglines.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
L'exemple suivant montre la politique d'autorisations pour le rôle Loglines. L'logs:GetQueryResultsautorisation est requise pour récupérer les lignes de journal. Étendue du champ d'application Resource aux ARN du groupe de journaux que la requête cible.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:GetQueryResults" ], "Resource": "arn:aws:logs:region:account-id:log-group:your-log-group:*" } ] }
Note
Pour afficher les résultats de la requête Log Alarm dans la CloudWatch console, l'utilisateur ou le rôle IAM accédant à la console doit disposer de l'logs:GetScheduledQueryDataautorisation. Il s'agit d'une API réservée à la console et n'est pas disponible via le SDK AWS CLI . CloudTrailenregistre cette API en tant qu'événement de données. Vous devez donc configurer un suivi avec journalisation des événements de données pour le capturer.
Création d'une alarme de journal à l'aide de la console
Les étapes décrites dans cette section expliquent comment utiliser la CloudWatch console pour créer une alarme de journal. Vous pouvez également utiliser le AWS CLI pour créer une alarme de journal. Pour de plus amples informations, veuillez consulter Création d'une alarme de journal à l'aide du AWS CLI.
Pour créer une alarme de journal
-
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le panneau de navigation, cliquez sur Alarms (Alarmes).
-
Sélectionnez Créer une alarme.
-
Pour Source de données, sélectionnez Logs.
-
Sous Logs Query :
-
Choisissez Créer une requête dans Log Analytics. Cela ouvre la page Log Analytics dans laquelle vous créez votre requête.
-
Sur la page Log Analytics, rédigez votre requête. Lorsque vous avez terminé, choisissez Continuer vers les alarmes en haut à droite pour revenir à la console d'alarme.
-
Pour l'expression d'agrégation, spécifiez comment agréger les résultats de la requête afin de renvoyer une valeur numérique pour l'évaluation des alarmes (par exemple,
count(*)ouavg(latency) by endpoint).
-
-
Dans des conditions d'alarme :
-
Pour chaque fois que le résultat agrégé est... , choisissez un opérateur de comparaison.
-
Pour que... , entrez la valeur du seuil.
-
(Facultatif) Sous Configuration supplémentaire :
-
Modifiez les points de données en alarme pour spécifier le nombre de résultats de violation requis pour déclencher l'une des
ALARMN dernières requêtes. -
Modifiez le traitement des données manquantes pour spécifier comment traiter les données manquantes.
-
-
-
Selon le calendrier :
-
Pour Fréquence d'évaluation, choisissez la fréquence d'exécution de la requête (par exemple, toutes les 5 minutes).
-
Pour le décalage horaire de début, fenêtre rétrospective pour chaque exécution de requête.
-
Pour le décalage horaire de fin (facultatif), fin de la plage de temps de la requête sous forme de décalage en secondes par rapport à l'heure actuelle.
-
-
Avec l'autorisation de l'IAM :
-
Spécifiez le rôle requis pour exécuter la requête planifiée. Vous pouvez choisir de créer un nouveau rôle ou d'utiliser un rôle existant.
-
-
Choisissez Suivant.
-
Sous Configurer les actions, configurez les actions et les notifications selon vos besoins.
-
Pour inclure les lignes de journal déclenchant la transition d'alarme dans les notifications par e-mail Amazon SNS, sous Inclure les résultats de la requête dans les actions :
-
Ajoutez le nombre de résultats de requête pour spécifier le nombre de lignes de journal à inclure.
-
Créez ou choisissez un rôle existant utilisé pour obtenir les résultats de requête requis.
-
-
-
Choisissez Suivant.
-
Entrez un nom et une description facultative (prend en charge Markdown).
-
(Facultatif) Ajoutez des balises.
-
Choisissez Suivant.
-
Sous Prévisualiser et créer, passez en revue votre configuration, puis choisissez Créer une alarme.
Création d'une alarme de journal à l'aide du AWS CLI
Vous pouvez utiliser la AWS CLI put-log-alarm commande pour créer une alarme de journal.
L'exemple suivant crée une alarme de journal qui surveille le nombre d'erreurs dans un groupe de journaux et passe à un ALARM état lorsque le nombre dépasse 100 dans 3 exécutions de requêtes sur 5.
aws cloudwatch put-log-alarm \ --alarm-name "HighErrorCount" \ --alarm-description "Alarm when error count exceeds 100" \ --comparison-operator GreaterThanThreshold \ --threshold 100 \ --query-results-to-evaluate 5 \ --query-results-to-alarm 3 \ --treat-missing-data missing \ --alarm-actions "arn:aws:sns:region:account-id:topic-name" \ --scheduled-query-configuration '{ "QueryString": "fields @timestamp, @message | filter @message like /ERROR/", "LogGroupIdentifiers": ["/aws/lambda/my-function"], "ScheduledQueryRoleARN": "arn:aws:iam::account-id:role/ScheduledQueryRole", "AggregationExpression": "count(*)", "ScheduleConfiguration": { "ScheduleExpression": "rate(10 minutes)", "StartTimeOffset": 600 } }' \ --action-log-line-count 5 \ --action-log-line-role-arn "arn:aws:iam::account-id:role/LogLineRole"
Le tableau suivant décrit les principaux paramètres de la put-log-alarm commande.
| Paramètre | Obligatoire | Description |
|---|---|---|
--alarm-name |
Oui | Le nom de l'alarme. Ne doit contenir que UTF-8 des caractères. |
--comparison-operator |
Oui | L'opérateur de comparaison pour l'évaluation des seuils. Valeurs valides: GreaterThanThreshold, GreaterThanOrEqualToThreshold, LessThanThreshold, LessThanOrEqualToThreshold. |
--threshold |
Oui | La valeur de seuil numérique à comparer. |
--query-results-to-evaluate |
Oui | Nombre d'exécutions de requêtes récentes à évaluer (N in M-out-of-N). |
--query-results-to-alarm |
Oui | Le nombre de résultats de violation requis pour déclencher ALARM (M in M-out-of-N). |
--treat-missing-data |
Non | Comment traiter les données manquantes Valeurs valides : missing (par défaut)notBreaching,breaching,ignore. |
--scheduled-query-configuration |
Oui | La configuration de la requête, y compris la chaîne de requête, les identifiants de groupe de journaux, l'ARN du rôle de requête planifié, l'expression d'agrégation et la configuration du calendrier. |
--action-log-line-count |
Non | Nombre de lignes de journal à inclure dans les notifications par e-mail Amazon SNS (0 à 50). La valeur par défaut est 0. |
--action-log-line-role-arn |
Non | L'ARN du rôle IAM qui fait confiancecloudwatch.amazonaws.com. Obligatoire si action-log-line-count la valeur est supérieure à 0. |
Création d'une alarme de journal à l'aide de AWS CloudFormation
Vous pouvez utiliser le type de AWS::CloudWatch::LogAlarm ressource pour créer une alarme de journal dans un AWS CloudFormation modèle.
L'exemple de modèle suivant crée une alarme de journal qui surveille le nombre d'erreurs.
AWSTemplateFormatVersion: '2010-09-09' Resources: HighErrorCountAlarm: Type: AWS::CloudWatch::LogAlarm Properties: AlarmName: HighErrorCount AlarmDescription: Alarm when error count exceeds 100 ComparisonOperator: GreaterThanThreshold Threshold: 100 QueryResultsToEvaluate: 5 QueryResultsToAlarm: 3 TreatMissingData: missing ActionLogLineCount: 5 ActionLogLineRoleArn: !GetAtt LogLineRole.Arn ScheduledQueryConfiguration: QueryString: "fields @timestamp, @message | filter @message like /ERROR/" LogGroupIdentifiers: - /aws/lambda/my-function ScheduledQueryRoleARN: !GetAtt ScheduledQueryRole.Arn AggregationExpression: "count(*)" ScheduleConfiguration: ScheduleExpression: "rate(10 minutes)" StartTimeOffset: 600 AlarmActions: - !Ref AlarmSNSTopic
Création d'une CloudWatch alarme basée sur un filtre métrique de groupes de logs
Cette section décrit comment créer une alarme basée sur un filtre de métrique d'un groupe de journaux. Grâce aux filtres métriques, vous pouvez rechercher des termes et des modèles dans les données du journal au fur et à mesure de leur envoi CloudWatch. Pour plus d'informations, consultez la section Créer des métriques à partir d'événements de journal à l'aide de filtres dans le guide de l'utilisateur Amazon CloudWatch Logs. Avant de créer une alarme basée sur un filtre de métrique d'un groupe de journaux, vous devez effectuer les actions suivantes :
-
Créez un groupe de journaux . Pour plus d'informations, consultez la section Utilisation des groupes de journaux et des flux de CloudWatch journaux dans le guide de l'utilisateur Amazon Logs.
-
Créez un filtre de métrique. Pour plus d'informations, consultez la section Création d'un filtre métrique pour un groupe de CloudWatch journaux dans le guide de l'utilisateur Amazon Logs.
Pour créer une alarme basée sur un filtre de métrique d'un groupe de journaux
-
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le panneau de navigation, choisissez Logs (Journaux), puis Log groups (Groupes de journaux).
-
Sélectionnez le groupe de journaux qui comprend votre filtre de métrique.
-
Sélectionnez Metric filters (Filtres de métrique).
-
Dans l'onglet Metric filters (Filtres de métrique), cochez la case du filtre de métrique sur lequel vous voulez baser votre alarme.
-
Sélectionnez Créer une alerte.
-
(Facultatif) Sous Metric (Métrique), modifiez le champ Metric name (Nom de la métrique), Statistic (Statistique) et Period (Période).
-
Sous Conditions, spécifiez les éléments suivants :
-
Pour Threshold type (Type de seuil), choisissez Static (Statique) ou Anomaly detection (Détection des anomalies).
-
Pour Whenever,
your-metric-namec'est... , choisissez Plus grand Greater/EqualLower/Equal, ou plus bas. -
Pour than . . . (à . . .), spécifiez un nombre pour votre valeur de seuil.
-
-
Sélectionnez Additional configuration (Configuration supplémentaire).
-
Pour Data points to alarm (Points de données pour l'alarme), indiquez combien de points de données déclenchent le passage de votre alarme à l'état
ALARM. Si vous spécifiez des valeurs correspondantes, votre alarme passe à l'étatALARMsi ce nombre de périodes consécutives est dépassé. Pour créer une M-out-of-N alarme, spécifiez un nombre pour la première valeur inférieur à celui que vous avez indiqué pour la deuxième valeur. Pour de plus amples informations, veuillez consulter Évaluation des alarmes. -
Pour Missing data treatment (Traitement des données manquantes), sélectionnez une option pour spécifier comment traiter les données manquantes lors de l'évaluation de votre alarme.
-
-
Choisissez Suivant.
-
Sous Notification, spécifiez une rubrique Amazon SNS qui doit recevoir une notification lorsque l'alarme passe à l'état
ALARM,OKouINSUFFICIENT_DATA.-
(Facultatif) Pour envoyer plusieurs notifications pour le même état d'alarme ou pour les différents états de l'alarme, sélectionnez Add notification (Ajouter une notification).
-
(Facultatif) Pour ne pas envoyer de notifications, choisissez Remove (Supprimer).
-
-
Pour que l’alarme exécute des actions Auto Scaling, EC2, Lambda ou Systems Manager, cliquez sur le bouton approprié, puis choisissez l’état de l’alerte et l’action à effectuer. Si vous choisissez une fonction Lambda comme action d’alarme, vous spécifiez le nom de la fonction ou l’ARN, et vous pouvez éventuellement choisir une version spécifique de la fonction.
Les alertes peuvent effectuer des actions du Systems Manager uniquement lorsqu'elles passent à l'état ALARM. Pour plus d'informations sur les actions de Systems Manager, voir Configuration CloudWatch pour créer à OpsItems partir d'alarmes et Création d'incidents.
Note
Pour créer une alerte qui exécute une action SSM Incident Manager, vous devez disposer de certaines autorisations. Pour plus d'informations, consultez les exemples Identity-based de politiques pour AWS Systems Manager Incident Manager.
-
Choisissez Suivant.
-
Pour Name and description (Nom et description), saisissez un nom et une description pour votre alarme. Le nom ne doit contenir que des UTF-8 caractères et ne peut pas contenir de caractères de contrôle ASCII. La description peut inclure le formatage du markdown, qui s'affiche uniquement dans l'onglet Détails de l'alarme de la CloudWatch console. Le markdown peut être utile pour ajouter des liens vers des runbooks ou d'autres ressources internes.
-
Pour Preview and create (Prévisualiser et créer), vérifiez que votre configuration est correcte, puis sélectionnez Create alarm (Créer l'alarme).