Minta hasznos adatok naplókeresési riasztásokhoz webhookműveletekkel
A naplókeresési riasztási szabály webhookműveleteivel egyetlen HTTP POST-kérést hívhat meg. Ebben a cikkben ismertetjük azokat a tulajdonságokat, amelyek akkor érhetők el, amikor a műveletcsoportokat webhookok használatára konfigurálja. A hívott szolgáltatásnak támogatnia kell a webhookokat, és ismernie kell a kapott hasznos adatok használatát.
Javasoljuk, hogy a webhook-integrációkhoz használjon gyakori riasztási sémát . A gyakori riasztási séma előnye, hogy egyetlen bővíthető és egységes riasztási hasznos adat áll rendelkezésre az Azure Monitor összes riasztási szolgáltatásában.
Az egyéni JSON-hasznos adatokkal rendelkező naplókeresési riasztási szabályok esetében a közös riasztási séma engedélyezése visszaállítja a hasznos adat sémáját a Közös riasztási sémában leírtra. Ha egyéni JSON-hasznos adatokat szeretne definiálni, a webhook nem használhatja a gyakori riasztási sémát.
A közös sémával rendelkező riasztások felső méretkorlátja riasztásonként 256 KB. A nagyobb riasztások nem tartalmazzák a keresési eredményeket. Ha a keresési eredmények nem jelennek meg, használja LinkToFilteredSearchResultsAPI
vagy LinkToSearchResultsAPI
érje el a lekérdezési eredményeket a Log Analytics API-val.
A minta hasznos adatok példákat tartalmaznak, amikor a hasznos adatok standardak, és ha egyéniek.
Naplókeresési riasztás az összes erőforrásnaplóhoz (AZ API-verzióból 2021-08-01
)
A következő hasznos adatminta egy standard webhookhoz készült, amikor az erőforrásnaplókon alapuló naplókeresési riasztásokhoz használatos:
{
"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"
}
}
}
}
Naplókeresési riasztás a Log Analyticshez (API-verzióig 2018-04-16
)
A következő hasznos adatminta egy standard webhook-művelethez készült, amelyet a Log Analyticsen alapuló riasztásokhoz használnak:
Feljegyzés
A "Severity"
mező értéke megváltozik, ha az örökölt Log Analytics Alert API-ból az aktuális ütemezettQueryRules API-ra váltott.
{
"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"
}
Az Application Insights naplókeresési riasztása (az API-verzióig 2018-04-16
)
A következő hasznos adatminta egy standard webhookhoz készült, ha az Application Insights-erőforrásokon alapuló naplókeresési riasztásokhoz használatos:
{
"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"
}
}
Naplókeresési riasztás egyéni JSON-hasznos adatokkal (az API-verzióig 2018-04-16
)
Feljegyzés
Az egyéni JSON-alapú webhookok nem támogatottak az API-verzióból 2021-08-01
.
Az alábbi táblázat az alapértelmezett webhook-művelettulajdonságokat és azok egyéni JSON-paraméterneveit sorolja fel.
Paraméter | Változó | Leírás |
---|---|---|
AlertRuleName |
#alertrulename | A riasztási szabály neve. |
Severity |
#severity | Az aktivált naplókeresési riasztás súlyossága. |
AlertThresholdOperator |
#thresholdoperator | A riasztási szabály küszöbérték-operátora. |
AlertThresholdValue |
#thresholdvalue | A riasztási szabály küszöbértéke. |
LinkToSearchResults |
#linktosearchresults | Hivatkozás az Analytics portálra, amely a riasztást létrehozó lekérdezés rekordjait adja vissza. |
LinkToSearchResultsAPI |
#linktosearchresultsapi | Hivatkozás a riasztást létrehozó lekérdezés rekordjait visszaadó Analytics API-ra. |
LinkToFilteredSearchResultsUI |
#linktofilteredsearchresultsui | Hivatkozás az Analytics-portálra, amely a riasztást létrehozó dimenziók értékkombinációi alapján szűrt lekérdezés rekordjait adja vissza. |
LinkToFilteredSearchResultsAPI |
#linktofilteredsearchresultsapi | Hivatkozás az Analytics API-ra, amely a riasztást létrehozó dimenzióérték-kombinációk alapján szűrt lekérdezés rekordjait adja vissza. |
ResultCount |
#searchresultcount | A keresési eredmények rekordjainak száma. |
Search Interval End time |
#searchintervalendtimeutc | A lekérdezés befejezési ideje UTC-ben, mm/dd/ééééhh:mm:ss AM/PM formátumban. |
Search Interval |
#searchinterval | A riasztási szabály időablaka HH:mm:ss formátumban. |
Search Interval StartTime |
#searchintervalstarttimeutc | A lekérdezés kezdési ideje UTC-ben, mm/dd/ééééhh:mm:ss AM/PM formátumban. |
SearchQuery |
#searchquery | A riasztási szabály által használt naplókeresési lekérdezés. |
SearchResults |
"IncludeSearchResults": true | A lekérdezés által JSON-táblaként visszaadott rekordok, az első 1000 rekordra korlátozva. "IncludeSearchResults": az igaz értéket egy egyéni JSON-webhook-definíció adja hozzá legfelső szintű tulajdonságként. |
Dimensions |
"IncludeDimensions": true | Dimenziók értékkombinációi, amelyek JSON-szakaszként aktiválták a riasztást. "IncludeDimensions": az igaz értéket egy egyéni JSON-webhook-definíció adja hozzá legfelső szintű tulajdonságként. |
Alert Type |
#alerttype | A naplókeresési riasztási szabály típusa metrikamérésként vagy találatok számaként konfigurálva. |
WorkspaceID |
#workspaceid | A Log Analytics-munkaterület azonosítója. |
Application ID |
#applicationid | Az Application Insights-alkalmazás azonosítója. |
Subscription ID |
#subscriptionid | A használt Azure-előfizetés azonosítója. |
A webhook egyéni JSON-hasznos adatainak belefoglalásával egyéni JSON-hasznos adatokat szerezhet be a paraméterek használatával. További tulajdonságokat is létrehozhat.
Megadhat például a következő egyéni hasznos adatokat, amelyek egyetlen, úgynevezett text
paramétert tartalmaznak. A webhook által hívott szolgáltatás a következő paramétert várja:
{
"text":"#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
}
A példában szereplő hasznos adatok a következő példához hasonló módon oldódnak fel, amikor a rendszer elküldi a webhooknak:
{
"text":"My Alert Rule fired with 18 records over threshold of 10 ."
}
Az egyéni webhook változóit egy JSON-házon belül kell megadni. A webhook-példában való hivatkozás #searchresultcount
például a riasztási eredmények alapján hoz létre kimenetet.
A keresési eredmények hozzáadásához adja hozzá az IncludeSearchResults elemet az egyéni JSON legfelső szintű tulajdonságaként. A keresési eredmények JSON-struktúraként vannak feltüntetve, így az eredmények nem hivatkozhatók egyénileg definiált mezőkben.
Feljegyzés
A Webhook megtekintése gomb a Webhook egyéni JSON-hasznos adatainak belefoglalása lehetőség mellett megjeleníti a megadott adatok előnézetét. Nem tartalmaz tényleges adatokat, de a használni kívánt JSON-sémára jellemző.
Ha például olyan egyéni hasznos adatokat szeretne létrehozni, amelyek csak a riasztás nevét és a keresési eredményeket tartalmazzák, használja ezt a konfigurációt:
{
"alertname":"#alertrulename",
"IncludeSearchResults":true
}
A következő hasznos adatminta egy egyéni webhook-művelethez készült minden naplókeresési riasztáshoz:
{
"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"]
]
}
]
}
}
Következő lépések
- További információ az Azure Monitor-riasztásokról.
- Műveletcsoportok létrehozása és kezelése az Azure-ban.
- További információ a napló lekérdezéseiről.