Web kancası eylemlerini kullanarak günlük araması uyarıları için örnek yükler
Tek bir HTTP POST isteği çağırmak için günlük araması uyarı kuralında web kancası eylemlerini kullanabilirsiniz. Bu makalede, eylem gruplarını web kancalarını kullanacak şekilde yapılandırdığınızda kullanılabilen özellikler açıklanmaktadır. Çağrılan hizmetin web kancalarını desteklemesi ve aldığı yükün nasıl kullanılacağını bilmesi gerekir.
Web kancası tümleştirmeleriniz için ortak uyarı şemasını kullanmanızı öneririz. Ortak uyarı şeması, Azure İzleyici'deki tüm uyarı hizmetlerinde tek bir genişletilebilir ve birleşik uyarı yüküne sahip olmanın avantajını sağlar.
Özel JSON yükü tanımlanmış günlük araması uyarı kuralları için, ortak uyarı şeması etkinleştirildiğinde yük şeması Ortak uyarı şemasında açıklanan şemaya geri döndürülür. Özel bir JSON yükünün tanımlanmasını istiyorsanız, web kancası ortak uyarı şemasını kullanamaz.
Ortak şemanın etkinleştirildiği uyarıların boyut üst sınırı uyarı başına 256 KB'tır. Daha büyük bir uyarı arama sonuçlarını içermez. Arama sonuçları dahil olmadığında, Log Analytics API'si aracılığıyla sorgu sonuçlarına erişmek için veya LinkToSearchResultsAPI
kullanınLinkToFilteredSearchResultsAPI
.
Örnek yükler, yük standart olduğunda ve özel olduğunda örnekler içerir.
Tüm kaynak günlükleri için günlük araması uyarısı (API sürümünden 2021-08-01
)
Aşağıdaki örnek yük, kaynak günlüklerine dayalı günlük araması uyarıları için kullanıldığında standart bir web kancası içindir:
{
"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 için günlük araması uyarısı (API sürümüne 2018-04-16
kadar )
Aşağıdaki örnek yük, Log Analytics tabanlı uyarılar için kullanılan standart bir web kancası eylemine yöneliktir:
Not
Eski "Severity"
Log Analytics Uyarı API'sinden geçerli scheduledQueryRules API'sine geçtiyseniz alan değeri değişir.
{
"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 için günlük araması uyarısı (API sürümüne 2018-04-16
kadar )
Aşağıdaki örnek yük, Application Insights kaynaklarına dayalı günlük araması uyarıları için kullanıldığında standart bir web kancası içindir:
{
"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"
}
}
Özel JSON yüküyle günlük araması uyarısı (API sürümüne 2018-04-16
kadar )
Not
Özel JSON tabanlı web kancası API sürümünde 2021-08-01
desteklenmez.
Aşağıdaki tabloda, varsayılan web kancası eylem özellikleri ve bunların özel JSON parametre adları listelenir.
Parametre | Değişken | Açıklama |
---|---|---|
AlertRuleName |
#alertrulename | Uyarı kuralının adı. |
Severity |
#severity | Tetiklenen günlük arama uyarısı için önem derecesi ayarlandı. |
AlertThresholdOperator |
#thresholdoperator | Uyarı kuralı için eşik işleci. |
AlertThresholdValue |
#thresholdvalue | Uyarı kuralı için eşik değeri. |
LinkToSearchResults |
#linktosearchresults | Uyarıyı oluşturan sorgudaki kayıtları döndüren Analiz portalı bağlantısı. |
LinkToSearchResultsAPI |
#linktosearchresultsapi | Uyarıyı oluşturan sorgudaki kayıtları döndüren Analiz API'sine bağlantı. |
LinkToFilteredSearchResultsUI |
#linktofilteredsearchresultsui | Uyarıyı oluşturan boyut değeri birleşimlerine göre filtrelenen sorgudaki kayıtları döndüren Analiz portalı bağlantısı. |
LinkToFilteredSearchResultsAPI |
#linktofilteredsearchresultsapi | Uyarıyı oluşturan boyut değeri birleşimlerine göre filtrelenen sorgudaki kayıtları döndüren Analiz API'sine bağlantı. |
ResultCount |
#searchresultcount | Arama sonuçlarındaki kayıt sayısı. |
Search Interval End time |
#searchintervalendtimeutc | Utc'de sorgunun bitiş saati, aa/gg/yyyy HH:mm:ss/PM biçimindedir. |
Search Interval |
#searchinterval | Uyarı kuralının HH:mm:ss biçimindeki zaman penceresi. |
Search Interval StartTime |
#searchintervalstarttimeutc | Utc'de sorgunun başlangıç saati, aa/gg/yyyy HH:mm:ss/PM biçimindedir. |
SearchQuery |
#searchquery | Uyarı kuralı tarafından kullanılan günlük arama sorgusu. |
SearchResults |
"IncludeSearchResults": true | Sorgu tarafından JSON tablosu olarak döndürülen kayıtlar, ilk 1.000 kayıtla sınırlıdır. "IncludeSearchResults": true, özel bir JSON web kancası tanımına üst düzey özellik olarak eklenir. |
Dimensions |
"IncludeDimensions": true | Bu uyarıyı JSON bölümü olarak tetikleyen boyut değeri birleşimleri. "IncludeDimensions": true, özel bir JSON web kancası tanımına üst düzey özellik olarak eklenir. |
Alert Type |
#alerttype | Ölçüm ölçümü veya Sonuç sayısı olarak yapılandırılan günlük araması uyarı kuralı türü. |
WorkspaceID |
#workspaceid | Log Analytics çalışma alanınızın kimliği. |
Application ID |
#applicationid | Application Insights uygulamanızın kimliği. |
Subscription ID |
#subscriptionid | Kullanılan Azure aboneliğinizin kimliği. |
Parametreleri kullanarak özel JSON yükü almak için Web kancası için özel JSON yükünü dahil et'i kullanabilirsiniz. Daha fazla özellik de oluşturabilirsiniz.
Örneğin, adlı text
tek bir parametre içeren aşağıdaki özel yükü belirtebilirsiniz. Bu web kancasının çağırdığını hizmet şu parametreyi bekler:
{
"text":"#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
}
Bu örnek yük, web kancasına gönderildiğinde aşağıdaki örneğe benzer bir şekilde çözülür:
{
"text":"My Alert Rule fired with 18 records over threshold of 10 ."
}
Özel bir web kancası içindeki değişkenler bir JSON kasası içinde belirtilmelidir. Örneğin, web kancası örneğinde başvuruda #searchresultcount
bulunmak uyarı sonuçlarına göre çıkış oluşturur.
Arama sonuçlarını eklemek için includeSearchResults öğesini özel JSON'a üst düzey özellik olarak ekleyin. Arama sonuçları bir JSON yapısı olarak dahil edilir, bu nedenle sonuçlara özel tanımlı alanlarda başvurulamazsınız.
Not
Web kancası için özel JSON yükü ekle seçeneğinin yanındaki Web Kancasını Görüntüle düğmesi, sağlananların önizlemesini görüntüler. Gerçek verileri içermez, ancak kullanılacak JSON şemasını temsil eder.
Örneğin, yalnızca uyarı adını ve arama sonuçlarını içeren özel bir yük oluşturmak için şu yapılandırmayı kullanın:
{
"alertname":"#alertrulename",
"IncludeSearchResults":true
}
Aşağıdaki örnek yük, herhangi bir günlük arama uyarısı için özel bir web kancası eylemine yöneliktir:
{
"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"]
]
}
]
}
}
Sonraki adımlar
- Azure İzleyici uyarıları hakkında bilgi edinin.
- Azure'da eylem grupları oluşturma ve yönetme.
- Günlük sorguları hakkında daha fazla bilgi edinin.