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-01
interfejsu 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×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"
}
}
}
}
Alert wyszukiwania dzienników dla usługi Log Analytics (do wersji 2018-04-16
interfejsu 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×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"
}
Alert wyszukiwania dzienników dla usługi Application Insights (do wersji 2018-04-16
interfejsu API)
Poniższy przykładowy ładunek jest przeznaczony dla standardowego elementu webhook, gdy jest używany do alertów wyszukiwania dzienników na podstawie zasobów usługi 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"
}
}
Alert przeszukiwania dzienników z niestandardowym ładunkiem JSON (do wersji 2018-04-16
interfejsu API)
Uwaga
Niestandardowy element webhook oparty na formacie JSON nie jest obsługiwany w wersji 2021-08-01
interfejsu 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 usługi Application Insights. |
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
- Dowiedz się więcej o alertach usługi Azure Monitor.
- Tworzenie grup akcji i zarządzanie nimi na platformie Azure.
- Dowiedz się więcej o zapytaniach dzienników.