أساسيات Log Analytics وKQL
أدخل السجلات التشخيصية إلى مساحة عمل Log Analytics، واكتب استعلامات Kusto Query Language لتصفية البيانات التشغيلية وتجميعها وعرضها بصريًا.
أساسيات Log Analytics وKQL درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ما مساحة عمل Log Analytics؟
تُعد مساحة عمل Log Analytics مخزن البيانات المركزي في Azure Monitor لبيانات السجلات والبيانات التليمترية. عند تكوين إعدادات التشخيص على مورد Azure، تتدفق السجلات والمقاييس المنظمة إلى مساحة العمل. ويمكنك بعد ذلك الاستعلام عن البيانات باستخدام لغة استعلام Kusto (KQL). ولدى مساحة العمل سياسة احتفاظ خاصة بها (الافتراضي 30 يومًا، وبحد أقصى 730 يومًا) وعناصر تحكم في الوصول.
# Create a Log Analytics workspace
az monitor log-analytics workspace create \
--resource-group myRG \
--workspace-name myWorkspace \
--location eastus \
--retention-time 90إرسال سجلات التشخيص إلى مساحة عمل
يمكن لكل مورد من موارد Azure إصدار سجلات التشخيص، وهي سجلات تفصيلية للعمليات مثل استدعاءات API وأحداث المصادقة وتنفيذ الاستعلامات. ويمكنك تمكينها من خلال إعدادات التشخيص على المورد، مع تحديد مساحة عمل Log Analytics كوجهة. وتشمل فئات السجلات الشائعة AuditEvent لـ Key Vault، وAppServiceHTTPLogs لـ App Service، وNetworkSecurityGroupFlowEvent لـ NSGs.
# Enable diagnostic settings to send Key Vault logs to Log Analytics
az monitor diagnostic-settings create \
--name 'KVLogs' \
--resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myKV \
--workspace myWorkspace \
--logs '[{"category":"AuditEvent","enabled":true}]'مقدمة إلى صياغة KQL
إن لغة استعلام Kusto (KQL) هي لغة استعلام للقراءة فقط لتحليل بيانات السجلات. وتُقرأ استعلامات KQL من اليسار إلى اليمين باعتبارها مسارًا متتابعًا: ابدأ باسم جدول، ثم مرر البيانات عبر عوامل التشغيل باستخدام (|). وتشمل عوامل التشغيل الشائعة where للتصفية، وproject لتحديد الأعمدة، وsummarize للتجميع، وorder by للفرز. وتكون KQL حساسة لحالة الأحرف في أسماء الأعمدة، لكنها غير حساسة لها في الكلمات الأساسية.
// Basic KQL query structure
AzureActivity
| where TimeGenerated > ago(24h)
| where OperationNameValue == 'MICROSOFT.COMPUTE/VIRTUALMACHINES/DELETE'
| project TimeGenerated, Caller, ResourceGroup, Resource
| order by TimeGenerated descالتصفية باستخدام عامل التشغيل Where
يعمل عامل التشغيل where على تصفية الصفوف باستخدام تعبيرات منطقية. ويمكنك دمج الشروط باستخدام and وor وnot. وينفذ عامل التشغيل has بحثًا غير حساس لحالة الأحرف عن الكلمات الكاملة داخل السلاسل النصية، بينما ينفذ contains بحثًا عن سلسلة فرعية. ويختبر عامل التشغيل in انتماء قيمة إلى قائمة. استخدم ago() للتعبير عن النطاقات الزمنية النسبية مثل ago(1h) أو ago(7d).
// Filter for failed HTTP requests in the last hour
AppRequests
| where TimeGenerated > ago(1h)
| where Success == false
| where ResultCode in (500, 502, 503)
| project TimeGenerated, Name, ResultCode, DurationMs
| order by DurationMs descتجميع البيانات باستخدام Summarize
يحسب عامل التشغيل summarize عمليات التجميع عبر الصفوف. وتشمل دوال التجميع الشائعة count() وsum() وavg() وmax() وmin() وdcount() لحساب القيم المميزة. ويمكنك التجميع حسب عمود واحد أو عدة أعمدة باستخدام عبارة by. وتقرّب الدالة bin() الطوابع الزمنية إلى فواصل زمنية لإجراء تجميع السلاسل الزمنية.
// Count failed requests per hour per endpoint
AppRequests
| where TimeGenerated > ago(24h)
| where Success == false
| summarize FailureCount = count() by bin(TimeGenerated, 1h), Name
| order by TimeGenerated desc, FailureCount descضم الجداول في KQL
تدعم KQL عامل التشغيل join لربط البيانات من جداول متعددة. ونوع الضم الافتراضي هو innerunique، ولكن يمكنك تحديد inner أو leftouter أو rightouter أو fullouter. ومن الأنماط الشائعة ضم AzureActivity مع AzureMetrics لربط التغييرات الإدارية بانخفاضات الأداء. ويُعد عامل التشغيل lookup بديلًا أخف لإثراء الصفوف من جدول مرجعي صغير.
// Correlate VM restarts with CPU spike events
AzureActivity
| where OperationNameValue has 'restart'
| join kind=leftouter (
AzureMetrics
| where MetricName == 'Percentage CPU'
| where Average > 90
) on ResourceId
| project TimeGenerated, Resource, Averageتصوير نتائج KQL
بعد كتابة استعلام في مدخل Log Analytics، يمكنك عرض النتائج في صورة مخطط زمني أو مخطط شريطي أو مخطط دائري أو جدول باستخدام عامل التشغيل render. ويمكنك أيضًا تثبيت أي نتيجة استعلام في Azure Dashboard أو حفظها كمصنف. ويحوّل الأمر render timechart استعلام summarize للسلاسل الزمنية إلى مخطط خطي فوري لتحليل الاتجاهات.
// Render a time chart of request counts per 5-minute interval
AppRequests
| where TimeGenerated > ago(4h)
| summarize RequestCount = count() by bin(TimeGenerated, 5m)
| render timechartتنبيهات البحث في السجلات
تشغّل تنبيهات البحث في السجلات استعلام KQL وفق جدول زمني، وتُطلَق عندما تستوفي النتيجة شرطًا معينًا، مثل أن يكون عدد النتائج أكبر من صفر أو أن يتجاوز عمود رقمي حدًا معينًا. وهي أكثر مرونة من تنبيهات المقاييس، إذ يمكنك الاستعلام عن أي بيانات سجل عبر جداول متعددة. ويمكن تكوين تكرار التقييم والنافذة الزمنية بشكل مستقل، مثل التشغيل كل 5 دقائق على بيانات آخر 15 دقيقة.
// Example log search alert condition: more than 5 exceptions in 15 min
AppExceptions
| where TimeGenerated > ago(15m)
| summarize ExceptionCount = count()
// Alert when ExceptionCount > 5مرجع جداول السجلات الشائعة
يخزن Azure Monitor السجلات في جداول معروفة. ويسجل AzureActivity العمليات على مستوى الاشتراك. ويحتوي SecurityEvent على سجلات أمان Windows من الأجهزة الظاهرية التي تستخدم عامل Log Analytics. ويعرض Heartbeat اتصال العامل (صف واحد كل دقيقة لكل جهاز ظاهري متصل). وتأتي AppRequests وAppExceptions وAppDependencies من Application Insights. وتُعد معرفة أسماء هذه الجداول أمرًا أساسيًا لكتابة استعلامات تشغيلية فعالة.
الاحتفاظ بمساحة العمل والتكاليف
يتكون تسعير Log Analytics من مكونين: استيعاب البيانات (لكل جيجابايت يتم استيعابها) والاحتفاظ بالبيانات (أول 30 يومًا مجانية، ثم تُفرض رسوم لكل جيجابايت شهريًا على المدة التي تتجاوز الإعداد الافتراضي). ويمكنك خفض التكاليف من خلال تصفية فئات السجلات كثيرة الضوضاء قبل استيعابها، واستخدام Basic Logs للبيانات كبيرة الحجم منخفضة القيمة بسعر مخفض، وأرشفة البيانات القديمة إلى Azure Data Explorer أو التخزين البارد للاحتفاظ بها على المدى الطويل لأغراض الامتثال.
نماذج التحكم في الوصول إلى مساحة العمل
تدعم مساحات عمل Log Analytics نموذجي تحكم في الوصول. في وضع workspace-context، يمكن للمستخدم الذي لديه وصول للقراءة إلى مساحة العمل الاستعلام عن جميع الجداول. أما في وضع resource-context، فلا يمكن للمستخدم الاستعلام إلا عن السجلات الصادرة من الموارد التي يملك إذن RBAC لقراءتها، حتى من دون وصول صريح إلى مساحة العمل. ويوصى بوضع resource-context للمؤسسات الكبيرة التي تملك فيها فرق مختلفة موارد مختلفة.
تحقق سريع
اختبر مدى فهمك لمفاهيم Microsoft Azure Fundamentals (AZ-900) الواردة في هذا الدرس.
مراجعة الدرس
تعلمت في هذا الدرس ما يلي: تعمل مساحات عمل Log Analytics على توحيد بيانات سجلات التشخيص من موارد Azure، وتتيح عوامل تشغيل KQL مثل where وsummarize وrender تصفية السجلات وتجميعها وتصويرها، كما تُطلِق تنبيهات البحث في السجلات استجابات مؤتمتة عندما تستوفي نتيجة استعلام KQL شرطًا محددًا. بعد ذلك سنستكشف Application Insights للحصول على بيانات تليمترية على مستوى التطبيق.
الأسئلة الشائعة
هل درس «أساسيات Log Analytics وKQL» مجاني؟
نعم — نص درس «أساسيات Log Analytics وKQL» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «أساسيات Log Analytics وKQL»؟
أدخل السجلات التشخيصية إلى مساحة عمل Log Analytics، واكتب استعلامات Kusto Query Language لتصفية البيانات التشغيلية وتجميعها وعرضها بصريًا. تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «أساسيات Log Analytics وKQL»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مقاييس Azure Monitor والتنبيهات
- أساسيات Log Analytics وKQL
- Application Insights
- لوحات معلومات Azure وWorkbooks