Schéma d’alerte courant

Le schéma d’alerte commun standardise la consommation de notifications d'alerte pour Azure Monitor. Historiquement, les alertes de journal d’activité, de métrique et de recherche dans les journaux avaient chacune leurs propres modèles d’e-mail et schémas de webhook. Le schéma d’alerte commun est un schéma standardisé pour toutes les notifications d’alerte.

Utiliser un schéma standardisé vous permet de réduire le nombre d’intégrations, ce qui simplifie le processus de gestion et de maintenance de vos intégrations. Le schéma courant enrichit l’expérience de consommation des alertes dans le portail Azure et Azure mobile app.

Le schéma d’alerte commun fournit une structure cohérente pour :

  • Modèles d’e-mail : utilisez le modèle d’e-mail détaillé pour diagnostiquer les problèmes en un coup d’œil. Des liens incorporés vers l’instance d’alerte dans le portail et vers la ressource affectée vous permettent d’accéder rapidement au processus de correction.
  • Structure JSON : Utilisez la structure JSON cohérente pour générer des intégrations pour tous les types d’alertes à l’aide de :
    • Azure Logic Apps
    • Azure Functions
    • Runbook Azure Automation

Notes

  • Les alertes générées par VM Insights ne prennent pas en charge le schéma commun.
  • Les alertes de détection intelligente utilisent le schéma commun par défaut. Vous n’avez pas besoin d’activer le schéma commun pour les alertes de détection intelligente.

Structure du schéma commun

Le schéma commun comprend des informations sur la ressource affectée et la cause de l’alerte dans ces sections :

  • Éléments principaux : champs standardisés, utilisés par tous les types d’alerte qui décrivent la ressource affectée par l’alerte et les métadonnées d’alerte courantes, comme la gravité ou la description.

    Si vous voulez router les instances d’alerte vers des équipes spécifiques en fonction de critères comme le groupe de ressources, vous pouvez utiliser les champs de la section Éléments principaux afin de fournir une logique de routage pour tous les types d’alerte. Les équipes qui reçoivent la notification d’alerte peuvent ensuite utiliser les champs de contexte pour leur investigation.

  • Contexte d’alerte : champs qui varient en fonction du type de l’alerte. Les champs de contexte d’alerte décrivent la cause de l’alerte. Par exemple, une alerte métrique comporte des champs tels que le nom de la métrique et la valeur de la métrique dans le contexte de l'alerte. Une alerte de journal d’activité aurait des informations sur l’événement qui a généré l’alerte.

  • Propriétés personnalisées : Des informations supplémentaires, non incluses dans la charge utile d’alerte par défaut, peuvent être incluses dans la charge utile d’alerte au moyen de propriétés personnalisées. Les propriétés personnalisées sont une paire Clé:Valeur capable d’inclure toutes les informations configurées dans la règle d’alerte.

Exemple de charge utile d’alerte

{
  "schemaId": "azureMonitorCommonAlertSchema",
  "data": {
    "essentials": {
      "alertId": "/subscriptions/<subscription ID>/providers/Microsoft.AlertsManagement/alerts/b9569717-bc32-442f-add5-83a997729330",
      "alertRule": "WCUS-R2-Gen2",
      "severity": "Sev3",
      "signalType": "Metric",
      "monitorCondition": "Resolved",
      "monitoringService": "Platform",
      "alertTargetIDs": [
        "/subscriptions/<subscription ID>/resourcegroups/pipelinealertrg/providers/microsoft.compute/virtualmachines/wcus-r2-gen2"
      ],
      "configurationItems": [
        "wcus-r2-gen2"
      ],
      "originAlertId": "3f2d4487-b0fc-4125-8bd5-7ad17384221e_PipeLineAlertRG_microsoft.insights_metricAlerts_WCUS-R2-Gen2_-117781227",
      "firedDateTime": "2019-03-22T13:58:24.3713213Z",
      "resolvedDateTime": "2019-03-22T14:03:16.2246313Z",
      "description": "",
      "essentialsVersion": "1.0",
      "alertContextVersion": "1.0"
    },
    "alertContext": {
      "properties": null,
      "conditionType": "SingleResourceMultipleMetricCriteria",
      "condition": {
        "windowSize": "PT5M",
        "allOf": [
          {
            "metricName": "Percentage CPU",
            "metricNamespace": "Microsoft.Compute/virtualMachines",
            "operator": "GreaterThan",
            "threshold": "25",
            "timeAggregation": "Average",
            "dimensions": [
              {
                "name": "ResourceId",
                "value": "3efad9dc-3d50-4eac-9c87-8b3fd6f97e4e"
              }
            ],
            "metricValue": 7.727
          }
        ]
      }
    },
    "customProperties": {
      "Key1": "Value1",
      "Key2": "Value2"
    }
  }
}

Pour des exemples d’alertes utilisant le schéma commun, consultez Exemples de charges utiles pour alerte.

Champs des éléments principaux

Champ Description
alertId L’ID unique de la ressource qui identifie l’instance d’alerte.
alertRule Nom de la règle d’alerte qui a généré l’instance d’alerte.
severity Gravité de l’alerte. Les valeurs possibles sont Sev0, Sev1, Sev2, Sev3 ou Sev4.
signalType Identifie le signal sur lequel la règle d’alerte a été définie. Les valeurs possibles sont Métrique, Journal ou Journal d’activité.
monitorCondition Quand une alerte se déclenche, la condition d’analyse de l’alerte est Déclenché. Quand la condition sous-jacente qui a déclenché l’alerte disparaît, la condition d’analyse est Résolu.
monitoringService La solution ou le service de supervision qui a généré l’alerte. Le service de surveillance détermine les champs se trouvant dans le contexte d’alerte.
alertTargetIDs Liste des ID Azure Resource Manager qui sont des cibles affectées d’une alerte. Pour une alerte de recherche dans les journaux définie sur un espace de travail Log Analytics ou une instance Application Insights, il s’agit de l’espace de travail ou de l’application respectifs.
configurationItems Liste des ressources affectées d’une alerte.
Dans certains cas, les éléments de configuration peuvent être différents des cibles d’alerte. Par exemple, dans metric-for-log ou dans les alertes de recherche dans les journaux définies dans un espace de travail Log Analytics, les éléments de configuration sont les ressources qui envoient les données et non l’espace de travail.
  • Dans l’API des alertes de recherche dans les journaux (règles de requête planifiées) v2021-08-01, les valeurs configurationItem sont extraites de dimensions explicitement définies selon cette priorité : _ResourceId, ResourceId, Resource, Computer.
  • Dans les versions antérieures de l’API des alertes de recherche dans les journaux, les valeurs configurationItem sont récupérées implicitement à partir des résultats selon cette priorité : _ResourceId, ResourceId, Resource, Computer.
Dans les systèmes ITSM, le champ configurationItems est utilisé pour mettre en corrélation les alertes avec les ressources dans une base de données de gestion de la configuration.
originAlertId ID de l’instance d’alerte tel que généré par le service de surveillance.
firedDateTime Date et heure, en temps universel coordonné (UTC), auxquelles l’instance d’alerte a été déclenchée.
resolvedDateTime Date et heure, en temps universel coordonné (UTC), auxquelles la condition d’analyse pour l’instance d’alerte a été définie sur Résolu. Applicable uniquement aux alertes de métrique.
description Description telle que définie dans la règle d’alerte.
essentialsVersion Numéro de version de la section « essentials ».
alertContextVersion Numéro de version de la section alertContext.

Champs de contexte d’alerte pour les alertes de métrique

Champ Description
properties (Facultatif.) Une collection de propriétés définies par le client.
conditionType Type de condition choisie pour la règle d’alerte :
- seuil statique
- seuil dynamique
- webtest
condition
windowSize La période analysée par la règle d’alerte.
allOf Indique la nécessiter de remplir toutes les conditions définies dans la règle d’alerte pour déclencher une alerte.
alertSensitivity Dans une règle d’alerte avec un seuil dynamique, cela indique combien la règle est sensible ou combien la valeur peut dévier du seuil supérieur ou inférieur.
failingPeriods Dans une règle d’alerte avec un seuil dynamique, le nombre de périodes d’évaluation ne répondant pas au seuil d’alerte qui déclenche une alerte. Vous pouvez par exemple indiquer qu’une alerte est déclenchée lorsque 3 des cinq dernières périodes d’évaluation ne se trouvent pas dans les seuils d’alerte.
numberOfEvaluationPeriods Le nombre total d’évaluations.
minFailingPeriodsToAlert Le nombre minimal d’évaluations qui ne répondent pas aux conditions de la règle d’alerte.
ignoreDataBefore (Facultatif.) Dans une règle d’alerte avec un seuil dynamique, la date à partir de laquelle le seuil est calculé. Utilisez cette valeur pour indiquer que la règle ne doit pas calculer le seuil dynamique au moyen de données antérieures à la date spécifiée.
metricName Le nom de la métrique surveillée par la règle d’alerte.
metricNamespace L’espace de noms de la métrique surveillée par la règle d’alerte.
operator L’opérateur logique de la règle d’alerte.
threshold Le seuil défini dans la règle d’alerte. Pour une règle d’alerte avec un seuil dynamique, cette valeur correspond au seuil calculé.
timeAggregation Le type d'agrégation de la règle d'alerte.
dimensions La dimension de la métrique qui a déclenché l’alerte.
name Le nom de la dimension.
valeur La valeur de dimension.
metricValue La valeur de la métrique au moment où elle a contrevenu au seuil.
webTestName Si le type de condition est webtest, le nom du test web.
windowStartTime L’heure de démarrage de la fenêtre d’évaluation dans laquelle l’alerte s’est déclenchée.
windowEndTime L’heure de fin de la fenêtre d’évaluation dans laquelle l’alerte s’est déclenchée.

Exemple d’alerte de métrique avec un seuil statique quand le monitoringService = Platform

{
  "alertContext": {
      "properties": null,
      "conditionType": "SingleResourceMultipleMetricCriteria",
      "condition": {
        "windowSize": "PT5M",
        "allOf": [
          {
            "metricName": "Percentage CPU",
            "metricNamespace": "Microsoft.Compute/virtualMachines",
            "operator": "GreaterThan",
            "threshold": "25",
            "timeAggregation": "Average",
            "dimensions": [
              {
                "name": "ResourceId",
                "value": "3efad9dc-3d50-4eac-9c87-8b3fd6f97e4e"
              }
            ],
            "metricValue": 31.1105
          }
        ],
        "windowStartTime": "2019-03-22T13:40:03.064Z",
        "windowEndTime": "2019-03-22T13:45:03.064Z"
      }
    }
}

Exemple d’alerte de métrique avec un seuil dynamique quand le monitoringService = Platform

{
  "alertContext": {
      "properties": null,
      "conditionType": "DynamicThresholdCriteria",
      "condition": {
        "windowSize": "PT5M",
        "allOf": [
          {
            "alertSensitivity": "High",
            "failingPeriods": {
              "numberOfEvaluationPeriods": 1,
              "minFailingPeriodsToAlert": 1
            },
            "ignoreDataBefore": null,
            "metricName": "Egress",
            "metricNamespace": "microsoft.storage/storageaccounts",
            "operator": "GreaterThan",
            "threshold": "47658",
            "timeAggregation": "Total",
            "dimensions": [],
            "metricValue": 50101
          }
        ],
        "windowStartTime": "2021-07-20T05:07:26.363Z",
        "windowEndTime": "2021-07-20T05:12:26.363Z"
      }
    }
}

Exemple d’alerte de métrique pour des tests de disponibilité quand le monitoringService = Platform

{
  "alertContext": {
      "properties": null,
      "conditionType": "WebtestLocationAvailabilityCriteria",
      "condition": {
        "windowSize": "PT5M",
        "allOf": [
          {
            "metricName": "Failed Location",
            "metricNamespace": null,
            "operator": "GreaterThan",
            "threshold": "2",
            "timeAggregation": "Sum",
            "dimensions": [],
            "metricValue": 5,
            "webTestName": "myAvailabilityTest-myApplication"
          }
        ],
        "windowStartTime": "2019-03-22T13:40:03.064Z",
        "windowEndTime": "2019-03-22T13:45:03.064Z"
      }
    }
}

Champs de contexte d’alerte pour les alertes de recherche dans les journaux

Remarque

Quand vous activez le schéma commun, les champs de la charge utile sont réinitialisés sur les champs du schéma commun. Par conséquent, les alertes de recherche dans les journaux ont les limitations suivantes concernant le schéma commun :

  • Le schéma commun n’est pas pris en charge pour les alertes de recherche dans les journaux utilisant des webhooks avec un objet d’e-mail personnalisé et/ou une charge utile JSON, car le schéma commun remplace les configurations personnalisées.
  • Les alertes utilisant le schéma commun ont une limite de taille maximale de 256 Ko par alerte. Si la charge utile des alertes de recherche dans les journaux comprend des résultats de recherche qui entraînent le dépassement de la taille maximale de l’alerte, les résultats de recherche ne sont pas incorporés dans la charge utile des alertes de recherche dans les journaux. Vous pouvez vérifier si la charge utile comprend les résultats de recherche avec l’indicateur IncludedSearchResults. Utilisez LinkToFilteredSearchResultsAPI ou LinkToSearchResultsAPI pour accéder aux résultats de requête avec l’API Log Analytics si les résultats de recherche ne sont pas dans la charge utile.
Champ Description
SearchQuery La requête définie dans la règle d’alerte.
SearchIntervalStartTimeUtc L’heure de démarrage de la fenêtre d’évaluation dans laquelle l’alerte s’est déclenchée en UTC.
SearchIntervalEndTimeUtc L’heure de fin de la fenêtre d’évaluation dans laquelle l’alerte s’est déclenchée en UTC.
ResultCount Le nombre d’enregistrements renvoyés par la requête. Pour les règles de mesure de métrique, le nombre ou les enregistrements qui correspondent à la combinaison de dimensions spécifique.
LinkToSearchResults Un lien vers les résultats de recherche.
LinkToFilteredSearchResultsUI Pour les règles de mesure de métrique, le lien vers les résultats de recherche après leur filtrage par les combinaisons de dimensions.
LinkToSearchResultsAPI Un lien vers les résultats de la requête au moyen de l’API Log Analytics.
LinkToFilteredSearchResultsAPI Pour les règles de mesure de métrique, le lien vers les résultats de recherche au moyen de l’API Log Analytics après leur filtrage par les combinaisons de dimension.
SearchIntervalDurationMin Le nombre total de minutes dans l’intervalle de recherche.
SearchIntervalInMin Le nombre total de minutes dans l’intervalle de recherche.
Seuil Le seuil défini dans la règle d’alerte.
Opérateur L’opérateur défini dans la règle d’alerte.
ApplicationID L’ID de l’Application Insights sur laquelle l’alerte a été déclenchée.
Dimensions Pour les règles de mesure de métrique, les dimensions de métrique sur lesquelles l’alerte a été déclenchée.
name Le nom de la dimension.
valeur La valeur de dimension.
SearchResults Les résultats complets de recherche.
table La table des résultats dans les résultats de recherche.
name Le nom de la table dans les résultats de recherche.
colonnes Les colonnes dans la table.
name Nom de la colonne.
type Type de la colonne.
rows Les lignes dans la table.
DataSources Les sources de données sur lesquelles l’alerte a été déclenchée.
resourceID L’ID de la ressource affectée par l’alerte.
dans des tables Les tables de réponses provisoires comprises dans la requête.
IncludedSearchResults Indicateur indiquant si la charge utile doit contenir les résultats.
AlertType Le type d’alerte :
- Mesure de la métrique
- Nombre de résultats

Exemple d’alerte de recherche dans les journaux quand monitoringService = Log Analytics

{
  "alertContext": {
    "SearchQuery": "Perf | where ObjectName == \"Processor\" and CounterName == \"% Processor Time\" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 5m), Computer",
    "SearchIntervalStartTimeUtc": "3/22/2019 1:36:31 PM",
    "SearchIntervalEndtimeUtc": "3/22/2019 1:51:31 PM",
    "ResultCount": 2,
    "LinkToSearchResults": "https://portal.azure.com/#Analyticsblade/search/index?_timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
    "LinkToFilteredSearchResultsUI": "https://portal.azure.com/#Analyticsblade/search/index?_timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
    "LinkToSearchResultsAPI": "https://api.loganalytics.io/v1/workspaces/workspaceID/query?query=Heartbeat&timespan=2020-05-07T18%3a11%3a51.0000000Z%2f2020-05-07T18%3a16%3a51.0000000Z",
    "LinkToFilteredSearchResultsAPI": "https://api.loganalytics.io/v1/workspaces/workspaceID/query?query=Heartbeat&timespan=2020-05-07T18%3a11%3a51.0000000Z%2f2020-05-07T18%3a16%3a51.0000000Z",
    "SeverityDescription": "Warning",
    "WorkspaceId": "12345a-1234b-123c-123d-12345678e",
    "SearchIntervalDurationMin": "15",
    "AffectedConfigurationItems": [
      "INC-Gen2Alert"
    ],
    "SearchIntervalInMinutes": "15",
    "Threshold": 10000,
    "Operator": "Less Than",
    "Dimensions": [
      {
        "name": "Computer",
        "value": "INC-Gen2Alert"
      }
    ],
    "SearchResults": {
      "tables": [
        {
          "name": "PrimaryResult",
          "columns": [
            {
              "name": "$table",
              "type": "string"
            },
            {
              "name": "Computer",
              "type": "string"
            },
            {
              "name": "TimeGenerated",
              "type": "datetime"
            }
          ],
          "rows": [
            [
              "Fabrikam",
              "33446677a",
              "2018-02-02T15:03:12.18Z"
            ],
            [
              "Contoso",
              "33445566b",
              "2018-02-02T15:16:53.932Z"
            ]
          ]
        }
      ],
      "dataSources": [
        {
          "resourceId": "/subscriptions/a5ea55e2-7482-49ba-90b3-60e7496dd873/resourcegroups/test/providers/microsoft.operationalinsights/workspaces/test",
          "tables": [
            "Heartbeat"
          ]
        }
      ]
    },
    "IncludedSearchResults": "True",
    "AlertType": "Metric measurement"
  }
}

Exemple d’alerte de recherche dans les journaux quand monitoringService = Application Insights

{
  "alertContext": {
    "SearchQuery": "requests | where resultCode == \"500\" | summarize AggregatedValue = Count by bin(Timestamp, 5m), IP",
    "SearchIntervalStartTimeUtc": "3/22/2019 1:36:33 PM",
    "SearchIntervalEndtimeUtc": "3/22/2019 1:51:33 PM",
    "ResultCount": 2,
    "LinkToSearchResults": "https://portal.azure.com/AnalyticsBlade/subscriptions/12345a-1234b-123c-123d-12345678e/?query=search+*+&timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
    "LinkToFilteredSearchResultsUI": "https://portal.azure.com/AnalyticsBlade/subscriptions/12345a-1234b-123c-123d-12345678e/?query=search+*+&timeInterval.intervalEnd=2018-03-26T09%3a10%3a40.0000000Z&_timeInterval.intervalDuration=3600&q=Usage",
    "LinkToSearchResultsAPI": "https://api.applicationinsights.io/v1/apps/0MyAppId0/metrics/requests/count",
    "LinkToFilteredSearchResultsAPI": "https://api.applicationinsights.io/v1/apps/0MyAppId0/metrics/requests/count",
    "SearchIntervalDurationMin": "15",
    "SearchIntervalInMinutes": "15",
    "Threshold": 10000.0,
    "Operator": "Less Than",
    "ApplicationId": "8e20151d-75b2-4d66-b965-153fb69d65a6",
    "Dimensions": [
      {
        "name": "IP",
        "value": "1.1.1.1"
      }
    ],
    "SearchResults": {
      "tables": [
        {
          "name": "PrimaryResult",
          "columns": [
            {
              "name": "$table",
              "type": "string"
            },
            {
              "name": "Id",
              "type": "string"
            },
            {
              "name": "Timestamp",
              "type": "datetime"
            }
          ],
          "rows": [
            [
              "Fabrikam",
              "33446677a",
              "2018-02-02T15:03:12.18Z"
            ],
            [
              "Contoso",
              "33445566b",
              "2018-02-02T15:16:53.932Z"
            ]
          ]
        }
      ],
      "dataSources": [
        {
          "resourceId": "/subscriptions/a5ea27e2-7482-49ba-90b3-52e7496dd873/resourcegroups/test/providers/microsoft.operationalinsights/workspaces/test",
          "tables": [
            "Heartbeat"
          ]
        }
      ]
    },
    "IncludedSearchResults": "True",
    "AlertType": "Metric measurement"
  }
}

Exemple d’alerte de recherche dans les journaux quand monitoringService = Log Alerts V2

Remarque

Les règles d’alerte de recherche dans les journaux de la version d’API 2020-05-01 utilisent ce type de charge utile, qui prend uniquement en charge le schéma commun. Les résultats de la recherche ne sont pas incorporés dans la charge utile des alertes de recherche dans les journaux lorsque vous utilisez cette version. Utilisez des dimensions pour fournir un contexte aux alertes déclenchées. Vous pouvez également utiliser LinkToFilteredSearchResultsAPI ou LinkToSearchResultsAPI pour accéder aux résultats de la requête avec l’API Log Analytics. Si vous devez incorporer les résultats, utilisez une application logique avec les liens fournis pour générer une charge utile personnalisée.

{
  "alertContext": {
    "properties": {
      "name1": "value1",
      "name2": "value2"
    },
    "conditionType": "LogQueryCriteria",
    "condition": {
      "windowSize": "PT10M",
      "allOf": [
        {
          "searchQuery": "Heartbeat",
          "metricMeasureColumn": "CounterValue",
          "targetResourceTypes": "['Microsoft.Compute/virtualMachines']",
          "operator": "LowerThan",
          "threshold": "1",
          "timeAggregation": "Count",
          "dimensions": [
            {
              "name": "Computer",
              "value": "TestComputer"
            }
          ],
          "metricValue": 0.0,
          "failingPeriods": {
            "numberOfEvaluationPeriods": 1,
            "minFailingPeriodsToAlert": 1
          },
          "linkToSearchResultsUI": "https://portal.azure.com#@12345a-1234b-123c-123d-12345678e/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/source/Alerts.EmailLinks/scope/%7B%22resources%22%3A%5B%7B%22resourceId%22%3A%22%2Fsubscriptions%212345a-1234b-123c-123d-12345678e%2FresourceGroups%2FContoso%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2FContoso%22%7D%5D%7D/q/eJzzSE0sKklKTSypUSjPSC1KVQjJzE11T81LLUosSU1RSEotKU9NzdNIAfJKgDIaRgZGBroG5roGliGGxlYmJlbGJnoGEKCpp4dDmSmKMk0A/prettify/1/timespan/2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z",
          "linkToFilteredSearchResultsUI": "https://portal.azure.com#@12345a-1234b-123c-123d-12345678e/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/source/Alerts.EmailLinks/scope/%7B%22resources%22%3A%5B%7B%22resourceId%22%3A%22%2Fsubscriptions%212345a-1234b-123c-123d-12345678e%2FresourceGroups%2FContoso%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2FContoso%22%7D%5D%7D/q/eJzzSE0sKklKTSypUSjPSC1KVQjJzE11T81LLUosSU1RSEotKU9NzdNIAfJKgDIaRgZGBroG5roGliGGxlYmJlbGJnoGEKCpp4dDmSmKMk0A/prettify/1/timespan/2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z",
          "linkToSearchResultsAPI": "https://api.loganalytics.io/v1/subscriptions/12345a-1234b-123c-123d-12345678e/resourceGroups/Contoso/providers/Microsoft.Compute/virtualMachines/Contoso/query?query=Heartbeat%7C%20where%20TimeGenerated%20between%28datetime%282020-07-09T13%3A44%3A34.0000000%29..datetime%282020-07-09T13%3A54%3A34.0000000%29%29&timespan=2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z",
          "linkToFilteredSearchResultsAPI": "https://api.loganalytics.io/v1/subscriptions/12345a-1234b-123c-123d-12345678e/resourceGroups/Contoso/providers/Microsoft.Compute/virtualMachines/Contoso/query?query=Heartbeat%7C%20where%20TimeGenerated%20between%28datetime%282020-07-09T13%3A44%3A34.0000000%29..datetime%282020-07-09T13%3A54%3A34.0000000%29%29&timespan=2020-07-07T13%3a54%3a34.0000000Z%2f2020-07-09T13%3a54%3a34.0000000Z"
        }
      ],
      "windowStartTime": "2020-07-07T13:54:34Z",
      "windowEndTime": "2020-07-09T13:54:34Z"
    }
  }
}

Champs de contexte d’alerte pour les alertes de journal d’activité

Pour plus d’informations sur les champs des alertes du journal d’activité, consultez Schéma des événements du journal d’activité Azure.

Exemple d’alerte de journal d’activité quand monitoringService = Activity Log - Administrative

{
  "alertContext": {
      "authorization": {
        "action": "Microsoft.Compute/virtualMachines/restart/action",
        "scope": "/subscriptions/<subscription ID>/resourceGroups/PipeLineAlertRG/providers/Microsoft.Compute/virtualMachines/WCUS-R2-ActLog"
      },
      "channels": "Operation",
      "claims": "{\"aud\":\"https://management.core.windows.net/\",\"iss\":\"https://sts.windows.net/12345a-1234b-123c-123d-12345678e/\",\"iat\":\"1553260826\",\"nbf\":\"1553260826\",\"exp\":\"1553264726\",\"aio\":\"42JgYNjdt+rr+3j/dx68v018XhuFAwA=\",\"appid\":\"e9a02282-074f-45cf-93b0-50568e0e7e50\",\"appidacr\":\"2\",\"http://schemas.microsoft.com/identity/claims/identityprovider\":\"https://sts.windows.net/12345a-1234b-123c-123d-12345678e/\",\"http://schemas.microsoft.com/identity/claims/objectidentifier\":\"9778283b-b94c-4ac6-8a41-d5b493d03aa3\",\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier\":\"9778283b-b94c-4ac6-8a41-d5b493d03aa3\",\"http://schemas.microsoft.com/identity/claims/tenantid\":\"12345a-1234b-123c-123d-12345678e\",\"uti\":\"v5wYC9t9ekuA2rkZSVZbAA\",\"ver\":\"1.0\"}",
      "caller": "9778283b-b94c-4ac6-8a41-d5b493d03aa3",
      "correlationId": "8ee9c32a-92a1-4a8f-989c-b0ba09292a91",
      "eventSource": "Administrative",
      "eventTimestamp": "2019-03-22T13:56:31.2917159+00:00",
      "eventDataId": "161fda7e-1cb4-4bc5-9c90-857c55a8f57b",
      "level": "Informational",
      "operationName": "Microsoft.Compute/virtualMachines/restart/action",
      "operationId": "310db69b-690f-436b-b740-6103ab6b0cba",
      "status": "Succeeded",
      "subStatus": "",
      "submissionTimestamp": "2019-03-22T13:56:54.067593+00:00"
    }
}

Exemple d’alerte de journal d’activité quand monitoringService = Activity Log - Policy

{
  "alertContext": {
    "authorization": {
      "action": "Microsoft.Resources/checkPolicyCompliance/read",
      "scope": "/subscriptions/<GUID>"
    },
    "channels": "Operation",
    "claims": "{\"aud\":\"https://management.azure.com/\",\"iss\":\"https://sts.windows.net/<GUID>/\",\"iat\":\"1566711059\",\"nbf\":\"1566711059\",\"exp\":\"1566740159\",\"aio\":\"42FgYOhynHNw0scy3T/bL71+xLyqEwA=\",\"appid\":\"<GUID>\",\"appidacr\":\"2\",\"http://schemas.microsoft.com/identity/claims/identityprovider\":\"https://sts.windows.net/<GUID>/\",\"http://schemas.microsoft.com/identity/claims/objectidentifier\":\"<GUID>\",\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier\":\"<GUID>\",\"http://schemas.microsoft.com/identity/claims/tenantid\":\"<GUID>\",\"uti\":\"Miy1GzoAG0Scu_l3m1aIAA\",\"ver\":\"1.0\"}",
    "caller": "<GUID>",
    "correlationId": "<GUID>",
    "eventSource": "Policy",
    "eventTimestamp": "2019-08-25T11:11:34.2269098+00:00",
    "eventDataId": "<GUID>",
    "level": "Warning",
    "operationName": "Microsoft.Authorization/policies/audit/action",
    "operationId": "<GUID>",
    "properties": {
      "isComplianceCheck": "True",
      "resourceLocation": "eastus2",
      "ancestors": "<GUID>",
      "policies": "[{\"policyDefinitionId\":\"/providers/Microsoft.Authorization/policyDefinitions/<GUID>/\",\"policySetDefinitionId\":\"/providers/Microsoft.Authorization/policySetDefinitions/<GUID>/\",\"policyDefinitionReferenceId\":\"vulnerabilityAssessmentMonitoring\",\"policySetDefinitionName\":\"<GUID>\",\"policyDefinitionName\":\"<GUID>\",\"policyDefinitionEffect\":\"AuditIfNotExists\",\"policyAssignmentId\":\"/subscriptions/<GUID>/providers/Microsoft.Authorization/policyAssignments/SecurityCenterBuiltIn/\",\"policyAssignmentName\":\"SecurityCenterBuiltIn\",\"policyAssignmentScope\":\"/subscriptions/<GUID>\",\"policyAssignmentSku\":{\"name\":\"A1\",\"tier\":\"Standard\"},\"policyAssignmentParameters\":{}}]"
    },
    "status": "Succeeded",
    "subStatus": "",
    "submissionTimestamp": "2019-08-25T11:12:46.1557298+00:00"
  }
}

Exemple d’alerte de journal d’activité quand monitoringService = Activity Log - Autoscale

{
  "alertContext": {
    "channels": "Admin, Operation",
    "claims": "{\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn\":\"Microsoft.Insights/autoscaleSettings\"}",
    "caller": "Microsoft.Insights/autoscaleSettings",
    "correlationId": "<GUID>",
    "eventSource": "Autoscale",
    "eventTimestamp": "2019-08-21T16:17:47.1551167+00:00",
    "eventDataId": "<GUID>",
    "level": "Informational",
    "operationName": "Microsoft.Insights/AutoscaleSettings/Scaleup/Action",
    "operationId": "<GUID>",
    "properties": {
      "description": "The autoscale engine attempting to scale resource '/subscriptions/d<GUID>/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachineScaleSets/testVMSS' from 9 instances count to 10 instances count.",
      "resourceName": "/subscriptions/<GUID>/resourceGroups/voiceassistancedemo/providers/Microsoft.Compute/virtualMachineScaleSets/alexademo",
      "oldInstancesCount": "9",
      "newInstancesCount": "10",
      "activeAutoscaleProfile": "{\r\n  \"Name\": \"Auto created scale condition\",\r\n  \"Capacity\": {\r\n    \"Minimum\": \"1\",\r\n    \"Maximum\": \"10\",\r\n    \"Default\": \"1\"\r\n  },\r\n  \"Rules\": [\r\n    {\r\n      \"MetricTrigger\": {\r\n        \"Name\": \"Percentage CPU\",\r\n        \"Namespace\": \"microsoft.compute/virtualmachinescalesets\",\r\n        \"Resource\": \"/subscriptions/<GUID>/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachineScaleSets/testVMSS\",\r\n        \"ResourceLocation\": \"eastus\",\r\n        \"TimeGrain\": \"PT1M\",\r\n        \"Statistic\": \"Average\",\r\n        \"TimeWindow\": \"PT5M\",\r\n        \"TimeAggregation\": \"Average\",\r\n        \"Operator\": \"GreaterThan\",\r\n        \"Threshold\": 0.0,\r\n        \"Source\": \"/subscriptions/<GUID>/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachineScaleSets/testVMSS\",\r\n        \"MetricType\": \"MDM\",\r\n        \"Dimensions\": [],\r\n        \"DividePerInstance\": false\r\n      },\r\n      \"ScaleAction\": {\r\n        \"Direction\": \"Increase\",\r\n        \"Type\": \"ChangeCount\",\r\n        \"Value\": \"1\",\r\n        \"Cooldown\": \"PT1M\"\r\n      }\r\n    }\r\n  ]\r\n}",
      "lastScaleActionTime": "Wed, 21 Aug 2019 16:17:47 GMT"
    },
    "status": "Succeeded",
    "submissionTimestamp": "2019-08-21T16:17:47.2410185+00:00"
  }
}

Exemple d’alerte de journal d’activité quand monitoringService = Activity Log - Security

{
  "alertContext": {
    "channels": "Operation",
    "correlationId": "<GUID>",
    "eventSource": "Security",
    "eventTimestamp": "2019-08-26T08:34:14+00:00",
    "eventDataId": "<GUID>",
    "level": "Informational",
    "operationName": "Microsoft.Security/locations/alerts/activate/action",
    "operationId": "<GUID>",
    "properties": {
      "threatStatus": "Quarantined",
      "category": "Virus",
      "threatID": "2147519003",
      "filePath": "C:\\AlertGeneration\\test.eicar",
      "protectionType": "Windows Defender",
      "actionTaken": "Blocked",
      "resourceType": "Virtual Machine",
      "severity": "Low",
      "compromisedEntity": "testVM",
      "remediationSteps": "[\"No user action is necessary\"]",
      "attackedResourceType": "Virtual Machine"
    },
    "status": "Active",
    "submissionTimestamp": "2019-08-26T09:28:58.3019107+00:00"
  }
}

Exemple d’alerte de journal d’activité quand monitoringService = ServiceHealth

{
  "alertContext": {
    "authorization": null,
    "channels": 1,
    "claims": null,
    "caller": null,
    "correlationId": "f3cf2430-1ee3-4158-8e35-7a1d615acfc7",
    "eventSource": 2,
    "eventTimestamp": "2019-06-24T11:31:19.0312699+00:00",
    "httpRequest": null,
    "eventDataId": "<GUID>",
    "level": 3,
    "operationName": "Microsoft.ServiceHealth/maintenance/action",
    "operationId": "<GUID>",
    "properties": {
      "title": "Azure Synapse Analytics Scheduled Maintenance Pending",
      "service": "Azure Synapse Analytics",
      "region": "East US",
      "communication": "<MESSAGE>",
      "incidentType": "Maintenance",
      "trackingId": "<GUID>",
      "impactStartTime": "2019-06-26T04:00:00Z",
      "impactMitigationTime": "2019-06-26T12:00:00Z",
      "impactedServices": "[{\"ImpactedRegions\":[{\"RegionName\":\"East US\"}],\"ServiceName\":\"Azure Synapse Analytics\"}]",
      "impactedServicesTableRows": "<tr>\r\n<td align='center' style='padding: 5px 10px; border-right:1px solid black; border-bottom:1px solid black'>Azure Synapse Analytics</td>\r\n<td align='center' style='padding: 5px 10px; border-bottom:1px solid black'>East US<br></td>\r\n</tr>\r\n",
      "defaultLanguageTitle": "Azure Synapse Analytics Scheduled Maintenance Pending",
      "defaultLanguageContent": "<MESSAGE>",
      "stage": "Planned",
      "communicationId": "<GUID>",
      "maintenanceId": "<GUID>",
      "isHIR": "false",
      "version": "0.1.1"
    },
    "status": "Active",
    "subStatus": null,
    "submissionTimestamp": "2019-06-24T11:31:31.7147357+00:00",
    "ResourceType": null
  }
}

Exemple d’alerte de journal d’activité quand monitoringService = ResourceHealth

{
  "alertContext": {
    "channels": "Admin, Operation",
    "correlationId": "<GUID>",
    "eventSource": "ResourceHealth",
    "eventTimestamp": "2019-06-24T15:42:54.074+00:00",
    "eventDataId": "<GUID>",
    "level": "Informational",
    "operationName": "Microsoft.Resourcehealth/healthevent/Activated/action",
    "operationId": "<GUID>",
    "properties": {
      "title": "This virtual machine is stopping and deallocating as requested by an authorized user or process",
      "details": null,
      "currentHealthStatus": "Unavailable",
      "previousHealthStatus": "Available",
      "type": "Downtime",
      "cause": "UserInitiated"
    },
    "status": "Active",
    "submissionTimestamp": "2019-06-24T15:45:20.4488186+00:00"
  }
}

Champs de contexte d’alerte pour les alertes Prometheus

Pour plus d’informations sur les champs des alertes Prometheus, consultez Service managé Azure Monitor pour les groupes de règles Prometheus (préversion).

Exemple d’alerte Prometheus

{
  "alertContext": {
    "interval": "PT1M",
    "expression": "sql_up > 0",
    "expressionValue": "0",
    "for": "PT2M",
    "labels": {
      "Environment": "Prod",
      "cluster": "myCluster1"
    },
    "annotations": {
      "summary": "alert on SQL availability"
    },
    "ruleGroup": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.AlertsManagement/prometheusRuleGroups/myRuleGroup"
  }
}

Champs de propriétés personnalisées

Si la règle d’alerte ayant généré votre alerte contient des groupes d’actions, les propriétés personnalisées peuvent contenir des informations supplémentaires sur l’alerte. La section propriétés personnalisées contient des objets « key: value » qui sont ajoutés aux notifications de webhook.

Si les propriétés personnalisées ne sont pas définies dans la règle d’alerte, le champ est défini sur nul.

Activer le schéma d’alerte commun

Utilisez des groupes d’actions dans le Portail Azure ou utilisez l’API REST pour activer le schéma d’alerte commun. Les schémas sont définis au niveau de l’action. Par exemple, vous devez activer séparément le schéma pour une action d’e-mail et une action de webhook.

Activer le schéma commun dans le portail Azure

Screenshot that shows the common alert schema opt in.

  1. Ouvrez n’importe quelle action existante ou une nouvelle action dans un groupe d’actions.
  2. Sélectionnez Oui pour activer le schéma d’alerte courant.

Activer le schéma commun en utilisant l’API REST

Vous pouvez également utiliser l’API Groupes d’actions pour adhérer au schéma d’alerte commun. Dans l’appel d’API REST créer ou mettre à jour,

  • Définissez l’indicateur « useCommonAlertSchema » sur true pour activer le schéma commun
  • Définissez l’indicateur « useCommonAlertSchema » sur false afin d’utiliser le schéma non commun pour les actions d’e-mail, de webhook, Logic Apps, Azure Functions ou de runbook Automation.

Exemple d’appel d’API REST pour utiliser le schéma commun

La demande d’API REST créer ou mettre à jour suivante :

  • Active le schéma d’alerte commun pour l’action d’e-mail « John Doe's email ».
  • Désactive le schéma d’alerte commun pour l’action d’e-mail « Jane Smith's email ».
  • Active le schéma d’alerte commun pour l’action de webhook « Sample webhook ».
{
  "properties": {
    "groupShortName": "sample",
    "enabled": true,
    "emailReceivers": [
      {
        "name": "John Doe's email",
        "emailAddress": "johndoe@email.com",
        "useCommonAlertSchema": true
      },
      {
        "name": "Jane Smith's email",
        "emailAddress": "janesmith@email.com",
        "useCommonAlertSchema": false
      }
    ],
    "smsReceivers": [
      {
        "name": "John Doe's mobile",
        "countryCode": "1",
        "phoneNumber": "1234567890"
      },
      {
        "name": "Jane Smith's mobile",
        "countryCode": "1",
        "phoneNumber": "0987654321"
      }
    ],
    "webhookReceivers": [
      {
        "name": "Sample webhook",
        "serviceUri": "http://www.example.com/webhook",
        "useCommonAlertSchema": true
      }
    ]
  },
  "location": "Global",
  "tags": {}
}

Étapes suivantes