Voorbeeldpayloads voor waarschuwingen voor zoeken in logboeken met behulp van webhookacties

U kunt webhookacties in een waarschuwingsregel voor zoeken in logboeken gebruiken om één HTTP POST-aanvraag aan te roepen. In dit artikel beschrijven we de eigenschappen die beschikbaar zijn wanneer u actiegroepen configureert voor het gebruik van webhooks. De service die wordt aangeroepen, moet webhooks ondersteunen en weten hoe u de nettolading gebruikt die wordt ontvangen.

U wordt aangeraden een algemeen waarschuwingsschema te gebruiken voor uw webhookintegraties. Het algemene waarschuwingsschema biedt het voordeel van één uitbreidbare en uniforme nettolading van waarschuwingen voor alle waarschuwingsservices in Azure Monitor.

Voor waarschuwingsregels voor zoeken in logboeken waarvoor een aangepaste JSON-nettolading is gedefinieerd, waardoor het algemene waarschuwingsschema het nettoladingschema terugdraait naar het schema dat wordt beschreven in het algemene waarschuwingsschema. Als u een aangepaste JSON-nettolading wilt definiëren, kan de webhook het algemene waarschuwingsschema niet gebruiken.

Waarschuwingen waarvoor het algemene schema is ingeschakeld, hebben een bovengrens van 256 kB per waarschuwing. Een grotere waarschuwing bevat geen zoekresultaten. Wanneer de zoekresultaten niet zijn opgenomen, gebruikt LinkToFilteredSearchResultsAPI of LinkToSearchResultsAPI opent u queryresultaten via de Log Analytics-API.

De voorbeeldpayloads bevatten voorbeelden wanneer de nettolading standaard is en wanneer deze aangepast is.

Waarschuwing voor zoeken in logboeken voor alle resourcelogboeken (van API-versie 2021-08-01)

De volgende voorbeeldpayload is voor een standaardwebhook wanneer deze wordt gebruikt voor waarschuwingen voor zoeken in logboeken op basis van resourceslogboeken:

{
    "schemaId": "azureMonitorCommonAlertSchema",
    "data": {
        "essentials": {
            "alertId": "/subscriptions/12345a-1234b-123c-123d-12345678e/providers/Microsoft.AlertsManagement/alerts/12345a-1234b-123c-123d-12345678e",
            "alertRule": "AcmeRule",
            "severity": "Sev4",
            "signalType": "Log",
            "monitorCondition": "Fired",
            "monitoringService": "Log Alerts V2",
            "alertTargetIDs": [
                "/subscriptions/12345a-1234b-123c-123d-12345678e/resourcegroups/ai-engineering/providers/microsoft.compute/virtualmachines/testvm"
            ],
            "originAlertId": "123c123d-1a23-1bf3-ba1d-dd1234ff5a67",
            "firedDateTime": "2020-07-09T14:04:49.99645Z",
            "description": "log alert rule V2",
            "essentialsVersion": "1.0",
            "alertContextVersion": "1.0"
        },
        "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": "ResourceId",
                                "value": "/subscriptions/12345a-1234b-123c-123d-12345678e/resourceGroups/TEST/providers/Microsoft.Compute/virtualMachines/testvm"
                            }
                        ],
                        "metricValue": 0.0,
                        "failingPeriods": {
                            "numberOfEvaluationPeriods": 1,
                            "minFailingPeriodsToAlert": 1
                        },
                        "linkToSearchResultsUI": "https://portal.azure.com#@12f345bf-12f3-12af-12ab-1d2cd345db67/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/source/Alerts.EmailLinks/scope/%7B%22resources%22%3A%5B%7B%22resourceId%22%3A%22%2Fsubscriptions%2F12345a-1234b-123c-123d-12345678e%2FresourceGroups%2FTEST%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Ftestvm%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#@12f345bf-12f3-12af-12ab-1d2cd345db67/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/source/Alerts.EmailLinks/scope/%7B%22resources%22%3A%5B%7B%22resourceId%22%3A%22%2Fsubscriptions%2F12345a-1234b-123c-123d-12345678e%2FresourceGroups%2FTEST%2Fproviders%2FMicrosoft.Compute%2FvirtualMachines%2Ftestvm%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/TEST/providers/Microsoft.Compute/virtualMachines/testvm/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/TEST/providers/Microsoft.Compute/virtualMachines/testvm/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"
            }
        }
    }
}

Waarschuwing voor zoeken in logboeken voor Log Analytics (maximaal API-versie 2018-04-16)

De volgende voorbeeldpayload is bedoeld voor een standaardwebhookactie die wordt gebruikt voor waarschuwingen op basis van Log Analytics:

Notitie

De "Severity" veldwaarde wordt gewijzigd als u bent overgeschakeld naar de huidige scheduledQueryRules-API van de verouderde Log Analytics-waarschuwings-API.

{
    "SubscriptionId": "12345a-1234b-123c-123d-12345678e",
    "AlertRuleName": "AcmeRule",
    "SearchQuery": "Perf | where ObjectName == \"Processor\" and CounterName == \"% Processor Time\" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 5m), Computer",
    "SearchIntervalStartTimeUtc": "2018-03-26T08:10:40Z",
    "SearchIntervalEndtimeUtc": "2018-03-26T09:10:40Z",
    "AlertThresholdOperator": "Greater Than",
    "AlertThresholdValue": 0,
    "ResultCount": 2,
    "SearchIntervalInSeconds": 3600,
    "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",
    "Description": "log alert rule",
    "Severity": "Warning",
    "AffectedConfigurationItems": [
        "INC-Gen2Alert"
    ],
    "Dimensions": [
        {
            "name": "Computer",
            "value": "INC-Gen2Alert"
        }
    ],
    "SearchResult": {
        "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"
                    ]
                ]
            }
        ]
    },
    "WorkspaceId": "12345a-1234b-123c-123d-12345678e",
    "AlertType": "Metric measurement"
}

Waarschuwing voor zoeken in logboeken voor Application Insights (maximaal API-versie 2018-04-16)

De volgende voorbeeldpayload is voor een standaardwebhook wanneer deze wordt gebruikt voor waarschuwingen voor zoeken in logboeken op basis van Application Insights-resources:

{
    "schemaId": "Microsoft.Insights/LogAlert",
    "data": {
        "SubscriptionId": "12345a-1234b-123c-123d-12345678e",
        "AlertRuleName": "AcmeRule",
        "SearchQuery": "requests | where resultCode == \"500\" | summarize AggregatedValue = Count by bin(Timestamp, 5m), IP",
        "SearchIntervalStartTimeUtc": "2018-03-26T08:10:40Z",
        "SearchIntervalEndtimeUtc": "2018-03-26T09:10:40Z",
        "AlertThresholdOperator": "Greater Than",
        "AlertThresholdValue": 0,
        "ResultCount": 2,
        "SearchIntervalInSeconds": 3600,
        "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",
        "Description": null,
        "Severity": "3",
        "Dimensions": [
            {
                "name": "IP",
                "value": "1.1.1.1"
            }
        ],
        "SearchResult": {
            "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"
                        ]
                    ]
                }
            ]
        },
        "ApplicationId": "123123f0-01d3-12ab-123f-abc1ab01c0a1",
        "AlertType": "Metric measurement"
    }
}

Waarschuwing voor zoeken in logboeken met een aangepaste JSON-nettolading (maximaal API-versie 2018-04-16)

Notitie

Een aangepaste webhook op basis van JSON wordt niet ondersteund vanuit de API-versie 2021-08-01.

De volgende tabel bevat standaardeigenschappen voor webhookacties en hun aangepaste JSON-parameternamen.

Parameter Variabele Beschrijving
AlertRuleName #alertrulename Naam van de waarschuwingsregel.
Severity #severity Ernst ingesteld voor de geactiveerde waarschuwing voor zoeken in logboeken.
AlertThresholdOperator #thresholdoperator Drempelwaarde-operator voor de waarschuwingsregel.
AlertThresholdValue #thresholdvalue Drempelwaarde voor de waarschuwingsregel.
LinkToSearchResults #linktosearchresults Maak een koppeling naar de Analytics-portal die de records retourneert uit de query die de waarschuwing heeft gemaakt.
LinkToSearchResultsAPI #linktosearchresultsapi Maak een koppeling naar de Analytics-API die de records retourneert uit de query waarmee de waarschuwing is gemaakt.
LinkToFilteredSearchResultsUI #linktofilteredsearchresultsui Koppeling naar de Analytics-portal die de records retourneert uit de query die is gefilterd op combinaties van dimensiewaarden die de waarschuwing hebben gemaakt.
LinkToFilteredSearchResultsAPI #linktofilteredsearchresultsapi Koppel een koppeling naar de Analytics-API die de records retourneert uit de query die is gefilterd op combinaties van dimensiewaarden die de waarschuwing hebben gemaakt.
ResultCount #searchresultcount Aantal records in de zoekresultaten.
Search Interval End time #searchintervalendtimeutc Eindtijd voor de query in UTC, met de notatie mm/dd/jjjj UU:mm:ss AM/PM.
Search Interval #searchinterval Tijdvenster voor de waarschuwingsregel, met de notatie UU:mm:ss.
Search Interval StartTime #searchintervalstarttimeutc Begintijd voor de query in UTC, met de notatie mm/dd/jjjj UU:mm:ss AM/PM.
SearchQuery #searchquery Zoekquery voor logboeken die wordt gebruikt door de waarschuwingsregel.
SearchResults "IncludeSearchResults": true Records die door de query worden geretourneerd als een JSON-tabel, beperkt tot de eerste 1000 records. IncludeSearchResults: true wordt toegevoegd in een aangepaste JSON-webhookdefinitie als eigenschap op het hoogste niveau.
Dimensions "IncludeDimensions": true Dimensiewaardecombinaties die deze waarschuwing hebben geactiveerd als een JSON-sectie. 'IncludeDimensions': true wordt toegevoegd in een aangepaste JSON-webhookdefinitie als een eigenschap op het hoogste niveau.
Alert Type #alerttype Het type waarschuwingsregel voor zoeken in logboeken dat is geconfigureerd als metrische meting of het aantal resultaten.
WorkspaceID #workspaceid Id van uw Log Analytics-werkruimte.
Application ID #applicationid Id van uw Application Insights-app.
Subscription ID #subscriptionid Id van uw Gebruikte Azure-abonnement.

U kunt aangepaste JSON-nettolading opnemen voor webhook gebruiken om een aangepaste JSON-nettolading op te halen met behulp van de parameters. U kunt ook meer eigenschappen genereren.

U kunt bijvoorbeeld de volgende aangepaste nettolading opgeven die één parameter bevat met de naam text. De service die door deze webhook wordt aanroepen, verwacht deze parameter:


    {
        "text":"#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
    }

Deze voorbeeldpayload wordt omgezet in iets zoals in het volgende voorbeeld wanneer deze naar de webhook wordt verzonden:

    {
        "text":"My Alert Rule fired with 18 records over threshold of 10 ."
    }

Variabelen in een aangepaste webhook moeten worden opgegeven in een JSON-behuizing. Als u bijvoorbeeld in het voorbeeld van de webhook verwijst #searchresultcount , wordt uitvoer gegenereerd op basis van de waarschuwingsresultaten.

Als u zoekresultaten wilt opnemen, voegt u IncludeSearchResults toe als een eigenschap op het hoogste niveau in de aangepaste JSON. Zoekresultaten worden opgenomen als een JSON-structuur, zodat er niet naar resultaten kan worden verwezen in aangepaste velden.

Notitie

De knop Webhook weergeven naast de aangepaste JSON-nettolading opnemen voor webhook geeft een voorbeeld weer van wat er is opgegeven. Het bevat geen werkelijke gegevens, maar is representatief voor het JSON-schema dat wordt gebruikt.

Als u bijvoorbeeld een aangepaste nettolading wilt maken die alleen de naam van de waarschuwing en de zoekresultaten bevat, gebruikt u deze configuratie:

    {
       "alertname":"#alertrulename",
       "IncludeSearchResults":true
    }

De volgende voorbeeldpayload is bedoeld voor een aangepaste webhookactie voor elke waarschuwing voor zoeken in logboeken:

    {
    "alertname":"AcmeRule","IncludeSearchResults":true,
    "SearchResults":
        {
        "tables":[
                    {"name":"PrimaryResult","columns":
                        [
                        {"name":"$table","type":"string"},
                        {"name":"Id","type":"string"},
                        {"name":"TimeGenerated","type":"datetime"}
                        ],
                    "rows":
                        [
                            ["Fabrikam","33446677a","2018-02-02T15:03:12.18Z"],
                            ["Contoso","33445566b","2018-02-02T15:16:53.932Z"]
                        ]
                    }
                ]
        }
    }

Volgende stappen