Przykładowe ładunki alertów przeszukiwania dzienników przy użyciu akcji elementu webhook

Możesz użyć akcji elementu webhook w regule alertu przeszukiwania dzienników, aby wywołać pojedyncze żądanie HTTP POST. W tym artykule opisano właściwości, które są dostępne podczas konfigurowania grup akcji do używania elementów webhook. Wywołana usługa musi obsługiwać elementy webhook i wiedzieć, jak używać odbieranych ładunków.

Zalecamy używanie wspólnego schematu alertów dla integracji elementu webhook. Wspólny schemat alertów zapewnia zaletę jednego rozszerzalnego i ujednoliconego ładunku alertów we wszystkich usługach alertów w usłudze Azure Monitor.

W przypadku reguł alertów przeszukiwania dzienników, które mają zdefiniowany niestandardowy ładunek JSON, włączenie wspólnego schematu alertu przywraca schemat ładunku do schematu opisanego w artykule Wspólny schemat alertów. Jeśli chcesz mieć zdefiniowany niestandardowy ładunek JSON, element webhook nie może użyć wspólnego schematu alertu.

Alerty z włączonym wspólnym schematem mają górny limit rozmiaru 256 KB na alert. Większy alert nie zawiera wyników wyszukiwania. Jeśli wyniki wyszukiwania nie są uwzględnione, użyj LinkToFilteredSearchResultsAPI polecenia lub LinkToSearchResultsAPI uzyskaj dostęp do wyników zapytań za pośrednictwem interfejsu API usługi Log Analytics.

Przykładowe ładunki zawierają przykłady, gdy ładunek jest standardowy i kiedy jest niestandardowy.

Alert wyszukiwania dzienników dla wszystkich dzienników zasobów (z wersji 2021-08-01interfejsu API )

Poniższy przykładowy ładunek jest przeznaczony dla standardowego elementu webhook, gdy jest używany do alertów przeszukiwania dzienników na podstawie dzienników zasobów:

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

Alert wyszukiwania dzienników dla usługi Log Analytics (do wersji 2018-04-16interfejsu API)

Poniższy przykładowy ładunek dotyczy standardowej akcji elementu webhook używanej dla alertów opartych na usłudze Log Analytics:

Uwaga

Wartość "Severity" pola zmienia się, jeśli przełączono się do bieżącego interfejsu API scheduledQueryRules ze starszego interfejsu API alertów usługi Log Analytics.

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

Alert wyszukiwania dzienników dla aplikacji Szczegółowe informacje (do wersji 2018-04-16interfejsu API)

Poniższy przykładowy ładunek dotyczy standardowego elementu webhook, gdy jest używany do alertów wyszukiwania dzienników na podstawie zasobów usługi Application Szczegółowe informacje:

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

Alert przeszukiwania dzienników z niestandardowym ładunkiem JSON (do wersji 2018-04-16interfejsu API)

Uwaga

Niestandardowy element webhook oparty na formacie JSON nie jest obsługiwany w wersji 2021-08-01interfejsu API .

W poniższej tabeli wymieniono domyślne właściwości akcji elementu webhook i ich niestandardowe nazwy parametrów JSON.

Parametr Zmienna opis
AlertRuleName #alertrulename Nazwa reguły alertu.
Severity #severity Ustawiono ważność dla wyzwoloowanego alertu przeszukiwania dzienników.
AlertThresholdOperator #thresholdoperator Operator progu dla reguły alertu.
AlertThresholdValue #thresholdvalue Wartość progowa reguły alertu.
LinkToSearchResults #linktosearchresults Połącz się z portalem analizy, który zwraca rekordy z zapytania, które utworzyło alert.
LinkToSearchResultsAPI #linktosearchresultsapi Połącz z interfejsem API analizy, który zwraca rekordy z zapytania, które utworzyło alert.
LinkToFilteredSearchResultsUI #linktofilteredsearchresultsui Połącz się z portalem analizy, który zwraca rekordy z zapytania filtrowanego według kombinacji wartości wymiarów, które utworzyły alert.
LinkToFilteredSearchResultsAPI #linktofilteredsearchresultsapi Połącz się z interfejsem API analizy, który zwraca rekordy z zapytania filtrowanego według kombinacji wartości wymiarów, które utworzyły alert.
ResultCount #searchresultcount Liczba rekordów w wynikach wyszukiwania.
Search Interval End time #searchintervalendtimeutc Godzina zakończenia zapytania w formacie UTC z formatem mm/dd/rrrr HH:mm:ss AM/PM.
Search Interval #searchinterval Przedział czasu reguły alertu z formatem HH:mm:ss.
Search Interval StartTime #searchintervalstarttimeutc Godzina rozpoczęcia zapytania w formacie UTC z formatem mm/dd/rrrr HH:mm:ss AM/PM.
SearchQuery #searchquery Zapytanie przeszukiwania dzienników używane przez regułę alertu.
SearchResults "IncludeSearchResults": true Rekordy zwracane przez zapytanie jako tabela JSON, ograniczone do pierwszych 1000 rekordów. "IncludeSearchResults": wartość true jest dodawana w niestandardowej definicji elementu webhook JSON jako właściwości najwyższego poziomu.
Dimensions "IncludeDimensions": true Kombinacje wartości wymiarów, które wyzwoliły ten alert jako sekcję JSON. "IncludeDimensions": wartość true jest dodawana w niestandardowej definicji elementu webhook JSON jako właściwości najwyższego poziomu.
Alert Type #alerttype Typ reguły alertu przeszukiwania dzienników skonfigurowany jako pomiar metryki lub Liczba wyników.
WorkspaceID #workspaceid Identyfikator obszaru roboczego usługi Log Analytics.
Application ID #applicationid Identyfikator aplikacji Szczegółowe informacje aplikacji.
Subscription ID #subscriptionid Identyfikator używanej subskrypcji platformy Azure.

Aby uzyskać niestandardowy ładunek JSON, możesz użyć polecenia Include custom JSON payload for webhook (Uwzględnij niestandardowy ładunek JSON przy użyciu parametrów). Można również wygenerować więcej właściwości.

Można na przykład określić następujący niestandardowy ładunek zawierający pojedynczy parametr o nazwie text. Usługa wywoływana przez ten element webhook oczekuje tego parametru:


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

Ten przykładowy ładunek jest rozpoznawany jako podobny do następującego przykładu, gdy jest wysyłany do elementu webhook:

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

Zmienne niestandardowego elementu webhook muszą być określone w obudowie JSON. Na przykład odwołanie #searchresultcount w przykładzie elementu webhook generuje dane wyjściowe na podstawie wyników alertu.

Aby uwzględnić wyniki wyszukiwania, dodaj właściwość IncludeSearchResults jako właściwość najwyższego poziomu w niestandardowym formacie JSON. Wyniki wyszukiwania są dołączane jako struktura JSON, więc wyniki nie mogą być przywołyne w polach zdefiniowanych niestandardowych.

Uwaga

Przycisk Wyświetl element webhook obok opcji Uwzględnij niestandardowy ładunek JSON dla elementu webhook wyświetla podgląd podanych elementów. Nie zawiera rzeczywistych danych, ale jest reprezentatywny dla schematu JSON, który będzie używany.

Aby na przykład utworzyć niestandardowy ładunek zawierający tylko nazwę alertu i wyniki wyszukiwania, użyj tej konfiguracji:

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

Poniższy przykładowy ładunek dotyczy niestandardowej akcji elementu webhook dla dowolnego alertu przeszukiwania dzienników:

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

Następne kroki