ترحيل الكشف الذكي ل Azure Monitor Application Insights إلى التنبيهات (معاينة)

توضح هذه المقالة عملية ترحيل الكشف الذكي عن Application Insights إلى التنبيهات. ينشئ الترحيل قواعد تنبيه لوحدات الكشف الذكية المختلفة. يمكنك إدارة هذه القواعد وتكوينها مثل أي قواعد تنبيه Azure Monitor أخرى. يمكنك أيضا تكوين مجموعات الإجراءات لهذه القواعد للحصول على أساليب متعددة للإجراءات أو الإعلامات على عمليات الكشف الجديدة.

فوائد الترحيل إلى التنبيهات

مع الترحيل، يتيح لك الكشف الذكي الآن الاستفادة من الإمكانات الكاملة لتنبيهات Azure Monitor، بما في ذلك:

  • خيارات الإعلام الغنية لجميع أجهزة الكشف: استخدم مجموعات الإجراءات لتكوين أنواع متعددة من الإعلامات والإجراءات التي يتم تشغيلها عند تشغيل تنبيه. يمكنك تكوين الإعلام عن طريق البريد الإلكتروني أو الرسائل القصيرة أو المكالمات الصوتية أو الإعلامات المنبثقة. يمكنك تكوين إجراءات مثل استدعاء خطاف ويب آمن وتطبيق منطقي ودفتر تشغيل التشغيل التلقائي. الإدارة الإضافية لمجموعات الإجراءات على نطاق واسع عن طريق السماح لك بتكوين الإجراءات مرة واحدة واستخدامها عبر قواعد التنبيه متعددة.
  • الإدارة على نطاق واسع: تستخدم تنبيهات الكشف الذكي تجربة تنبيهات Azure Monitor وواجهة برمجة التطبيقات.
  • منع الإعلامات المستندة إلى القواعد: استخدم قواعد الإجراء لتعريف الإجراءات أو منعها في أي نطاق Azure Resource Manager مثل اشتراك Azure أو مجموعة الموارد أو المورد الهدف. تساعدك عوامل التصفية على تضييق نطاق المجموعة الفرعية المحددة من مثيلات التنبيه التي تريد العمل عليها.

قدرات الكشف الذكي التي تم ترحيلها

يتم إنشاء مجموعة جديدة من قواعد التنبيه عند ترحيل مورد Application Insights. يتم إنشاء قاعدة واحدة لكل من قدرات الكشف الذكي التي تم ترحيلها. يعين الجدول التالي قدرات الكشف الذكية قبل الترحيل لقواعد تنبيه ما بعد الترحيل.

اسم قاعدة الكشف الذكي (1) اسم قاعدة التنبيه (2)
تدهور في وقت استجابة الخادم تدهور زمن انتقال الاستجابة - <اسم مورد Application Insights>
تدهور مدة التبعية تدهور زمن انتقال التبعية - <اسم مورد Application Insights>
تدهور في نسبة شدة التتبع (معاينة) تدهور خطورة التتبع - <اسم مورد Application Insights>
ارتفاع غير طبيعي في حجم الاستثناء (معاينة) الحالات الشاذة للاستثناء - <اسم مورد Application Insights>
تم الكشف عن تسرب محتمل للذاكرة (معاينة) التسرب المُحتمل للذاكرة - <اسم مورد Application Insights>
وقت تحميل الصفحة بطيء لم يعد مدعوما (3)
وقت استجابة الخادم البطيء لم يعد مدعوما (3)
مدة التبعية طويلة لم يعد مدعوما (3)
تم كشف مشكلة أمنية محتملة (معاينة) لم يعد مدعوما (3)
ارتفاع غير طبيعي في حجم البيانات اليومي (معاينة) لم يعد مدعوما (3)

(1) اسم القاعدة كما تظهر في جزء الإعدادات الكشف الذكي.
(2) اسم قاعدة التنبيه الجديدة بعد الترحيل.
(3) لا يتم تحويل قدرات الكشف الذكية هذه إلى تنبيهات بسبب الاستخدام المنخفض وإعادة تقييم فعالية الكشف. لن يتم دعم أجهزة الكشف هذه لهذا المورد بعد الانتهاء من ترحيله.

إشعار

تم بالفعل إنشاء الكاشف الذكي للشذوذ الفشل كقاعدة تنبيه ولا يتطلب الترحيل. لم تتم مناقشته في هذه المقالة.

لا يغير الترحيل التصميم الخوارزمي وسلوك الكشف الذكي. ومن المتوقع أن يتشابه أداء الكشف قبل التغيير وبعده.

تحتاج إلى تطبيق الترحيل على كل مورد من موارد Application Insights بشكل منفصل. بالنسبة للموارد التي لم يتم ترحيلها بشكل صريح، سيستمر الكشف الذكي في العمل كما كان من قبل.

تكوين مجموعة الإجراءات لقواعد تنبيه الكشف الذكي الجديدة

كجزء من الترحيل، يتم تكوين كل قاعدة تنبيه جديدة تلقائيًّا مع مجموعة إجراءات. يمكن أن يعين الترحيل مجموعة إجراءات افتراضية لكل قاعدة. يتم تكوين مجموعة الإجراءات الافتراضية وفقًا لإعلام القاعدة قبل الترحيل:

  • إذا كانت قاعدة الكشف الذكية تتضمن البريد الإلكتروني الافتراضي أو لم يتم تكوين أي إعلامات، يتم تكوين قاعدة التنبيه الجديدة مع مجموعة إجراءات تسمى Application Insights Smart Detection.

    • إذا وجدت أداة الترحيل مجموعة إجراءات موجودة بهذا الاسم، فإنها تربط قاعدة التنبيه الجديدة بمجموعة الإجراءات هذه.
    • وإلا، فإنها تقوم بإنشاء مجموعة إجراءات جديدة بهذا الاسم. تم تكوين المجموعة الجديدة ل Email Azure Resource Manager Role actions وترسل إشعارا إلى مستخدمي مساهم مراقبة Azure Resource Manager وقارئ المراقبة.
  • إذا تم تغيير إعلام البريد الإلكتروني الافتراضي قبل الترحيل، يتم إنشاء مجموعة إجراءات تسمى Application Insights Smart Detection <n> ، مع إجراء بريد إلكتروني يرسل إشعارات إلى عناوين البريد الإلكتروني التي تم تكوينها مسبقا.

بدلاً من استخدام مجموعة الإجراءات الافتراضية، يمكنك تحديد مجموعة إجراءات موجودة سيتم تكوينها لكافة قواعد التنبيه الجديدة.

تنفيذ عملية ترحيل الكشف الذكي

استخدم مدخل Azure أو قوالب Azure CLI أو Azure Resource Manager (قوالب ARM) لتنفيذ الترحيل.

ترحيل الكشف الذكي باستخدام مدخل Microsoft Azure

لترحيل الكشف الذكي في المورد الخاص بك:

  1. حدد Smart detection ضمن العنوان Investigate في مورد Application Insights.

  2. حدد الشعار الذي يقرأ ترحيل الكشف الذكي إلى التنبيهات (معاينة). يظهر مربع حوار الترحيل.

    Screenshot that shows the Smart Detection feed banner.

  3. حدد الخيار ترحيل كافة موارد Application Insights في هذا الاشتراك. أو يمكنك ترك الخيار مسحا إذا كنت تريد ترحيل المورد الحالي الذي أنت فيه فقط.

    إشعار

    يؤثر تحديد هذا الخيار على جميع موارد Application Insights الموجودة التي لم يتم ترحيلها بعد. طالما أن الترحيل إلى التنبيهات قيد المعاينة، سيستمر إنشاء موارد Application Insights جديدة مع الكشف الذكي بدون تنبيهات.

  4. حدد مجموعة الإجراءات المطلوب تكوينها لقواعد التنبيه الجديدة. يمكنك استخدام مجموعة الإجراءات الافتراضية كما هو موضح أو استخدام إحدى مجموعات الإجراءات الموجودة.

  5. حدد ترحيل لبدء عملية الترحيل.

    Screenshot that shows the Smart Detection migration dialog.

بعد الترحيل، يتم إنشاء قواعد تنبيه جديدة لمورد Application Insight الخاص بك، كما هو موضح.

ترحيل الكشف الذكي باستخدام Azure CLI

ابدأ ترحيل الكشف الذكي باستخدام أمر Azure CLI التالي. يقوم الأمر بتشغيل عملية الترحيل المكونة مسبقا كما هو موضح سابقا.

az rest --method POST --uri /subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/migrateFromSmartDetection?api-version=2021-01-01-preview --body @body.txt

لترحيل مورد Application Insights واحد، يجب أن يتضمن body.txt :

{
      "scope": [
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/{resourceName}"
      ],
      "actionGroupCreationPolicy" : "{Auto/Custom}",
      "customActionGroupName" : "{actionGroupName}"           
}

لترحيل جميع موارد Application Insights في اشتراك، يجب أن يتضمن body.txt ما يلي:

{
      "scope": [
	"/subscriptions/{subscriptionId} "
      ],
      "actionGroupCreationPolicy" : "{Auto/Custom}",
      "customActionGroupName" : "{actionGroupName}"           
}

ActionGroupCreationPolicy تحدد المعلمة نهج ترحيل إعدادات البريد الإلكتروني في قواعد الكشف الذكية إلى مجموعات الإجراءات. القيم المسموح بها هي:

  • تلقائي: يستخدم مجموعات الإجراءات الافتراضية كما هو موضح في هذا المستند.
  • مخصص: ينشئ جميع قواعد التنبيه مع مجموعة الإجراءات المحددة في customActionGroupName.
  • <فارغ>: إذا ActionGroupCreationPolicy لم يتم تحديده، يتم استخدام النهج Auto .

ترحيل الكشف الذكي باستخدام قوالب ARM

يمكنك تشغيل ترحيل الكشف الذكي إلى تنبيهات لمورد Application Insights محدد باستخدام قوالب ARM. لاستخدام هذا الأسلوب، تحتاج إلى:

  • إنشاء قاعدة تنبيه الكشف الذكية لكل من أجهزة الكشف المدعومة.
  • قم بتعديل خصائص Application Insight للإشارة إلى اكتمال الترحيل.

باستخدام هذا الأسلوب، يمكنك التحكم في قواعد التنبيه التي يجب إنشاؤها، وتحديد اسم قاعدة التنبيه ووصفها، وتحديد أي مجموعة إجراءات تريدها لكل قاعدة.

استخدم القوالب التالية لهذا الغرض. قم بتحريرها حسب الحاجة لتوفير معرف الاشتراك واسم مورد Application Insights.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
	"parameters": {
		"applicationInsightsResourceName": {
			"type": "string"
		},
		"actionGroupName": {
			"type": "string",
			"defaultValue": "Application Insights Smart Detection"
		},
		"actionGroupResourceGroup": {
			"type": "string",
			"defaultValue": "[resourceGroup().Name]"
		}
	},
	"variables": {
		"applicationInsightsResourceId": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().Name,'/providers/microsoft.insights/components/',parameters('applicationInsightsResourceName'))]",
		"actionGroupId": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',parameters('actionGroupResourceGroup'),'/providers/microsoft.insights/ActionGroups/',parameters('actionGroupName'))]",
		"requestPerformanceDegradationDetectorRuleName": "[concat('Response Latency Degradation - ', parameters('applicationInsightsResourceName'))]",
		"dependencyPerformanceDegradationDetectorRuleName": "[concat('Dependency Latency Degradation - ', parameters('applicationInsightsResourceName'))]",
		"traceSeverityDetectorRuleName": "[concat('Trace Severity Degradation - ', parameters('applicationInsightsResourceName'))]",
		"exceptionVolumeChangedDetectorRuleName": "[concat('Exception Anomalies - ', parameters('applicationInsightsResourceName'))]",
		"memoryLeakRuleName": "[concat('Potential Memory Leak - ', parameters('applicationInsightsResourceName'))]"
	},
	"resources": [
		{
			"name": "[variables('requestPerformanceDegradationDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Response Latency Degradation notifies you of an unusual increase in latency in your app response to requests.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "RequestPerformanceDegradationDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {	
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('dependencyPerformanceDegradationDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Dependency Latency Degradation notifies you of an unusual increase in response by a dependency your app is calling (e.g. REST API or database)",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "DependencyPerformanceDegradationDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('traceSeverityDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Trace Severity Degradation notifies you of an unusual increase in the severity of the traces generated by your app.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "TraceSeverityDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('exceptionVolumeChangedDetectorRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Exception Anomalies notifies you of an unusual rise in the rate of exceptions thrown by your app.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "ExceptionVolumeChangedDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[variables('memoryLeakRuleName')]",
			"type": "Microsoft.AlertsManagement/smartdetectoralertrules",
			"location": "global",
			"apiVersion": "2019-03-01",
			"properties": {
				"description": "Potential Memory Leak notifies you of increased memory consumption pattern by your app which may indicate a potential memory leak.",
				"state": "Enabled",
				"severity": "Sev3",
				"frequency": "PT24H",
				"detector": {
					"id": "MemoryLeakDetector"
				},
				"scope": [
					"[variables('applicationInsightsResourceId')]"
				],
				"actionGroups": {
					"groupIds": [
						"[variables('actionGroupId')]"
					]
				}
			}
		},
		{
			"name": "[concat(parameters('applicationInsightsResourceName'),'/migrationToAlertRulesCompleted')]",
			"type": "Microsoft.Insights/components/ProactiveDetectionConfigs",
			"location": "[resourceGroup().location]",
			"apiVersion": "2018-05-01-preview",
			"properties": {
				"name": "migrationToAlertRulesCompleted",
				"sendEmailsToSubscriptionOwners": false,
				"customEmails": [],
				"enabled": true
			},
			"dependsOn": [
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('requestPerformanceDegradationDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('dependencyPerformanceDegradationDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('traceSeverityDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('exceptionVolumeChangedDetectorRuleName'))]",
				"[resourceId('Microsoft.AlertsManagement/smartdetectoralertrules', variables('memoryLeakRuleName'))]"
			]
		}
	]
}

عرض التنبيهات بعد الترحيل

بعد الترحيل، يمكنك عرض تنبيهات الكشف الذكية عن طريق تحديد إدخال التنبيهات في مورد Application Insights. بالنسبة إلى Signal type، حدد Smart Detector لتصفية تنبيهات الكشف الذكية وتقديمها فقط. يمكنك تحديد تنبيه للاطلاع على تفاصيل الكشف عنه.

Screenshot that shows smart detection alerts.

لا يزال بإمكانك أيضا مشاهدة الاكتشافات المتوفرة في موجز الكشف الذكي لمورد Application Insights.

Screenshot that shows the Smart Detection feed.

إدارة إعدادات قواعد تنبيه الكشف الذكي بعد الترحيل

استخدم مدخل Microsoft Azure أو قوالب ARM لإدارة إعدادات قواعد تنبيه الكشف الذكي بعد الترحيل.

إدارة إعدادات قواعد التنبيه باستخدام مدخل Microsoft Azure

بعد الانتهاء من الترحيل، يمكنك الوصول إلى قواعد تنبيه الكشف الذكي الجديدة بطريقة مشابهة لقواعد التنبيه الأخرى المحددة للمورد.

  1. حدد Alerts ضمن عنوان Monitoring في مورد Application Insights.

    Screenshot that shows the Alerts menu.

  2. حدد إدارة قواعد التنبيه.

    Screenshot that shows Manage alert rules.

  3. بالنسبة إلى Signal type، حدد Smart Detector لتصفية قواعد تنبيه الكشف الذكي وتقديمها.

    Screenshot that shows smart detection rules.

تمكين قواعد تنبيه الكشف الذكي أو تعطيلها

يمكن تمكين قواعد تنبيه الكشف الذكي أو تعطيلها من خلال واجهة مستخدم المدخل أو برمجيا، مثل أي قاعدة تنبيه أخرى.

إذا تم تعطيل قاعدة اكتشاف ذكية معينة قبل الترحيل، فسيتم أيضا تعطيل قاعدة التنبيه الجديدة.

تكوين مجموعات الإجراءات لقواعد التنبيه

يمكنك إنشاء مجموعات الإجراءات وإدارتها لقواعد تنبيه الكشف الذكية الجديدة مثل أي قاعدة تنبيه Azure Monitor أخرى.

إدارة إعدادات قاعدة التنبيه باستخدام قوالب ARM

بعد الانتهاء من الترحيل، يمكنك استخدام قوالب ARM لتكوين إعدادات إعدادات قاعدة تنبيه الكشف الذكي.

إشعار

بعد الانتهاء من الترحيل، يجب تكوين إعدادات الكشف الذكي باستخدام قوالب قاعدة تنبيه الكشف الذكي. لم يعد من الممكن تكوينها باستخدام قالب Application Insights Resource Manager.

يوضح مثال قالب ARM هذا كيفية تكوين Response Latency Degradation قاعدة تنبيه في Enabled حالة ذات خطورة .2

  • الكشف الذكي هو خدمة عمومية، لذلك يتم إنشاء موقع القاعدة في global الموقع.

  • يجب أن تتغير الخاصية id وفقا للكاشف المحدد الذي تم تكوينه. يجب أن تكون القيمة واحدة من:

    • FailureAnomaliesDetector
    • RequestPerformanceDegradationDetector
    • DependencyPerformanceDegradationDetector
    • ExceptionVolumeChangedDetector
    • TraceSeverityDetector
    • MemoryLeakDetector
{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "microsoft.alertsmanagement/smartdetectoralertrules",
            "apiVersion": "2019-03-01",
            "name": "Response Latency Degradation - my-app",
            "location": "global", 
            "properties": {
                  "description": "Response Latency Degradation notifies you of an unusual increase in latency in your app response to requests.",
                  "state": "Enabled",
                  "severity": "2",
                  "frequency": "PT24H",
                  "detector": {
                  "id": "RequestPerformanceDegradationDetector"
                  },
                  "scope": ["/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/MyResourceGroup/providers/microsoft.insights/components/my-app"],
                  "actionGroups": {
                        "groupIds": ["/subscriptions/00000000-1111-2222-3333-444444444444/resourcegroups/MyResourceGroup/providers/microsoft.insights/actiongroups/MyActionGroup"]
                  }
            }
        }
    ]
}

الخطوات التالية