Ukázkové datové části pro upozornění prohledávání protokolů pomocí akcí webhooku

Akce webhooku v pravidle upozornění prohledávání protokolu můžete použít k vyvolání jednoho požadavku HTTP POST. V tomto článku popisujeme vlastnosti, které jsou k dispozici při konfiguraci skupin akcí pro použití webhooků. Volaná služba musí podporovat webhooky a vědět, jak používat datovou část, kterou přijímá.

Pro integrace webhooku doporučujeme použít běžné schéma upozornění. Schéma běžných upozornění poskytuje výhodu, že má jednu rozšiřitelnou a jednotnou datovou část upozornění ve všech službách upozornění ve službě Azure Monitor.

Pro pravidla upozornění prohledávání protokolu, která mají definovanou vlastní datovou část JSON, povolením běžného schématu upozornění se schéma datové části vrátí na schéma popsané ve schématu běžných upozornění. Pokud chcete mít definovanou vlastní datovou část JSON, webhook nemůže použít společné schéma upozornění.

Upozornění s povoleným běžným schématem mají horní limit velikosti 256 kB na výstrahu. Větší upozornění neobsahuje výsledky hledání. Pokud se výsledky hledání nezahrnou, použijte LinkToFilteredSearchResultsAPI nebo LinkToSearchResultsAPI k přístupu k výsledkům dotazů prostřednictvím rozhraní LOG Analytics API.

Ukázkové datové části obsahují příklady, kdy je datová část standardní a kdy je vlastní.

Upozornění prohledávání protokolu pro všechny protokoly prostředků (z verze 2021-08-01rozhraní API)

Následující ukázková datová část je určená pro standardní webhook, když se používá pro upozornění prohledávání protokolů na základě protokolů prostředků:

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

Upozornění prohledávání protokolu pro Log Analytics (až verze 2018-04-16rozhraní API)

Následující ukázková datová část je určená pro standardní akci webhooku, která se používá pro výstrahy založené na Log Analytics:

Poznámka:

Hodnota "Severity" pole se změní, pokud jste přešli na aktuální naplánované rozhraní APIQueryRules z zastaralého rozhraní API upozornění 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"
}

Upozornění prohledávání protokolu pro Application Insights (až verze 2018-04-16rozhraní API)

Následující ukázková datová část je určená pro standardní webhook, když se používá pro upozornění prohledávání protokolů na základě prostředků Application Insights:

{
    "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": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "AlertType": "Metric measurement"
    }
}

Upozornění prohledávání protokolu s vlastní datovou částí JSON (až do verze 2018-04-16rozhraní API)

Poznámka:

Vlastní webhook založený na FORMÁTU JSON není ve verzi 2021-08-01rozhraní API podporovaný.

Následující tabulka uvádí výchozí vlastnosti akce webhooku a jejich vlastní názvy parametrů JSON.

Parametr Proměnná Popis
AlertRuleName #alertrulename Název pravidla upozornění
Severity #severity Závažnost nastavená pro aktivované upozornění prohledávání protokolu
AlertThresholdOperator #thresholdoperator Operátor prahové hodnoty pravidla upozornění
AlertThresholdValue #thresholdvalue Prahová hodnota pravidla upozornění
LinkToSearchResults #linktosearchresults Odkaz na portál Analytics, který vrací záznamy z dotazu, který výstrahu vytvořil.
LinkToSearchResultsAPI #linktosearchresultsapi Propojení s rozhraním API pro analýzu, které vrací záznamy z dotazu, který výstrahu vytvořil.
LinkToFilteredSearchResultsUI #linktofilteredsearchresultsui Odkaz na portál Analytics, který vrací záznamy z dotazu filtrovaného kombinací hodnot dimenzí, které výstrahu vytvořily.
LinkToFilteredSearchResultsAPI #linktofilteredsearchresultsapi Propojení s rozhraním API pro analýzu, které vrací záznamy z dotazu filtrovaného kombinací hodnot dimenzí, které výstrahu vytvořily.
ResultCount #searchresultcount Počet záznamů ve výsledcích hledání
Search Interval End time #searchintervalendtimeutc Koncový čas dotazu v UTC s formátem mm/dd/rrrr HH:mm:ss AM/PM.
Search Interval #searchinterval Časové okno pravidla upozornění s formátem HH:mm:ss.
Search Interval StartTime #searchintervalstarttimeutc Počáteční čas dotazu ve standardu UTC s formátem mm/dd/rrrr HH:mm:ss AM/PM.
SearchQuery #searchquery Dotaz prohledávání protokolu používaný pravidlem upozornění
SearchResults "IncludeSearchResults": true Záznamy vrácené dotazem jako tabulka JSON, omezené na prvních 1 000 záznamů. IncludeSearchResults: true se přidá do vlastní definice webhooku JSON jako vlastnost nejvyšší úrovně.
Dimensions "IncludeDimensions": true Kombinace hodnot dimenzí, které aktivovaly toto upozornění jako oddíl JSON. IncludeDimensions: true se přidá do vlastní definice webhooku JSON jako vlastnost nejvyšší úrovně.
Alert Type #alerttype Typ pravidla upozornění prohledávání protokolu nakonfigurovaného jako měření metriky nebo počet výsledků.
WorkspaceID #workspaceid ID pracovního prostoru služby Log Analytics.
Application ID #applicationid ID aplikace Application Insights
Subscription ID #subscriptionid ID použitého předplatného Azure.

Vlastní datovou část JSON pro webhook můžete použít k získání vlastní datové části JSON pomocí parametrů. Můžete také vygenerovat další vlastnosti.

Můžete například zadat následující vlastní datovou část, která obsahuje jeden parametr s názvem text. Služba, kterou tento webhook volá, očekává tento parametr:


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

Tato ukázková datová část se při odeslání do webhooku přeloží na něco podobného jako v následujícím příkladu:

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

Proměnné ve vlastním webhooku musí být zadány v rámci skříní JSON. Například odkazování #searchresultcount v příkladu webhooku generuje výstup na základě výsledků výstrahy.

Pokud chcete zahrnout výsledky hledání, přidejte do vlastního kódu JSON vlastnost IncludeSearchResults jako vlastnost nejvyšší úrovně. Výsledky hledání jsou zahrnuty jako struktura JSON, takže na výsledky nelze odkazovat ve vlastních definovaných polích.

Poznámka:

Tlačítko Zobrazit webhook vedle možnosti Zahrnout vlastní datovou část JSON pro webhook zobrazí náhled toho, co bylo poskytnuto. Neobsahuje skutečná data, ale představuje schéma JSON, které se použije.

Pokud chcete například vytvořit vlastní datovou část, která obsahuje pouze název upozornění a výsledky hledání, použijte tuto konfiguraci:

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

Následující ukázková datová část je určená pro vlastní akci webhooku pro každou výstrahu prohledávání protokolu:

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

Další kroky