مراقبة الأجهزة الظاهرية باستخدام Azure Monitor: التنبيهات
تعد هذه المقالة جزءا من الدليل مراقبة الأجهزة الظاهرية وأحمال العمل الخاصة بها في Azure Monitor. تقوم التنبيهات في Azure Monitor بإعلامك بشكل استباقي عن البيانات والأنماط المثيرة للاهتمام في بيانات المراقبة الخاصة بك. لا توجد قواعد تنبيه تم تكوينها مسبقا للأجهزة الظاهرية، ولكن يمكنك إنشاء قواعد خاصة بك استنادا إلى البيانات التي تجمعها من Azure Monitor Agent. تقدم هذه المقالة مفاهيم التنبيه الخاصة بالأجهزة الظاهرية وقواعد التنبيه الشائعة المستخدمة من قبل عملاء Azure Monitor الآخرين.
يصف هذا السيناريو كيفية تنفيذ المراقبة الكاملة لبيئة Azure والجهاز الظاهري المختلط:
لبدء مراقبة أول جهاز ظاهري Azure، راجع مراقبة أجهزة Azure الظاهرية.
لتمكين مجموعة موصى بها من التنبيهات بسرعة، راجع تمكين قواعد التنبيه الموصى بها لجهاز Azure الظاهري.
هام
تعتمد تكلفة معظم قواعد التنبيه على نوع القاعدة وعدد الأبعاد التي تتضمنها وعدد مرات تشغيلها. قبل إنشاء أي قواعد تنبيه، راجع قسم قواعد التنبيه في تسعير Azure Monitor.
تجميع البيانات
تقوم قواعد التنبيه بفحص البيانات التي تم جمعها بالفعل في Azure Monitor. تحتاج إلى التأكد من تجميع البيانات لسيناريو معين قبل أن تتمكن من إنشاء قاعدة تنبيه. راجع مراقبة الأجهزة الظاهرية باستخدام Azure Monitor: جمع البيانات للحصول على إرشادات حول تكوين جمع البيانات لسيناريوهات مختلفة، بما في ذلك جميع قواعد التنبيه في هذه المقالة.
قواعد التنبيه الموصى بها
يوفر Azure Monitor مجموعة من قواعد التنبيه الموصى بها التي يمكنك تمكينها بسرعة لأي جهاز ظاهري Azure. هذه القواعد هي نقطة انطلاق رائعة للمراقبة الأساسية. ولكن وحدها، لن توفر تنبيها كافيا لمعظم تطبيقات المؤسسة للأسباب التالية:
- تنطبق التنبيهات الموصى بها فقط على أجهزة Azure الظاهرية وليس الأجهزة المختلطة.
- تتضمن التنبيهات الموصى بها فقط مقاييس المضيف وليس مقاييس أو سجلات الضيف. هذه المقاييس مفيدة لمراقبة صحة الجهاز نفسه. ولكنها تمنحك الحد الأدنى من الرؤية في أحمال العمل والتطبيقات التي تعمل على الجهاز.
- ترتبط التنبيهات الموصى بها بالأجهزة الفردية التي تنشئ عددا زائدا من قواعد التنبيه. بدلا من الاعتماد على هذا الأسلوب لكل جهاز، راجع تغيير حجم قواعد التنبيه للاستراتيجيات المتعلقة باستخدام الحد الأدنى من قواعد التنبيه لأجهزة متعددة.
أنواع التنبيهات
الأنواع الأكثر شيوعا من قواعد التنبيه في Azure Monitor هي التنبيهات القياسية وتنبيهات بحث السجل. يعتمد نوع قاعدة التنبيه التي تقوم بإنشائها لسيناريو معين على مكان وجود البيانات التي تقوم بالتنبيه عليها.
قد تكون لديك حالات تتوفر فيها بيانات لسيناريو تنبيه معين في كل من المقاييس والسجلات. إذا كان الأمر كذلك، فستحتاج إلى تحديد نوع القاعدة الذي يجب استخدامه. قد تتمتع أيضًا بالمرونة في كيفية جمع بيانات معينة والسماح لقرارك الخاص بنوع قاعدة التنبيه بقيادة قرارك لطريقة جمع البيانات.
التنبيهات القياسية
الاستخدامات الشائعة للتنبيهات القياسية:
- تنبيه عندما يتجاوز مقياس معين الحد. مثال على ذلك هو عندما يتصاعد معالج جهاز.
مصادر البيانات للتنبيهات القياسية:
- مقاييس المضيف لأجهزة Azure الظاهرية، والتي يتم جمعها تلقائيا
- المقاييس التي جمعها عامل Azure Monitor من نظام التشغيل الضيف
تسجيل تنبيهات البحث
الاستخدامات الشائعة لتنبيهات بحث السجل:
- تنبيه عند العثور على حدث أو نمط أحداث معين من سجل أحداث Windows أو Syslog. تقيس قواعد التنبيه هذه عادة صفوف الجدول التي تم إرجاعها من الاستعلام.
- تنبيه يستند إلى حساب البيانات الرقمية عبر أجهزة متعددة. تقيس قواعد التنبيه هذه عادة حساب عمود رقمي في نتائج الاستعلام.
مصادر البيانات لتنبيهات بحث السجل:
- جميع البيانات التي تم جمعها في مساحة عمل Log Analytics
تغيير حجم قواعد التنبيه
نظرا لأنه قد يكون لديك العديد من الأجهزة الظاهرية التي تتطلب نفس المراقبة، لا تريد أن تضطر إلى إنشاء قواعد تنبيه فردية لكل منها. كما تريد التأكد من وجود استراتيجيات مختلفة للحد من عدد قواعد التنبيه التي تحتاج إلى إدارتها، اعتمادا على نوع القاعدة. تعتمد كل من هذه الاستراتيجيات على فهم المورد الهدف لقاعدة التنبيه.
قواعد التنبيه القياسي
تدعم الأجهزة الظاهرية قواعد تنبيه قياس الموارد المتعددة كما هو موضح في مراقبة موارد متعددة. تسمح لك هذه الإمكانية بإنشاء قاعدة تنبيه قياسية واحدة تنطبق على جميع الأجهزة الظاهرية في مجموعة موارد أو اشتراك داخل نفس المنطقة.
ابدأ بالتنبيهات الموصى بها وأنشئ قاعدة مقابلة لكل منها باستخدام اشتراكك أو مجموعة موارد كمورد مستهدف. تحتاج إلى إنشاء قواعد مكررة لكل منطقة إذا كان لديك أجهزة في مناطق متعددة.
أثناء تحديد متطلبات المزيد من قواعد التنبيه القياسي، اتبع هذه الاستراتيجية نفسها باستخدام اشتراك أو مجموعة موارد كمورد مستهدف من أجل:
- تقليل عدد قواعد التنبيه التي تحتاج إلى إدارتها.
- تأكد من تطبيقها تلقائيا على أي أجهزة جديدة.
تسجيل قواعد تنبيه البحث
إذا قمت بتعيين المورد الهدف لقاعدة تنبيه بحث السجل إلى جهاز معين، تقتصر الاستعلامات على البيانات المقترنة بهذا الجهاز، ما يمنحك تنبيهات فردية له. يتطلب هذا الترتيب قاعدة تنبيه منفصلة لكل جهاز.
إذا قمت بتعيين المورد الهدف لقاعدة تنبيه بحث السجل إلى مساحة عمل Log Analytics، فلديك حق الوصول إلى جميع البيانات في مساحة العمل هذه. لهذا السبب، يمكنك التنبيه على البيانات من جميع الأجهزة في مجموعة العمل باستخدام قاعدة واحدة. يمنحك هذا الترتيب خيار إنشاء تنبيه واحد لجميع الأجهزة. يمكنك بعد ذلك استخدام الأبعاد لإنشاء تنبيه منفصل لكل جهاز.
على سبيل المثال، قد تحتاج إلى التنبيه عند إنشاء حدث خطأ في سجل أحداث Windows بواسطة أي جهاز. تحتاج أولا إلى إنشاء قاعدة تجميع بيانات كما هو موضح في تجميع البيانات باستخدام عامل Azure Monitor لإرسال هذه الأحداث إلى Event
الجدول في مساحة عمل Log Analytics. ثم تقوم بإنشاء قاعدة تنبيه تقوم بالاستعلامات عن هذا الجدول باستخدام مساحة العمل كمورد الهدف والشرط الموضح في الصورة التالية.
يقوم الاستعلام بإرجاع سجل لأي رسائل خطأ على أي جهاز. استخدم الخيار تقسيم حسب الأبعاد وحدد _ResourceId لإرشاد القاعدة لإنشاء تنبيه لكل جهاز إذا تم إرجاع أجهزة متعددة في النتائج.
أبعاد
اعتمادا على المعلومات التي تريد تضمينها في التنبيه، قد تحتاج إلى التقسيم باستخدام أبعاد مختلفة. في هذه الحالة، تأكد من عرض الأبعاد الضرورية في الاستعلام باستخدام المشروع أو توسيع عامل التشغيل. قم بتعيين حقل عمود معرف المورد إلى عدم التقسيم وتضمين جميع الأبعاد ذات المعنى في القائمة. تأكد من تحديد تضمين كافة القيم المستقبلية بحيث يتم تضمين أي قيمة يتم إرجاعها من الاستعلام.
الحدود الديناميكية
فائدة أخرى لاستخدام قواعد تنبيه بحث السجل هي القدرة على تضمين منطق معقد في الاستعلام لتحديد قيمة الحد. يمكنك ترميز الحد أو تطبيقه على جميع الموارد أو حسابه ديناميكيا استنادا إلى حقل ما أو قيمة محسوبة. يتم تطبيق الحد على الموارد فقط وفقا لشروط محددة. على سبيل المثال، يمكنك إنشاء تنبيه استنادا إلى الذاكرة المتوفرة ولكن فقط للأجهزة ذات كمية معينة من إجمالي الذاكرة.
قواعد التنبيه الشائعة
يسرد المقطع التالي قواعد التنبيه الشائعة للأجهزة الظاهرية في Azure Monitor. يتم توفير تفاصيل التنبيهات القياسية وتنبيهات بحث السجل لكل منها. للحصول على إرشادات حول نوع التنبيه الذي يجب استخدامه، راجع أنواع التنبيهات. إذا لم تكن معتادًا على عملية إنشاء قواعد التنبيه في Azure Monitor، فشاهِد الإرشادات لإنشاء قاعدة تنبيه جديدة.
إشعار
تستخدم تفاصيل تنبيهات البحث في السجل المتوفرة هنا البيانات التي تم جمعها باستخدام VM Insights، والتي توفر مجموعة من عدادات الأداء الشائعة لنظام تشغيل العميل. هذا الاسم مستقل عن نوع نظام التشغيل.
توفر الجهاز
أحد متطلبات المراقبة الأكثر شيوعا لجهاز ظاهري هو إنشاء تنبيه إذا توقف عن التشغيل. أفضل طريقة هي إنشاء قاعدة تنبيه قياسي في Azure Monitor باستخدام مقياس توفر الجهاز الظاهري، الموجود حاليا في المعاينة العامة. للحصول على إرشادات حول هذا المقياس، راجع إنشاء قاعدة تنبيه التوفر لجهاز Azure الظاهري.
تقتصر قاعدة التنبيه على إشارة سجل نشاط واحدة. لذلك لكل شرط، يجب إنشاء قاعدة تنبيه واحدة. على سبيل المثال، يتطلب "بدء تشغيل الجهاز الظاهري أو إيقافه" قاعدتي تنبيه. ومع ذلك، ليتم تنبيهك عند إعادة تشغيل الجهاز الظاهري، يلزم قاعدة تنبيه واحدة فقط.
كما هو موضح في قواعد تنبيه التحجيم، قم بإنشاء قاعدة تنبيه توفر باستخدام اشتراك أو مجموعة موارد كمورد مستهدف. تنطبق القاعدة على أجهزة ظاهرية متعددة، بما في ذلك الأجهزة الجديدة التي تقوم بإنشائها بعد قاعدة التنبيه.
رسالة كشف أخطاء اتصال العامل
رسالة كشف أخطاء اتصال العامل مختلفة قليلا عن التنبيه غير المتوفر للجهاز لأنه يعتمد على عامل Azure Monitor لإرسال رسالة كشف أخطاء الاتصال. يمكن لرسالة كشف أخطاء الاتصال للعامل تنبيهك إذا كان الجهاز قيد التشغيل ولكن العامل غير مستجيب.
قواعد التنبيه القياسي
يتم تضمين مقياس يُسمى Heartbeat في كل مساحة عمل Log Analytics. كل جهاز ظاهري متصل بمساحة العمل تلك يرسل قيمة قياس رسالة كشف أخطاء الاتصال كل دقيقة. نظرًا لأن الكمبيوتر يعد بعدًا على المقياس، يمكنك إطلاق تنبيه عند فشل أي كمبيوتر في إرسال رسالة كشف أخطاء الاتصال. تعيين Aggregation type على Count وقيمة Threshold لمطابقة Evaluation granularity.
تسجيل قواعد تنبيه البحث
تستخدم تنبيهات بحث السجل جدول Heartbeat، والذي يجب أن يحتوي على سجل رسالة كشف أخطاء الاتصال كل دقيقة من كل جهاز.
استخدم قاعدة مع الاستعلام التالي:
Heartbeat
| summarize TimeGenerated=max(TimeGenerated) by Computer, _ResourceId
| extend Duration = datetime_diff('minute',now(),TimeGenerated)
| summarize MinutesSinceLastHeartbeat = min(Duration) by Computer, bin(TimeGenerated,5m), _ResourceId
تنبيهات وحدة المعالجة المركزية
يصف هذا القسم تنبيهات وحدة المعالجة المركزية.
قواعد التنبيه القياسي
استهداف | Metric |
---|---|
المضيف | النسبة المئوية لوحدة المعالجة المركزية (المضمنة في التنبيهات الموصى بها) |
ضيف يعمل بنظام Windows | \Processor Information(_Total)% Processor Time |
ضيف يعمل بنظام Linux | cpu/usage_active |
تسجيل قواعد تنبيه البحث
استخدام CPU
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Processor" and Name == "UtilizationPercentage"
| summarize CPUPercentageAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId
تنبيهات الذاكرة
يصف هذا القسم تنبيهات الذاكرة.
قواعد التنبيه القياسي
استهداف | Metric |
---|---|
المضيف | وحدات بايت الذاكرة المتوفرة (معاينة) (مضمنة في التنبيهات الموصى بها) |
ضيف يعمل بنظام Windows | \Memory% Committed Bytes in Use \Memory\Available Bytes |
ضيف يعمل بنظام Linux | mem/available mem/available_percent |
تسجيل قواعد تنبيه البحث
إشعار
إذا كنت بحاجة إلى تحديد التنبيه إلى قرص واحد، يمكنك إضافة هذا إلى الاستعلام: | where parse_json(Tags).["vm.azm.ms/mountId"] == "C:"
الذاكرة المتوفرة بالميغابايت
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| summarize AvailableMemoryInMBAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId
الذاكرة المتوفرة بالنسبة المئوية
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| extend TotalMemory = toreal(todynamic(Tags)["vm.azm.ms/memorySizeMB"]) | extend AvailableMemoryPercentage = (toreal(Val) / TotalMemory) * 100.0
| summarize AvailableMemoryInPercentageAverage = avg(AvailableMemoryPercentage) by bin(TimeGenerated, 15m), Computer, _ResourceId
تنبيهات القرص
يصف هذا القسم تنبيهات القرص.
قواعد التنبيه القياسي
استهداف | Metric |
---|---|
ضيف يعمل بنظام Windows | \Logical Disk(_Total)% Free Space \Logical Disk(_Total)\Free Megabytes |
ضيف يعمل بنظام Linux | disk/free disk/free_percent |
تسجيل قواعد تنبيه البحث
القرص المنطقي المستخدم - جميع الأقراص على كل كمبيوتر
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId
القرص المنطقي المستخدم - الأقراص الفردية
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk
القرص المنطقي IOPS
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "TransfersPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskIOPSAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk
معدل بيانات القرص المنطقي
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "BytesPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskBytesPerSecondAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk
تنبيهات الشبكة
قواعد التنبيه القياسي
استهداف | Metric |
---|---|
المضيف | Network In Total, Network Out Total (مضمن في التنبيهات الموصى بها) |
ضيف يعمل بنظام Windows | \Network Interface\Bytes Sent/sec \Logical Disk(_Total)\Free Megabytes |
ضيف يعمل بنظام Linux | disk/free disk/free_percent |
تسجيل قواعد تنبيه البحث
بايت واجهات الشبكة المستلمة - جميع واجهات
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| summarize BytesReceivedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId
بايت واجهات الشبكة المستلمة - واجهات فردية
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesReceievedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface
بايت واجهات الشبكة المرسلة - جميع واجهات
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId
بايت واجهات الشبكة المرسلة - واجهات فردية
InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface
أحداث Windows وLinux
يخلق النموذج التالي تنبيهًا عند إنشاء حدث Windows محدد. ويستخدم قاعدة تنبيه قياس متري لإنشاء تنبيه منفصل لكل كمبيوتر.
إنشاء قاعدة تنبيه على حدث Windows محدد. يظهر هذا المثال حدثًا في سجل التطبيق. قم بتخصيص حد 0 والخروقات المتتالية التي تزيد عن 0.
Event | where EventLog == "Application" | where EventID == 123 | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
إنشاء قاعدة تنبيه على أحداث Syslog مع خطورة معينة. يظهر المثال التالي أحداث تخويل الخطأ. قم بتخصيص حد 0 والخروقات المتتالية التي تزيد عن 0.
Syslog | where Facility == "auth" | where SeverityLevel == "err" | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
عدادات الأداء المخصصة
إنشاء تنبيه على أقصى قيمة للعداد.
Perf | where CounterName == "My Counter" | summarize AggregatedValue = max(CounterValue) by Computer
إنشاء تنبيه على متوسط قيمة العداد.
Perf | where CounterName == "My Counter" | summarize AggregatedValue = avg(CounterValue) by Computer