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-01
rozhraní 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×pan=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×pan=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-16
rozhraní 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×pan=2020-05-07T18%3a11%3a51.0000000Z%2f2020-05-07T18%3a16%3a51.0000000Z",
"LinkToFilteredSearchResultsAPI": "https://api.loganalytics.io/v1/workspaces/workspaceID/query?query=Heartbeat×pan=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-16
rozhraní 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-16
rozhraní API)
Poznámka:
Vlastní webhook založený na FORMÁTU JSON není ve verzi 2021-08-01
rozhraní 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
- Seznamte se s upozorněními služby Azure Monitor.
- Vytváření a správa skupin akcí v Azure
- Přečtěte si další informace o dotazech protokolu.