عينات حمولات لتنبيهات بحث السجل باستخدام إجراءات الإخطار على الويب
يمكنك استخدام إجراءات الإخطار على الويب في قاعدة تنبيه بحث السجل لاستدعاء طلب HTTP POST واحد. في هذه المقالة، نصف الخصائص المتوفرة عند تكوين مجموعات الإجراءات لاستخدام خطافات الويب. يجب أن تدعم الخدمة التي يتم استدعاؤها خطافات الويب وتعرف كيفية استخدام الحمولة التي تتلقاها.
نوصي باستخدام مخطط التنبيه الشائع لتكامل خطاف الويب الخاص بك. ويوفر مخطط التنبيه المشترك ميزة وجود حمولة تنبيه واحدة، وقابلة للتوسيع، وموحدة عبر جميع خدمات التنبيه في Azure Monitor.
بالنسبة لقواعد تنبيه البحث في السجل التي تحتوي على حمولة JSON مخصصة معرفة، يؤدي تمكين مخطط التنبيه الشائع إلى إعادة مخطط الحمولة إلى المخطط الموضح في مخطط التنبيه الشائع. إذا كنت تريد تعريف حمولة JSON مخصصة، فلا يمكن لخطاف الويب استخدام مخطط التنبيه الشائع.
يبلغ حد الحجم الأعلى للتنبيهات ذات المخطط الشائع المُمكّن 256 كيلو بايت لكل تنبيه. لا يتضمن التنبيه الأكبر نتائج البحث. عندما لا يتم تضمين نتائج البحث، استخدم LinkToFilteredSearchResultsAPI
أو LinkToSearchResultsAPI
للوصول إلى نتائج الاستعلام عبر واجهة برمجة تطبيقات Log Analytics.
وتتضمن حمولات العينة أمثلة عندما تكون الحمولة قياسية، وعندما تكون مخصصة.
سجل تنبيه البحث لجميع سجلات الموارد (من إصدار 2021-08-01
واجهة برمجة التطبيقات )
حمولة العينة التالية هي لخطاف ويب قياسي عند استخدامه لتنبيهات بحث السجل استنادا إلى سجلات الموارد:
{
"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 (حتى إصدار 2018-04-16
واجهة برمجة التطبيقات )
يتم استخدام حمولة العينة التالية لإجراء إخطار قياسي على الويب يستخدم للتنبيهات استنادًا إلى سجلات التحليلات:
إشعار
"Severity"
تتغير قيمة الحقل إذا قمت بالتبديل إلى واجهة برمجة تطبيقات scheduledQueryRules الحالية من واجهة برمجة تطبيقات تنبيه 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"
}
سجل تنبيه البحث عن Application Insights (حتى إصدار 2018-04-16
واجهة برمجة التطبيقات )
حمولة العينة التالية هي لخطاف ويب قياسي عند استخدامه لتنبيهات البحث في السجل استنادا إلى موارد 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"
}
}
تسجيل تنبيه البحث باستخدام حمولة JSON مخصصة (حتى إصدار 2018-04-16
واجهة برمجة التطبيقات )
إشعار
خطاف ويب مخصص يستند إلى JSON غير مدعوم من إصدار 2021-08-01
واجهة برمجة التطبيقات .
يسرد الجدول التالي خصائص إجراء webhook الافتراضية وأسماء معلمات JSON المخصصة الخاصة بها.
المعلمة | المتغير | الوصف |
---|---|---|
AlertRuleName |
اسم قاعدة التنبيه | اسم قاعدة التنبيه. |
Severity |
#الخطورة | مجموعة الخطورة لتنبيه بحث السجل الذي تم إطلاقه. |
AlertThresholdOperator |
#عامل تشغيل حد التنبيه | عامل تشغيل حد قاعدة التنبيه. |
AlertThresholdValue |
#قيمة حد قاعدة التنبيه | قيمة حد قاعدة التنبيه. |
LinkToSearchResults |
#نتائج الارتباط للبحث | الارتباط بمدخل التحليلات الذي يعيد السجلات من الاستعلام الذي أنشأ التنبيه. |
LinkToSearchResultsAPI |
#نتائج الارتباط للبحث في واجهة برمجة التطبيقات | الارتباط بواجهة برمجة تحليلات التطبيقات التي تعيد السجلات من الاستعلام الذي أنشأ التنبيه. |
LinkToFilteredSearchResultsUI |
#نتائج الارتباط التي تم تصفيتها للبحث في واجهة المستخدم | الارتباط بمدخل التحليلات الذي يعيد السجلات من الاستعلام الذي تم تصفيته بواسطة تراكيب قيم الأبعاد التي أنشأت التنبيه. |
LinkToFilteredSearchResultsAPI |
#نتائج الارتباط التي تم تصفيتها للبحث في واجهة برمجة التطبيقات | الارتباط بواجهة برمجة تطبيقات التحليلات الذي يعيد السجلات من الاستعلام الذي تم تصفيته بواسطة تراكيب قيم الأبعاد التي أنشأت التنبيه. |
ResultCount |
#عدد النتائج | عدد السجلات في نتائج البحث. |
Search Interval End time |
#وقت الانتهاء الفاصل للبحث | وقت انتهاء الاستعلام في توقيت عالمي متفق عليه مع تنسيق الشهر واليوم والسنة، والساعة والدقائق والثواني، صباحًا ومساءً. |
Search Interval |
#فاصل البحث | إطار زمني لقاعدة التنبيه مع تنسيق الساعة والدقائق والثواني. |
Search Interval StartTime |
#وقت البدء الفاصل للبحث | وقت بدء الاستعلام في توقيت عالمي متفق عليه مع تنسيق الشهر واليوم والسنة، والساعة والدقائق والثواني، صباحًا ومساءً. |
SearchQuery |
#استعلام البحث | سجل استعلام البحث الذي تستخدمه قاعدة التنبيه. |
SearchResults |
IncludeSearchResults": true" | وتقتصر السجلات التي تم إرجاعها بواسطة الاستعلام على شكل جدول JSON على السجلات الـ1000 الأولى. تُضاف عبارة "IncludeSearchResults":true إلى تعريف الإخطار على الويب JSON المخصص بمثابة خاصية ذات مستوى عالٍ. |
Dimensions |
"IncludeDimensions": true | مجموعات قيم الأبعاد التي أدت إلى تشغيل هذا التنبيه كقسم JSON. تُضاف عبارة "IncludeDimensions": true إلى تعريف الإخطار على الويب JSON المخصص بمثابة خاصية ذات مستوى عالٍ. |
Alert Type |
#نوع التنبيه | نوع قاعدة تنبيه بحث السجل التي تم تكوينها كمقياس متري أو عدد النتائج. |
WorkspaceID |
#معرّف مساحة العمل | معرّف مساحة عمل "تحليلات السجل". |
Application ID |
#معرّف التطبيق | معرّف تطبيق Application Insights الخاص بك. |
Subscription ID |
#اشتراك المعرّف | معرّف اشتراك Azure المستخدم. |
يمكنك استخدام تضمين حمولة JSON المخصصة لخطاف الويب للحصول على حمولة JSON مخصصة باستخدام المعلمات. يمكنك أيضا إنشاء المزيد من الخصائص.
على سبيل المثال، يمكنك تحديد الحمولة المخصصة التالية التي تتضمن معلمة واحدة تسمى text
. وتتوقع الخدمة التي يستدعيها هذا الإخطار على الويب هذه المعلمة:
{
"text":"#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
}
تحل حمولة المثال هذه إلى شيء مثل المثال التالي عند إرسالها إلى خطاف الويب:
{
"text":"My Alert Rule fired with 18 records over threshold of 10 ."
}
وينبغي تحديد المتغيرات في إخطار مخصص على الويب ضمن إحاطة JSON. على سبيل المثال، يؤدي الرجوع #searchresultcount
في مثال خطاف الويب إلى إنشاء إخراج استنادا إلى نتائج التنبيه.
لتضمين نتائج البحث، أضف IncludeSearchResults كخاصية ذات مستوى أعلى في JSON المخصص. يتم تضمين نتائج البحث كبنية JSON، لذلك لا يمكن الرجوع إلى النتائج في الحقول المعرفة خصيصا.
إشعار
يعرض الزر View Webhook بجوار الخيار Include custom JSON payload for webhook معاينة لما تم توفيره. لا يحتوي على بيانات فعلية ولكنه يمثل مخطط JSON الذي سيتم استخدامه.
على سبيل المثال، لإنشاء حمولة مخصصة تتضمن اسم التنبيه ونتائج البحث فقط، استخدم هذا التكوين:
{
"alertname":"#alertrulename",
"IncludeSearchResults":true
}
عينة الحمولة التالية هي لإجراء إخطار على الويب مخصص لأي تنبيه بحث في السجل:
{
"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 Monitor.
- إنشاء مجموعات الإجراءات وإدارتها في Azure.
- تعرف على المزيد حول استعلامات السجل.