Esquema comum de alertas

O esquema de alerta comum padroniza a consumo do Azure Monitor para notificações de alerta no Azure. Historicamente, os alertas de log de atividade, métrica e pesquisa de logs tinham seus próprios modelos de email e esquemas de webhook. O esquema de alerta comum fornece um esquema padronizado para todas as notificações de alerta.

Usar um esquema padronizado ajuda a minimizar o número de integrações, o que simplifica o processo de gerenciamento e manutenção de integrações. O esquema comum habilita uma experiência de consumo de alerta mais rica no portal e no aplicativo móvel do Azure.

O esquema de alerta comum fornece uma estrutura uniforme para:

  • Modelos de email: use o modelo de email detalhado para diagnosticar problemas rapidamente. Links inseridos para a instância de alerta no portal e para o recurso afetado garantem que você possa ir rapidamente para o processo de correção.
  • Estrutura JSON: Use a estrutura JSON consistente para criar integrações para todos os tipos de alerta usando:
    • Aplicativos Lógicos do Azure
    • Azure Functions
    • Runbook de Automação do Azure

Observação

  • Os alertas gerados pelos insights de VM não dão suporte ao esquema comum.
  • Alertas de detecção inteligente usam o esquema comum por padrão. Você não precisa habilitar o esquema comum para alertas de detecção inteligente.

Estrutura do esquema comum

O esquema comum inclui informações sobre o recurso afetado e a causa do alerta nestas seções:

  • Essentials: campos padronizados, usados por todos os tipos de alerta que descrevem o recurso afetado pelo alerta, bem como metadados de alerta comuns, como gravidade ou descrição.

    Se você quiser rotear instâncias de alerta para equipes específicas com base em critérios como um grupo de recursos, poderá usar os campos na seção Essentials para fornecer lógica de roteamento para todos os tipos de alerta. As equipes que recebem a notificação de alerta podem usar os campos de contexto para investigação.

  • Contexto do alerta: campos que variam dependendo do tipo de alerta. Os campos de contexto do alerta descrevem a causa do alerta. Por exemplo, um alerta de métrica teria campos como o nome da métrica e o valor da métrica no contexto do alerta. Um alerta do log de atividades teria informações sobre o evento que gerou o alerta.

  • Propriedades personalizadas: informações adicionais que não estão incluídas no conteúdo do alerta por padrão podem ser incluídas no conteúdo do alerta usando propriedades personalizadas. As propriedades personalizadas são um par chave-valor que pode incluir qualquer informação configurada na regra de alerta.

Payload de alerta de amostra

{
  "schemaId": "azureMonitorCommonAlertSchema",
  "data": {
    "essentials": {
      "alertId": "/subscriptions/<subscription ID>/providers/Microsoft.AlertsManagement/alerts/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
      "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"
    }
  }
}

Para obter alertas de exemplo que usam o esquema comum, consulte Conteúdos de alerta de exemplo.

Campos essenciais

Campo Descrição
alertId A ID de recurso exclusiva que identifica a instância de alerta.
alertRule O nome do tipo de alerta que gerou a instância do alerta.
Severity A severidade do alerta. Valores possíveis são Sev0, Sev1, Sev2, Sev3 ou Sev4.
signalType Identifica o sinal no qual a regra de alerta foi definida. Valores possíveis são Métrica, Log ou Log de atividades.
monitorCondition Quando um alerta é acionado, a condição do monitor do alerta é definida como Acionada. Quando a condição subjacente que causou o acionamento do alerta desaparece, a condição do monitor é definida como Resolvida.
monitoringService O serviço de monitoramento ou a solução que gerou o alerta. O serviço de monitoramento determina quais campos estão no contexto de alerta.
alertTargetIDs A lista das IDs do Azure Resource Manager que são destinos afetados de um alerta. Para um alerta de pesquisa de log definido em um workspace do Log Analytics ou na instância do Application Insights, é o respectivo workspace ou aplicativo.
configurationItems A lista de recursos afetados de um alerta.
Em alguns casos, os itens de configuração podem ser diferentes dos destinos de alerta. Por exemplo, em alertas de pesquisa de log ou de métrica definidos em um workspace do Log Analytics, os itens de configuração são os recursos reais que enviam os dados e não o workspace.
  • Na API de alertas de pesquisa de log (Regras de Consulta Agendadas) v2021-08-01, os valores configurationItem são obtidos de dimensões definidas explicitamente nesta prioridade: _ResourceId, ResourceId, Resource, Computer.
  • Em versões anteriores da API de alertas de pesquisa de log, os valores configurationItem são obtidos implicitamente dos resultados nessa prioridade: _ResourceId, ResourceId, Resource, Computer.
Em sistemas ITSM, o campo configurationItems é usado para correlacionar alertas a recursos em um banco de dados de gerenciamento de configuração.
originAlertId A ID da instância de alerta, conforme gerado pelo serviço de monitoramento que a gera.
firedDateTime A data e a hora em que a instância de alerta foi acionada no UTC (Tempo Universal Coordenado).
resolvedDateTime A data e a hora em que a condição do monitor para a instância de alerta está definida como Resolvida em UTC. Atualmente aplicável somente a alertas de métricas.
descrição A descrição, conforme definido na regra de alerta.
alertRuleID A ID da regra de alerta que gerou a instância de alerta.
resourceType O tipo de recurso afetado pelo alerta.
resourceGroupName Nome do grupo de recursos do recurso afetado.
essentialsVersion O número de versão da seção Essentials.
alertContextVersion O número de versão da seção alertContext.
investigationLink Link para investigar o alerta no Azure Monitor. Atualmente, requer um registro de versão prévia limitada.

Campos de contexto do alerta para alertas de métrica

Campo Descrição
properties (Opcional.) Uma coleção de propriedades definidas pelo cliente.
conditionType O tipo de condição selecionado para a regra de alerta:
– limite estático
– limite dinâmico
– webtest
condition
windowSize O período analisado pela regra de alerta.
allOf Indica que todas as condições definidas na regra de alerta devem ser atendidas para disparar um alerta.
alertSensitivity Em uma regra de alerta com um limite dinâmico, indica o quão sensível é a regra ou quanto o valor pode desviar do limite superior ou inferior.
failingPeriods Em uma regra de alerta com um limite dinâmico, o número de períodos de avaliação que não atendem ao limite de alerta que dispara um alerta. Por exemplo, você pode indicar que um alerta é disparado quando três dos últimos cinco períodos de avaliação não estão dentro dos limites de alerta.
numberOfEvaluationPeriods O número total de avaliações.
minFailingPeriodsToAlert O número mínimo de avaliações que não atendem às condições da regra de alerta.
ignoreDataBefore (Opcional.) Em uma regra de alerta com um limite dinâmico, a data da qual o limite é calculado. Use esse valor para indicar que a regra não deve calcular o limite dinâmico usando dados de antes da data especificada.
metricName O nome da métrica monitorada pela regra de alerta.
MetricNamespace O namespace da métrica monitorada pela regra de alerta.
operador O operador lógico da regra de alerta.
threshold O limite definido na regra de alerta. Para uma regra de alerta com um limite dinâmico, esse valor é o limite calculado.
timeAggregation O tipo de agregação da regra de alerta.
dimensions A dimensão de métrica que disparou o alerta.
name O nome da dimensão.
value O valor da dimensão.
metricValue O valor da métrica no momento em que o limite foi violado.
webTestName Se o tipo de condição for webtest, o nome do webtest.
windowStartTime A hora de início da janela de avaliação na qual o alerta foi disparado.
windowEndTime A hora de término da janela de avaliação na qual o alerta foi disparado.

Exemplo de alerta de métrica com um limite estático quando 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"
      }
    }
}

Exemplo de alerta de métrica com um limite dinâmico quando 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"
      }
    }
}

Exemplo de alerta de métrica para testes de disponibilidade quando 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"
      }
    }
}

Campos de contexto de alerta para alertas de pesquisa de log

Observação

Quando você habilita o esquema comum, os campos no conteúdo são redefinidos para os campos de esquema comuns. Portanto, os alertas de pesquisa de log têm essas limitações em relação ao esquema comum:

  • Não há suporte para o esquema comum para alertas de pesquisa de log usando webhooks com um assunto de email personalizado e/ou conteúdo JSON, já que o esquema comum substitui as configurações personalizadas.
  • Alertas que usam o esquema comum têm um limite de tamanho superior de 256 KB por alerta. Se o conteúdo dos alertas de pesquisa de logs incluir resultados de pesquisa que fazem com que o alerta exceda o tamanho máximo, os resultados da pesquisa não serão inseridos no conteúdo de alertas de pesquisa de log. Você pode verificar se o conteúdo inclui os resultados da pesquisa com o sinalizador IncludedSearchResults. Use LinkToFilteredSearchResultsAPI ou LinkToSearchResultsAPI para acessar os resultados da consulta com a API do Log Analytics se os resultados da pesquisa não estiverem incluídos.
Campo Descrição
SearchQuery A consulta definida na regra de alerta.
SearchIntervalStartTimeUtc A hora de início da janela de avaliação na qual o alerta foi disparado em UTC.
SearchIntervalEndTimeUtc A hora de término da janela de avaliação na qual o alerta foi disparado em UTC.
ResultCount O número de registros retornados pela consulta. Para regras de medição de métrica, o número ou registros que correspondem à combinação de dimensões específica.
LinkToSearchResults Um link para os resultados da pesquisa.
LinkToFilteredSearchResultsUI Para regras de medição de métrica, o link para os resultados da pesquisa depois de terem sido filtrados pelas combinações de dimensão.
LinkToSearchResultsAPI Um link para os resultados da consulta usando a API do Log Analytics.
LinkToFilteredSearchResultsAPI Para regras de medição de métrica, o link para os resultados da pesquisa usando a API de análise de logs depois de terem sido filtrados pelas combinações de dimensão.
SearchIntervalDurationMin O número total de minutos no intervalo de pesquisa.
SearchIntervalInMin O número total de minutos no intervalo de pesquisa.
Limite O limite definido na regra de alerta.
Operador O operador definido na regra de alerta.
ApplicationID A ID do Application Insights na qual o alerta foi disparado.
Dimensões Para regras de medição de métrica, as dimensões de métrica nas quais o alerta foi disparado.
name O nome da dimensão.
value O valor da dimensão.
SearchResults Os resultados completos da pesquisa.
table A tabela de resultados nos resultados da pesquisa.
name O nome da tabela nos resultados da pesquisa.
colunas As colunas na tabela.
name O nome da coluna.
tipo O tipo da coluna.
rows As linhas na tabela.
DataSources As fontes de dados nas quais o alerta foi disparado.
resourceID A ID do recurso afetada pelo alerta.
tabelas As tabelas de resposta de rascunho incluídas na consulta.
IncludedSearchResults Sinalizador que indica se a carga deve conter os resultados.
AlertType O tipo de alerta:
- Medida de métrica
- Número de resultados

Alerta de pesquisa de log de exemplo quando o 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/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourcegroups/test/providers/microsoft.operationalinsights/workspaces/test",
          "tables": [
            "Heartbeat"
          ]
        }
      ]
    },
    "IncludedSearchResults": "True",
    "AlertType": "Metric measurement"
  }
}

Exemplo de alerta de pesquisa de log quando o 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": "00001111-aaaa-2222-bbbb-3333cccc4444",
    "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/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourcegroups/test/providers/microsoft.operationalinsights/workspaces/test",
          "tables": [
            "Heartbeat"
          ]
        }
      ]
    },
    "IncludedSearchResults": "True",
    "AlertType": "Metric measurement"
  }
}

Exemplo de alerta de pesquisa de log quando o monitoringService = Alertas de Log V2

Observação

As regras de alerta de pesquisa de log da API versão 2020-05-01 usam esse tipo de conteúdo, que dá suporte apenas ao esquema comum. Os resultados da pesquisa não são inseridos no conteúdo de alertas de pesquisa de log quando você usa essa versão. Use as dimensões para fornecer contexto para alertas acionados. Você também pode usar LinkToFilteredSearchResultsAPI ou LinkToSearchResultsAPI para acessar os resultados da consulta com a API do Log Analytics. Se precisar inserir os resultados, use um aplicativo lógico com os links fornecidos para gerar um conteúdo personalizado.

{
  "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"
    }
  }
}

Campos de contexto do alerta para alertas do log de atividades

Consulte o Esquema de eventos do log de atividades do Azure para obter informações detalhadas sobre os campos em alertas do log de atividades.

Exemplo de alerta do log de atividades quando o monitoringService = Log de Atividades – Administrativo

{
  "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\":\"11112222-bbbb-3333-cccc-4444dddd5555\",\"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\":\"22223333-cccc-4444-dddd-5555eeee6666\",\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier\":\"22223333-cccc-4444-dddd-5555eeee6666\",\"http://schemas.microsoft.com/identity/claims/tenantid\":\"12345a-1234b-123c-123d-12345678e\",\"uti\":\"v5wYC9t9ekuA2rkZSVZbAA\",\"ver\":\"1.0\"}",
      "caller": "22223333-cccc-4444-dddd-5555eeee6666",
      "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
      "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"
    }
}

Exemplo de alerta do log de atividades quando o monitoringService = Log de Atividades – Política

{
  "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"
  }
}

Exemplo de alerta do log de atividades quando o monitoringService = Log de Atividades – Dimensionamento automático

{
  "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"
  }
}

Exemplo de alerta do log de atividades quando o monitoringService = Log de Atividades – Segurança

{
  "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"
  }
}

Exemplo de alerta do log de atividades quando o monitoringService = ServiceHealth

{
  "alertContext": {
    "authorization": null,
    "channels": 1,
    "claims": null,
    "caller": null,
    "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
    "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
  }
}

Exemplo de alerta do log de atividades quando o 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"
  }
}

Campos de contexto do alerta para alertas do Prometheus

Consulte Grupo de regras de Serviço gerenciado para Prometheus do Azure Monitor para obter informações detalhadas sobre os campos em alertas do Prometheus.

Exemplo de alerta do 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"
  }
}

Campos de propriedades personalizadas

Se a regra que gerou o alerta contiver grupos de ações, as propriedades personalizadas poderão conter informações adicionais sobre o alerta. A seção de propriedades personalizadas contém objetos "chave: valor" que são adicionados às notificações de webhook.

Se as propriedades personalizadas não estiverem definidas na regra de alerta, o campo será nulo.

Habilitar o esquema de alerta comum

Use grupos de ações no portal do Azure ou use a API REST para habilitar o esquema de alerta comum. Os esquemas são definidos no nível da ação. Por exemplo, você precisa habilitar separadamente o esquema para uma ação de email e uma ação de webhook.

Habilitar o esquema comum no portal do Azure

Captura de tela que mostra a aceitação do esquema de alerta comum.

  1. Abra qualquer ação existente ou nova ação em um grupo de ações.
  2. Selecione Sim para habilitar o esquema de alerta comum.

Habilitar o esquema comum usando a API REST

Você também pode usar a API dos Grupos de Ação para aceitar o esquema de alerta comum. Na chamada para criar ou atualizar a API REST,

  • Defina o sinalizador "useCommonAlertSchema" como true para habilitar o esquema comum
  • Defina o sinalizador "useCommonAlertSchema" como false para usar o esquema não comum para ações do runbook de Automação, email, webhook, Aplicativos Lógicos ou Azure Functions.

Exemplo de chamada à API REST para usar o esquema comum

A seguinte solicitação para criar ou atualizar a API REST:

  • Habilita o esquema de alerta comum para a ação de email "John Doe's email".
  • Desabilita o esquema de alerta comum para a ação de email "Jane Smith's email".
  • Habilita o esquema de alerta comum para a ação 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": {}
}

Próximas etapas