استخدام عامل تشغيل التلخيص

مكتمل

ينشئ عامل تشغيل العد بتبايناته عمودا جديدا بالنتيجة المحسوبة للحولات المحددة.

ترجع العبارة الأولى أدناه عمودا واحدا يمثل قائمة فريدة من قيم عمود النشاط.

ترجع العبارة الثانية عدد صفوف SecurityEvent حيث يساوي EventID 4688، ويتم تجميع العدد حسب العملية والكمبيوتر. بسبب عبارة by، تحتوي مجموعة النتائج على ثلاثة أعمدة: Process و Computer و Count.

قم بتشغيل كل استعلام بشكل منفصل لمشاهدة النتائج.

SecurityEvent | summarize by Activity

SecurityEvent
| where EventID == "4688"
| summarize count() by Process, Computer

وفيما يلي قائمة جزئية بالوظائف التجميعية البسيطة الأكثر شيوعاً المستخدمة مع عامل تشغيل التلخيص.

الوظيفة (الوظائف) ‏‏الوصف
count(), countif() تُرجع عدد السجلات لكل مجموعة تلخيص
dcount(), dcountif() تُرجع تقديرًا لعدد القيم المميزة التي أُخذت بواسطة تعبير عددي في مجموعة التلخيص.
avg(), avgif() تحسب متوسط Expr عبر المجموعة.
max(), maxif() تُرجع الحد الأقصى للقيمة عبر المجموعة.
min(), minif() تُرجع الحد الأدنى للقيمة عبر المجموعة.
percentile() تُرجع تقديرًا للنسبة المئوية المحددة الأقرب رتبة للمجموعة المعرفة بواسطة Expr. وتعتمد الدقة على كثافة المجموعة في منطقة النسبة المئوية.
stdev(), stdevif() تحسب الانحراف المعياري لـ Expr عبر المجموعة، مع الأخذ بعين الاعتبار المجموعة كعيّنة.
sum(), sumif() تحسب مجموع Expr عبر المجموعة.
variance(), varianceif() تحسب تباين Expr عبر المجموعة، مع الأخذ في الاعتبار المجموعة كعيّنة.

مثال وظيفة العد

يمكن تسمية عمود وظيفة تجميعية بشكل صريح عن طريق تضمين "fieldname=" قبل وظيفة التجميع.

ترجع عبارة KQL ثلاثة أعمدة: "cnt" و"AccountType" و"Computer". يستبدل اسم الحقل "cnt" اسم "count_" الافتراضي.

SecurityEvent
| where TimeGenerated > ago(1h)
| where EventID == 4624
| summarize cnt=count() by AccountType, Computer

مثال على الدالة <dcount>

يقوم المثال التالي بإرجاع عدد عناوين IP الفريدة.

SecurityEvent
| summarize dcount(IpAddress)

لنقم بإلقاء نظرة على مثال من العالم الحقيقي

العبارة التالية هي قاعدة للكشف عن فشل كلمة المرور غير الصالحة عبر تطبيقات متعددة لنفس الحساب.

عامل التشغيل where ل ResultDescription يقوم بتصفية مجموعة النتائج للنتائج بما في ذلك "كلمة مرور غير صالحة". بعد ذلك، «تُلخص» العبارة عدداً مميزاً لاسم التطبيق والمجموعة حسب المستخدم وعنوان IP. وأخيراً، هناك الفحص مقابل متغير أنشئ (حداً) لمعرفة ما إذا كان الرقم يتجاوز القدر المسموح به.

let timeframe = 30d;
let threshold = 1;
SigninLogs
| where TimeGenerated >= ago(timeframe)
| where ResultDescription has "Invalid password"
| summarize applicationCount = dcount(AppDisplayName) by UserPrincipalName, IPAddress
| where applicationCount >= threshold