كيفية الاستعلام عن السجلات من رؤى VM

تنبيه

تشير هذه المقالة إلى CentOS، وهو توزيع Linux يقترب من حالة نهاية العمر الافتراضي (EOL). يرجى مراعاة استخدامك والتخطيط وفقا لذلك. لمزيد من المعلومات، راجع إرشادات نهاية العمر الافتراضي CentOS.

تجمع VM insights قياسات الأداء والاتصال وبيانات مخزون الكمبيوتر والمعالجة ومعلومات الحالة الصحية وإعادة توجيهها إلى مساحة عمل Log Analytics في Azure Monitor. هذه البيانات متاحة للاستعلام في Azure Monitor. يمكنك تطبيق هذه البيانات على السيناريوهات التي تتضمن التخطيط للترحيل، وتحليل السعة، والاكتشاف، واستكشاف أخطاء الأداء، وإصلاحها عند الطلب.

تعيين السجلات

هام

إذا كان جهازك الظاهري يستخدم رؤى الجهاز الظاهري مع عامل Azure Monitor، فيجب أن يكون لديك عمليات وتبعيات ممكنة لإنشاء هذه الجداول.

يتم إنشاء سجل واحد في الساعة لكل كمبيوتر وعملية فريدة، بالإضافة إلى السجلات التي يتم إنشاؤها عند بدء عملية أو كمبيوتر أو إضافته إلى رؤى VM. تعين الحقول والقيم في جدول VMComputer إلى حقول مورد الجهاز في ServiceMap Azure Resource Manager API. تعين الحقول والقيم في جدول VMProcess إلى حقول مورد العملية في ServiceMap Azure Resource Manager API. يطابق حقل _ResourceId حقل الاسم في مورد Resource Manager المقابل.

توجد خصائص تم إنشاؤها داخليًا يمكنك استخدامها لتعريف العمليات وأجهزة الكمبيوتر الفريدة:

  • الكمبيوتر: استخدم _ResourceId لتعريف جهاز كمبيوتر بشكل فريد داخل مساحة عمل Log Analytics.
  • العملية: استخدم _ResourceId لتعريف عملية بشكل فريد داخل مساحة عمل Log Analytics.

نظرًا لأنه من الممكن أن توجد العديد من السجلات لعملية محددة وجهاز كمبيوتر محدد خلال نطاق زمني محدد، يمكن أن ينتج عن الاستعلامات أكثر من سجل واحد لنفس الكمبيوتر أو العملية. لتضمين أحدث سجل فقط، أضف | summarize arg_max(TimeGenerated, *) by ResourceId إلى الاستعلام.

التوصيلات والمنافذ

تقدم ميزة قياسات الاتصال جدولين جديدين في سجلات المراقبة في Azure - VMConnection وVMBoundPort. توفر هذه الجداول معلومات حول اتصالات الجهاز (الواردة والصادرة) ومنافذ الخادم المفتوحة/النشطة عليها. يتم عرض ConnectionMetrics أيضاً عبر واجهات برمجة التطبيقات التي توفر الوسائل للحصول على مقياس معين خلال نافذة زمنية. تكون اتصالات TCP الناتجة عن القبول على مقبس الإنصات واردة، بينما تلك التي تم إنشاؤها عن طريق الاتصال بعنوان IP معين والمنفذ تكون صادرة. يتم تمثيل اتجاه الاتصال بواسطة خاصية الاتجاه، والتي يمكن تعيينها إما على الوارد أو الصادر.

يتم إنشاء السجلات في هذه الجداول من البيانات التي أبلغ عنها عامل التبعية. يمثل كل سجل ملاحظة خلال فترة زمنية مدتها دقيقة واحدة. تشير الخاصية TimeGenerated إلى بداية الفاصل الزمني. يحتوي كل سجل على معلومات تحدد الكيان المعني، أي الاتصال، أو المنفذ، بالإضافة إلى المقاييس المقترنة بهذا الكيان. يتم حاليًا الإبلاغ فقط عن نشاط الشبكة الذي يُنفذ باستخدام بروتوكول التحكم في الإرسال (TCP) عبر IPv4.

المجالات المشتركة والاتفاقيات

تنطبق الحقول والاصطلاحات التالية على كل من VMConnection وVMBoundPort:

  • الكمبيوتر: اسم المجال المؤهل بالكامل لجهاز الإبلاغ
  • AgentId: المعرف الفريد لجهاز يقوم بتشغيل عامل Azure Monitor أو عامل Log Analytics
  • الجهاز: اسم مورد Azure Resource Manager للجهاز الذي تم عرضه بواسطة ServiceMap. إنه من النموذج m-{GUID}، حيث GUID هو نفس GUID مثل AgentId
  • العملية: اسم مورد Azure Resource Manager للعملية المعروضة بواسطة ServiceMap. إنه من النموذج p-{hex string}. تعتبر العملية فريدة من نوعها داخل نطاق الآلة ولإنشاء معرف عملية فريد عبر الأجهزة، والجمع بين حقل Machine وحقل Process.
  • ProcessName: الاسم القابل للتنفيذ لعملية إعداد التقارير.
  • جميع عناوين IP عبارة عن سلاسل بتنسيق IPv4 الأساسي، على سبيل المثال 13.107.3.160

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

الخاصية ‏‏الوصف
الاتجاه اتجاه الاتصال، القيمة واردة أو صادرة
الجهاز اسم FQDN لجهاز الكمبيوتر
معالجة هوية العملية أو مجموعات العمليات، التي يتم من خلالها بدء أو قبول الاتصال
SourceIp عنوان IP للمصدر
DestinationIp عنوان IP للوجهة
DestinationPort رقم المنفذ للوجهة
البروتوكول البروتوكول المستخدم للاتصال. القيم هي tcp.

لتفسير تأثير التجميع، ترد المعلومات المتعلقة بعدد الاتصالات الفعلية المُجمّعة في الخصائص التالية للسجل:

الخاصية ‏‏الوصف
LinksEstablished عدد اتصالات الشبكة الفعلية التي تم إنشاؤها خلال الإطار الزمني للإبلاغ
LinksTerminated عدد اتصالات الشبكة الفعلية التي تم إنهاؤها خلال الإطار الزمني للإبلاغ
LinksFailed عدد اتصالات الشبكة الفعلية التي فشلت خلال الإطار الزمني للإبلاغ. تتوفر هذه المعلومات حاليًا للاتصالات الصادرة فقط.
LinksLive عدد اتصالات الشبكة الفعلية التي تم فتحها عند انتهاء الإطار الزمني للإبلاغ

المقاييس

بالإضافة إلى المقاييس الخاصة بعدد الاتصالات، يتم تضمين المعلومات المتعلقة بحجم البيانات المرسلة والمستلمة على اتصال منطقي، أو منفذ شبكة معين ضمن الخصائص التالية للسجل:

الخاصية ‏‏الوصف
BytesSent إجمالي عدد وحدات البايت المرسلة خلال الإطار الزمني للإبلاغ
وحدات البايت المستلمة إجمالي عدد وحدات البايت المستلمة خلال الإطار الزمني للإبلاغ
الاستجابات عدد الاستجابات التي لوحظت خلال الإطار الزمني للإبلاغ.
ResponseTimeMax أطول وقت استجابة (بالمللي ثانية) لوحظ خلال الإطار الزمني للإبلاغ. في حالة عدم وجود قيمة، تكون الخاصية فارغة.
ResponseTimeMin أقصر وقت استجابة (بالمللي ثانية) لوحظ خلال الإطار الزمني للإبلاغ. في حالة عدم وجود قيمة، تكون الخاصية فارغة.
ResponseTimeSum مجموع أوقات الاستجابة كلها (بالمللي ثانية) الذي لوحظ خلال الإطار الزمني للإبلاغ. في حالة عدم وجود قيمة، تكون الخاصية فارغة.

النوع الثالث من البيانات التي يتم الإبلاغ عنها هو وقت الاستجابة؛ وهو مقدار الوقت الذي ينتظره المتصل حتى تتم معالجة طلب أرسله عبر اتصال ما، والرد عليه بواسطة نقطة النهاية البعيدة. وقت الاستجابة المُبلّغ عنه هو تقدير لوقت الاستجابة الحقيقي الذي يستغرقه بروتوكول التطبيق الأساسي. يتم حسابها باستخدام الأساليب الإرشادية استنادا إلى مراقبة تدفق البيانات بين المصدر والوجهة لاتصال شبكة فعلية. من الناحية المفاهيمية، إنه الفرق بين الوقت الذي يترك فيه البايت الأخير من الطلب المرسل، والوقت الذي يصل فيه البايت الأخير من الاستجابة إليه. يُستخدم هذان الطابعان الزمنيان لتحديد أحداث الطلب والاستجابة على اتصال فعلي معين. يمثل الفرق بينهما وقت استجابة طلب واحد.

في هذا الإصدار الأول من هذه الميزة، تمثل الخوارزمية الخاصة بنا عملية تقريب قد تعمل بدرجات متفاوتة من النجاح بناءً على بروتوكول التطبيق الفعلي المستخدم لاتصال شبكة معين. على سبيل المثال، يعمل النهج الحالي بشكل جيد للبروتوكولات المستندة إلى استجابة الطلب مثل HTTP(S)، ولكنه لا يعمل مع البروتوكولات أحادية الاتجاه أو البروتوكولات المستندة إلى قائمة انتظار الرسائل.

فيما يلي بعض النقاط الهامة التي يجب مراعاتها:

  1. إذا قبلت عملية اتصالات على نفس عنوان IP؛ ولكن عبر العديد من واجهات الشبكة، فسيتم الإبلاغ عن سجل منفصل لكل واجهة.
  2. لن تحتوي السجلات التي تحتوي على عنوان IP يشتمل على حرف بدل على أي نشاط. يتم تضمينها لتمثيل حقيقة أن منفذا على الجهاز مفتوح لنسبة استخدام الشبكة الواردة.
  3. لتقليل الإسهاب وحجم البيانات، سيتم حذف السجلات ذات عنوان IP لحرف البدل عندما يكون هناك سجل مطابق (لنفس العملية والمنفذ والبروتوكول) بعنوان IP محدد. عند حذف سجل IP يشتمل على حرف بدل، سيتم تعيين خاصية السجل IsWildcardBind التي تشتمل على عنوان IP محدد على "صحيح"؛ للإشارة إلى أن المنفذ معروض عبر كل من واجهات جهاز الإبلاغ.
  4. المنافذ المرتبطة فقط بواجهة معينة لها IsWildcardBind معيَّنة على False.

التسمية والتصنيف

يتم تضمين عنوان IP الخاص بالطرف البعيد لأي اتصال في الخاصية RemoteIp لتسهيل الأمر عليك. بالنسبة للاتصالات الواردة، يكون RemoteIp هو نفسه SourceIp، بينما بالنسبة للاتصالات الصادرة، يكون هو نفسه DestinationIp. تمثل الخاصية RemoteDnsCanonicalNames أسماء DNS المتعارف عليها التي أبلغ الجهاز الخاص بعنوان RemoteIp عنها. تمثل الخاصية RemoteDnsQuestions أسئلة DNS التي أبلغ عنها الجهاز لـ RemoteIp. الخاصية RemoveClassification محجوزة للاستخدام في المستقبل.

الموقع الجغرافي

يتضمنVMConnection أيضاً معلومات تحديد الموقع الجغرافي للطرف البعيد لكل سجل اتصال في الخصائص التالية للسجل:

الخاصية ‏‏الوصف
RemoteCountry اسم البلد/ المنطقة التي تستضيف RemoteIp. على سبيل المثال، الولايات المتحدة
RemoteLatitude خط العرض للموقع الجغرافي. على سبيل المثال، 47.68
RemoteLongitude خط الطول للموقع الجغرافي. على سبيل المثال، -122.12

عنوان IP ضار

يتم فحص كل خاصية RemoteIp في جدول VMConnection مقابل مجموعة من عناوين IP ذات الأنشطة الضارة المعروفة. إذا تم تعريف RemoteIp على أنه ضار، فسيتم ملء الخصائص التالية (تكون فارغة، عندما لا يعتبر IP ضارا) في الخصائص التالية للسجل:

الخاصية ‏‏الوصف
MaliciousIp عنوان RemoteIp
IndicatorThreadType يعد مؤشر التهديد الذي تم اكتشافه أحد القيم التالية، Botnet وC2 وCryptoMining وDarknet وDDos وMaliciousUrl والبرامج الضارة، والتصيد الاحتيالي، والخادم الوكيل، وPUA، وقائمة المشاهدة.
‏‏الوصف وصف التهديد المراقب.
TLPLevel يعد مستوى بروتوكول إشارة المرور (TLP) أحد القيم المحددة، أبيض، أخضر، كهرماني، أحمر.
الدقة القيم هي 0 - 100.
الأهمية القيم هي 0 - 5، حيث 5 هي الأكثر حدة و0 ليست شديدة على الإطلاق. القيمة الافتراضية هي: 3.
FirstReportedDateTime أول مرة أبلغ فيها الموفر عن المؤشر.
LastReportedDateTime آخر مرة شوهد فيها المؤشر من قبل Interflow.
IsActive يشير إلى إلغاء تنشيط المؤشرات بقيمة True أو False.
ReportReferenceLink يربط بالتقارير ذات الصلة بشيء معين يمكن مراقبته. للإبلاغ عن تنبيه خاطئ أو الحصول على مزيد من التفاصيل حول IP الضار، افتح حالة دعم وقدم هذا الارتباط.
AdditionalInformation يوفر معلومات إضافية حول التهديد المراقب إن أمكن.

منافذ

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

يتم تحديد كل سجل في VMBoundPort من خلال الحقول التالية:

الخاصية ‏‏الوصف
معالجة هوية العملية (أو مجموعات العمليات) التي يرتبط بها المنفذ.
IP عنوان IP للمنفذ (يمكن أن يكون عنوان IP بدلاً، 0.0.0.0)
المنفذ رقم المنفذ
البروتوكول بروتوكول. سبيل المثال، برنامج التعاون الفني أو UDP (فقط ويدعم برنامج التعاون الفني حاليا).

إن هوية المنفذ مشتق من الحقول الخمسة المذكورة أعلاه ويتم تخزينها في خاصية PortId. يمكن استخدام هذه الخاصية للعثور بسرعة على السجلات لمنفذ معين عبر الوقت.

المقاييس

تتضمن سجلات المنفذ قياسات تمثل الاتصالات المرتبطة بها. حالياً، يتم الإبلاغ عن القياسات التالية (تم وصف تفاصيل كل مقياس في القسم السابق):

  • BytesSent وBytesReceived
  • LinksEstablished, LinksTerminated, LinksLive
  • ResposeTime, ResponseTimeMin, ResponseTimeMax, ResponseTimeSum

فيما يلي بعض النقاط الهامة التي يجب مراعاتها:

  • إذا قبلت عملية اتصالات على نفس عنوان IP؛ ولكن عبر العديد من واجهات الشبكة، فسيتم الإبلاغ عن سجل منفصل لكل واجهة.
  • لن تحتوي السجلات التي تحتوي على عنوان IP يشتمل على حرف بدل على أي نشاط. يتم تضمينها لتمثيل حقيقة أن منفذا على الجهاز مفتوح لنسبة استخدام الشبكة الواردة.
  • لتقليل الإسهاب وحجم البيانات، سيتم حذف السجلات ذات عنوان IP لحرف البدل عندما يكون هناك سجل مطابق (لنفس العملية والمنفذ والبروتوكول) بعنوان IP محدد. عند حذف سجل IP لحرف بدل، سيتم تعيين الخاصية IsWildcardBind للسجل الذي يحتوي على عنوان IP المحدد على True. يشير هذا إلى أن المنفذ مكشوف فوق كل واجهة لجهاز الإبلاغ.
  • المنافذ المرتبطة فقط بواجهة معينة لها IsWildcardBind معيَّنة على False.

سجلات VMComputer

السجلات من نوع VMComputer بها بيانات مخزون للخوادم مع عامل التبعية. تحتوي هذه السجلات على الخصائص في الجدول التالي:

الخاصية ‏‏الوصف
TenantId المعرف الفريد لمساحة العمل
نظام المصدر الرؤى
TimeGenerated الطابع الزمني للسجل (التوقيت العالمي المتفق عليه)
الكمبيوتر اسم FQDN لجهاز الكمبيوتر
AgentId المعرف الفريد لجهاز يقوم بتشغيل عامل Azure Monitor أو عامل Log Analytics
الجهاز اسم مورد Azure Resource Manager للجهاز الذي تم عرضه بواسطة ServiceMap. إنه من النموذج m-{GUID}، حيث GUID هو نفس GUID مثل AgentId.
DisplayName ‏‫اسم العرض‬
FullDisplayName الاسم المعروض بالكامل
HostName اسم الجهاز دون اسم المجال
BootTime وقت تمهيد الجهاز (UTC)
TimeZone المنطقة الزمنية الطبيعية
VirtualizationState ظاهري، مراقب، مادي
Ipv4Addresses مجموعة عناوين IPv4
Ipv4SubnetMasks صفيف أقنعة الشبكة الفرعية IPv4 (بنفس ترتيب Ipv4Addresses).
Ipv4DefaultGateways مجموعة بوابات IPv4
Ipv6Addresses مجموعة عناوين IPv6
MacAddresses صفيف من عناوين MAC
DnsNames مجموعة أسماء DNS المرتبطة بالجهاز.
DependencyAgentVersion إصدار عامل التبعية الذي يعمل على الجهاز.
OperatingSystemFamily Linuxو Windows
OperatingSystemFullName الاسم الكامل لنظام التشغيل
PhysicalMemoryMB الذاكرة الفعلية بالميغابايت
Cpus عدد المعالجات
CpuSpeed سرعة وحدة المعالجة المركزية بالميغا هرتز
VirtualMachineType فرط، vmware، زين
VirtualMachineNativeId معرف الجهاز الظاهري المعين بواسطة hypervisor الخاص به
VirtualMachineNativeName اسم الجهاز الظاهري
VirtualMachineHypervisorId المعرف الفريد لبرنامج Hypervisor الذي يستضيف الجهاز الظاهري
HypervisorType ارتفاع ضغط الدم
HypervisorId المعرف الفريد لبرنامج Hypervisor
HostingProvider azure
_ResourceId المعرف الفريد لمورد Azure
AzureSubscriptionId معرّف فريد عالمياً يحدد اشتراكك
AzureResourceGroup اسم مجموعة موارد Azure التي ينتمي إليها الجهاز.
AzureResourceName اسم مورد Azure
AzureLocation موقع مورد Azure
AzureUpdateDomain اسم مجال تحديث Azure
AzureFaultDomain اسم مجال خطأ Azure
AzureVmId المعرف الفريد للجهاز الظاهري Azure
AzureSize حجم Azure VM
AzureImagePublisher اسم ناشر Azure VM
AzureImageOffering اسم نوع عرض Azure VM
AzureImageSku رمز التخزين التعريفي لصورة Azure VM
AzureImageVersion إصدار صورة Azure VM
AzureCloudServiceName اسم خدمة Azure السحابية
AzureCloudServiceDeployment معرّف التوزيع للخدمة السحابية
AzureCloudServiceRoleName اسم دور خدمة السحابة
AzureCloudServiceRoleType نوع دور خدمة السحاب: عامل أو ويب
AzureCloudServiceInstanceId معرف مثيل دور الخدمة السحابية
AzureVmScaleSetName اسم مجموعة مقياس الجهاز الظاهري
AzureVmScaleSetDeployment معرّف نشر مجموعة مقياس الآلة الظاهرية
AzureVmScaleSetResourceId المعرف الفريد لمورد مجموعة مقياس الجهاز الافتراضي.
AzureVmScaleSetInstanceId المعرف الفريد لمجموعة ميزان الجهاز الافتراضي
AzureServiceFabricClusterId المعرف الفريد لمجموعة Azure Service Fabric
AzureServiceFabricClusterName اسم مجموعة Azure Service Fabric

سجلات VMProcess

تحتوي السجلات من نوع VMProcess على بيانات مخزون للعمليات المتصلة عبر بروتوكول TCP على الخوادم مع عامل التبعية. تحتوي هذه السجلات على الخصائص في الجدول التالي:

الخاصية ‏‏الوصف
TenantId المعرف الفريد لمساحة العمل
نظام المصدر الرؤى
TimeGenerated الطابع الزمني للسجل (التوقيت العالمي المتفق عليه)
الكمبيوتر اسم FQDN لجهاز الكمبيوتر
AgentId المعرف الفريد لجهاز يقوم بتشغيل عامل Azure Monitor أو عامل Log Analytics
الجهاز اسم مورد Azure Resource Manager للجهاز الذي تم عرضه بواسطة ServiceMap. إنه من النموذج m-{GUID}، حيث GUID هو نفس GUID مثل AgentId.
معالجة المعرف الفريد لعملية خريطة الخدمة. إنه في شكل p-{GUID}.
ExecutableName اسم العملية القابلة للتنفيذ
DisplayName اسم عرض العملية
الدور دور العملية: webserver, appServer, databaseServer, ldapServer, smbServer
Group (المجموعة) اسم مجموعة العمليات. ترتبط العمليات في نفس المجموعة منطقياً، على سبيل المثال، جزء من نفس المنتج أو مكون النظام.
StartTime وقت بدء تجمع العمليات
FirstPid أول معرف عملية في تجمع العمليات
‏‏الوصف وصف العملية
CompanyName اسم الشركة
InternalName الاسم الداخلي
ProductName اسم المنتج
ProductVersion إصدار المنتج
FileVersion نسخة الملف
ExecutablePath مسار الملف القابل للتنفيذ
CommandLine سطر الأوامر
WorkingDirectory دليل العمل
الخدمات مجموعة من الخدمات التي يتم تنفيذ العملية بموجبها
UserName الحساب الذي تُنفذ فيه العملية
UserDomain المجال الذي تُنفذ فيه العملية
_ResourceId المعرف الفريد لعملية داخل مساحة العمل

نماذج استعلامات الخريطة

إدراج كل الأجهزة المعروفة

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId

متى تم إعادة تشغيل VM آخر مرة

let Today = now(); VMComputer | extend DaysSinceBoot = Today - BootTime | summarize by Computer, DaysSinceBoot, BootTime | sort by BootTime asc

ملخص لـ Azure VMs حسب الصورة والموقع وSKU

VMComputer | where AzureLocation != "" | summarize by Computer, AzureImageOffering, AzureLocation, AzureImageSku

ضع قائمة بسعة الذاكرة الفعلية لجميع أجهزة الكمبيوتر المدارة

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project PhysicalMemoryMB, Computer

سرد اسم الكمبيوتر وDNS وIP وOS

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project Computer, OperatingSystemFullName, DnsNames, Ipv4Addresses

البحث عن كل العمليات باستخدام "sql" في سطر الأوامر

VMProcess | where CommandLine contains_cs "sql" | summarize arg_max(TimeGenerated, *) by _ResourceId

البحث عن جهاز (أحدث سجل) حسب اسم المورد

search in (VMComputer) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by _ResourceId

البحث عن جهاز (أحدث سجل) حسب عنوان IP

search in (VMComputer) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by _ResourceId

إدراج كل العمليات المعروفة على جهاز محدد

VMProcess | where Machine == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by _ResourceId

قائمة بجميع أجهزة الكمبيوتر التي تعمل بنظام SQL Server

VMComputer | where AzureResourceName in ((search in (VMProcess) "*sql*" | distinct Machine)) | distinct Computer

إدراج كل إصدارات المنتج الفريدة من curl في مركز البيانات الخاص بي

VMProcess | where ExecutableName == "curl" | distinct ProductVersion

إنشاء مجموعة أجهزة كمبيوتر تضم جميع أجهزة الكمبيوتر التي تشغل CentOS

VMComputer | where OperatingSystemFullName contains_cs "CentOS" | distinct Computer
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart

أي أجهزة Azure VM ترسل أكبر عدد من البايت

VMConnection | join kind=fullouter(VMComputer) on $left.Computer == $right.Computer | summarize count(BytesSent) by Computer, AzureVMSize | sort by count_BytesSent desc
VMConnection | where TimeGenerated >= ago(24hr) | where Computer == "acme-demo" | summarize dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h) | render timechart

اتجاه فشل الاتصال

VMConnection | where Computer == "acme-demo" | extend bythehour = datetime_part("hour", TimeGenerated) | project bythehour, LinksFailed | summarize failCount = count() by bythehour | sort by bythehour asc | render timechart

المنافذ المقيدة

VMBoundPort
| where TimeGenerated >= ago(24hr)
| where Computer == 'admdemo-appsvr'
| distinct Port, ProcessName

عدد المنافذ المفتوحة عبر الأجهزة

VMBoundPort
| where Ip != "127.0.0.1"
| summarize by Computer, Machine, Port, Protocol
| summarize OpenPorts=count() by Computer, Machine
| order by OpenPorts desc

سجل العمليات في مساحة العمل الخاصة بك من خلال عدد المنافذ المفتوحة

VMBoundPort
| where Ip != "127.0.0.1"
| summarize by ProcessName, Port, Protocol
| summarize OpenPorts=count() by ProcessName
| order by OpenPorts desc

إجمالي السلوك لكل منفذ

يمكن بعد ذلك استخدام هذا الاستعلام لتسجيل المنافذ حسب النشاط، على سبيل المثال، المنافذ التي بها معظم نسبة استخدام الشبكة الواردة / الصادرة، والمنافذ التي بها معظم الاتصالات

// 
VMBoundPort
| where Ip != "127.0.0.1"
| summarize BytesSent=sum(BytesSent), BytesReceived=sum(BytesReceived), LinksEstablished=sum(LinksEstablished), LinksTerminated=sum(LinksTerminated), arg_max(TimeGenerated, LinksLive) by Machine, Computer, ProcessName, Ip, Port, IsWildcardBind
| project-away TimeGenerated
| order by Machine, Computer, Port, Ip, ProcessName

تلخيص الاتصالات الصادرة من مجموعة من الأجهزة

// the machines of interest
let machines = datatable(m: string) ["m-82412a7a-6a32-45a9-a8d6-538354224a25"];
// map of ip to monitored machine in the environment
let ips=materialize(VMComputer
| summarize ips=makeset(todynamic(Ipv4Addresses)) by MonitoredMachine=AzureResourceName
| mvexpand ips to typeof(string));
// all connections to/from the machines of interest
let out=materialize(VMConnection
| where Machine in (machines)
| summarize arg_max(TimeGenerated, *) by ConnectionId);
// connections to localhost augmented with RemoteMachine
let local=out
| where RemoteIp startswith "127."
| project ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=Machine;
// connections not to localhost augmented with RemoteMachine
let remote=materialize(out
| where RemoteIp !startswith "127."
| join kind=leftouter (ips) on $left.RemoteIp == $right.ips
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=MonitoredMachine);
// the remote machines to/from which we have connections
let remoteMachines = remote | summarize by RemoteMachine;
// all augmented connections
(local)
| union (remote)
//Take all outbound records but only inbound records that come from either //unmonitored machines or monitored machines not in the set for which we are computing dependencies.
| where Direction == 'outbound' or (Direction == 'inbound' and RemoteMachine !in (machines))
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine
// identify the remote port
| extend RemotePort=iff(Direction == 'outbound', DestinationPort, 0)
// construct the join key we'll use to find a matching port
| extend JoinKey=strcat_delim(':', RemoteMachine, RemoteIp, RemotePort, Protocol)
// find a matching port
| join kind=leftouter (VMBoundPort 
| where Machine in (remoteMachines) 
| summarize arg_max(TimeGenerated, *) by PortId 
| extend JoinKey=strcat_delim(':', Machine, Ip, Port, Protocol)) on JoinKey
// aggregate the remote information
| summarize Remote=makeset(iff(isempty(RemoteMachine), todynamic('{}'), pack('Machine', RemoteMachine, 'Process', Process1, 'ProcessName', ProcessName1))) by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol

سجلات الأداء

تحتوي السجلات من نوع InsightsMetrics على بيانات أداء من نظام التشغيل الضيف للجهاز الظاهري. يتم تجميع هذه السجلات في فواصل زمنية 60 ثانية، وتتضمن الخصائص في الجدول التالي:

الخاصية ‏‏الوصف
TenantId معرّف فريد لمساحة العمل
نظام المصدر الرؤى
TimeGenerated الوقت الذي تم فيه جمع القيمة (التوقيت العالمي المتفق عليه)
الكمبيوتر اسم FQDN لجهاز الكمبيوتر
الأصل vm.azm.ms
مساحة الاسم فئة عداد الأداء
الاسم اسم عدّاد الأداء
Val جمع القيمة
علامات التفاصيل ذات الصلة بالسجل. راجع الجدول أدناه للتعرف على العلامات المستخدمة مع أنواع السجلات المختلفة.
AgentId معرف فريد لكل عامل كمبيوتر
نوع InsightsMetrics
Resourceid معرف المورد للجهاز الظاهري

يتم سرد عدادات الأداء التي تم تجميعها حالياً في جدول InsightsMetrics في الجدول التالي:

مساحة الاسم Name ‏‏الوصف الوحدة علامات
الكمبيوتر رسالة كشف أخطاء الاتصال نبضات الكمبيوتر
الذاكرة AvailableMB الذاكرة المتوفرة بالبايت Megabytes memorySizeMB - إجمالي حجم الذاكرة
الشبكة WriteBytesPerSecond شبكة بايت الكتابة في الثانية BytesPerSecond NetworkDeviceId - معرف الجهاز
بايت - إجمالي البايت المرسلة
الشبكة ReadBytesPerSecond شبكة البايت المقروءة في الثانية BytesPerSecond networkDeviceId - معرف الجهاز
بايت - إجمالي البايت المتلقاة
معالج UtilizationPercentage نسبة استخدام المعالج نسبة مئوية totalCpus - إجمالي وحدات المعالجة المركزية
LogicalDisk WritesPerSecond يكتب القرص المنطقي في الثانية CountPerSecond mountId - معرف تحميل الجهاز
LogicalDisk WriteLatencyMs كتابة القرص المنطقي زمن انتقال ميلي ثانية ملّي ثانية mountId - معرف تحميل الجهاز
LogicalDisk WriteBytesPerSecond كتابة القرص المنطقي بايت في الثانية BytesPerSecond mountId - معرف تحميل الجهاز
LogicalDisk TransfersPerSecond عمليات النقل على القرص المنطقي في الثانية CountPerSecond mountId - معرف تحميل الجهاز
LogicalDisk TransferLatencyMs زمن انتقال القرص المنطقي بالملّي ثانية ملّي ثانية mountId - معرف تحميل الجهاز
LogicalDisk ReadsPerSecond يقرأ القرص المنطقي في الثانية CountPerSecond mountId - معرف تحميل الجهاز
LogicalDisk ReadLatencyMs قراءة القرص المنطقي الكمون ملّي ثانية ملّي ثانية mountId - معرف تحميل الجهاز
LogicalDisk ReadBytesPerSecond قراءة القرص المنطقي بايت في الثانية BytesPerSecond mountId - معرف تحميل الجهاز
LogicalDisk FreeSpacePercentage النسبة المئوية للمساحة الخالية على القرص المنطقي نسبة مئوية mountId - معرف تحميل الجهاز
LogicalDisk FreeSpaceMB بايت مساحة حرة على القرص المنطقي Megabytes mountId - معرف تحميل الجهاز
diskSizeMB - إجمالي حجم القرص
LogicalDisk BytesPerSecond بايت القرص المنطقي في الثانية BytesPerSecond mountId - معرف تحميل الجهاز

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