使用 Webhook 動作記錄搜尋警示的範例承載
您可以在記錄搜尋警示規則中使用 Webhook 動作來叫用單一 HTTP POST 要求。 在本文中,我們會說明當您 設定動作群組以使用 Webhook 時可用的屬性。 所呼叫的服務必須支援 Webhook,並知道如何使用所接收的承載。
建議您針對 Webhook 整合使用 一般警示架構 。 常見的警示架構提供在 Azure 監視器中所有警示服務上擁有單一可延伸且統一的警示承載的優點。
針對已定義自定義 JSON 承載的記錄搜尋警示規則,啟用一般警示架構會將承載架構還原為一般警示架構中所述 的警示架構。 如果您想要定義自定義 JSON 承載,Webhook 就無法使用一般警示架構。
已啟用通用結構描述的警示,其大小上限為每個警示 256 KB。 較大的警示不包含搜尋結果。 如果未包含搜尋結果,請使用 LinkToFilteredSearchResultsAPI
或 LinkToSearchResultsAPI
透過Log Analytics API 存取查詢結果。
範例承載包含當承載為標準時和自定義時的範例。
所有資源記錄的記錄搜尋警示(來自 API 版本 2021-08-01
)
下列範例承載適用於以資源記錄為基礎的標準 Webhook 記錄搜尋警示:
{
"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"
}
}
}
}
Log Analytics 的記錄搜尋警示 (最高 API 版本 2018-04-16
)
下列範例承載適用於以Log Analytics 為基礎的標準Webhook動作:
注意
"Severity"
如果您已從舊版Log Analytics警示 API 切換到目前的 scheduledQueryRules 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×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"
}
Application Insights 的記錄搜尋警示 (最高 API 版本 2018-04-16
)
下列範例承載適用於以ApplicationInsights資源為基礎的標準Webhook記錄搜尋警示:
{
"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"
}
}
具有自訂 JSON 承載的記錄搜尋警示 (最高 API 版本 2018-04-16
)
注意
API 版本 2021-08-01
不支援自定義 JSON 型 Webhook。
下表列出預設 Webhook 動作屬性及其自定義 JSON 參數名稱。
參數 | 變數 | 描述 |
---|---|---|
AlertRuleName |
#alertrulename | 警示規則的名稱。 |
Severity |
#severity | 針對引發的記錄搜尋警示設定嚴重性。 |
AlertThresholdOperator |
#thresholdoperator | 警示規則的臨界值運算符。 |
AlertThresholdValue |
#thresholdvalue | 警示規則的臨界值。 |
LinkToSearchResults |
#linktosearchresults | 連結到分析入口網站,從建立警示的查詢傳回記錄。 |
LinkToSearchResultsAPI |
#linktosearchresultsapi | 連結至分析 API,從建立警示的查詢傳回記錄。 |
LinkToFilteredSearchResultsUI |
#linktofilteredsearchresultsui | 連結到 Analytics 入口網站,從建立警示的維度值組合篩選的查詢傳回記錄。 |
LinkToFilteredSearchResultsAPI |
#linktofilteredsearchresultsapi | 連結至分析 API,從建立警示的維度值組合篩選的查詢傳回記錄。 |
ResultCount |
#searchresultcount | 搜尋結果中的記錄數目。 |
Search Interval End time |
#searchintervalendtimeutc | 以 UTC 格式查詢的結束時間,格式為 mm/dd/yyyy HH:mm:ss AM/PM。 |
Search Interval |
#searchinterval | 警示規則的時間範圍,格式為 HH:mm:ss。 |
Search Interval StartTime |
#searchintervalstarttimeutc | 以UTC格式查詢的開始時間,格式為mm/dd/yyyy HH:mm:ss AM/PM。 |
SearchQuery |
#searchquery | 警示規則所使用的記錄搜尋查詢。 |
SearchResults |
“IncludeSearchResults”: true | 查詢以 JSON 數據表傳回的記錄,限制為前 1,000 筆記錄。 “IncludeSearchResults”:true 會在自定義 JSON Webhook 定義中新增為最上層屬性。 |
Dimensions |
“IncludeDimensions”: true | 觸發該警示作為 JSON 區段的維度值組合。 “IncludeDimensions”:true 會在自定義 JSON Webhook 定義中新增為最上層屬性。 |
Alert Type |
#alerttype | 設定為 計量度量或結果數目的記錄搜尋警示規則類型。 |
WorkspaceID |
#workspaceid | Log Analytics 工作區的標識碼。 |
Application ID |
#applicationid | Application Insights 應用程式的標識碼。 |
Subscription ID |
#subscriptionid | 您所使用的 Azure 訂用帳戶標識碼。 |
您可以使用 包含 Webhook 的自定義 JSON 承載,透過參數取得自定義 JSON 承載。 您也可以產生更多屬性。
例如,您可以指定下列自定義承載,其中包含稱為 text
的單一參數。 此 Webhook 所呼叫的服務需要此參數:
{
"text":"#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
}
這個範例承載會在傳送至 Webhook 時解析為類似下列範例的內容:
{
"text":"My Alert Rule fired with 18 records over threshold of 10 ."
}
自訂 Webhook 中的變數必須在 JSON 機箱內指定。 例如,Webhook 範例中的參考 #searchresultcount
會根據警示結果產生輸出。
若要包含搜尋結果,請在自定義 JSON 中將 IncludeSearchResults 新增為最上層屬性。 搜尋結果會包含為 JSON 結構,因此無法在自定義定義的欄位中參考結果。
注意
[包含 Webhook 的自定義 JSON 承載] 選項旁的 [檢視 Webhook] 按鈕會顯示提供的預覽。 它不包含實際數據,但代表將使用的 JSON 架構。
例如,若要建立只包含警示名稱和搜尋結果的自定義承載,請使用下列設定:
{
"alertname":"#alertrulename",
"IncludeSearchResults":true
}
下列範例承載適用於任何記錄搜尋警示的自訂 Webhook 動作:
{
"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"]
]
}
]
}
}
下一步
- 瞭解 Azure 監視器警示。
- 在 Azure 中建立和管理動作群組。
- 深入了解記錄查詢。