ترحيل قواعد الكشف عن Splunk إلى Azure Sentinel

توضح هذه المقالة كيفية تحديد قواعد الكشف عن Splunk ومقارنتها وترحيلها إلى قواعد Azure Sentinel المضمنة.

إذا كنت ترغب في ترحيل نشر Splunk Observability، فتعرف على المزيد حول كيفية الترحيل من Splunk إلى سجلات Azure Monitor.

تحديد القواعد وترحيلها

يستخدم Azure Sentinel تحليلات التعلم الآلي لإنشاء حوادث عالية الدقة وقابلة للتنفيذ، وقد تكون بعض عمليات الكشف الحالية متكررة في Azure Sentinel. لذلك، لا تقم بترحيل جميع قواعد الكشف والتحليلات بشكل أعمى. راجع هذه الاعتبارات خلال تحديد قواعد الكشف الحالية.

  • تأكد من تحديد حالات الاستخدام التي تبرر ترحيل القواعد، مع مراعاة أولوية العمل وكفاءته.
  • تحقق من فهمك أنواع قواعد Azure Sentinel.
  • تحقق من فهمك للمصطلحات الخاصة بالقاعدة.
  • راجع أي قواعد لم تشغل أي تنبيهات في الأشهر 6-12 الماضية، وحدد ما إذا كانت لا تزال ذات صلة.
  • تخلص من التهديدات أو التنبيهات منخفضة المستوى التي تتجاهلها بشكل روتيني.
  • استخدم الوظائف الموجودة، وتحقق مما إذا كانت قواعد التحليلات المضمنة في Microsoft Sentinel قد تعالج حالات الاستخدام الحالية. نظرا لأن Microsoft Sentinel يستخدم تحليلات التعلم الآلي لإنتاج أحداث عالية الدقة وقابلة للتنفيذ، فمن المحتمل أن بعض عمليات الكشف الحالية لن تكون مطلوبة بعد الآن.
  • أكد مصادر البيانات المتصلة وراجع طرق اتصال البيانات الخاصة بك. أعد زيارة محادثات جمع البيانات لضمان عمق البيانات واتساعها عبر حالات الاستخدام التي تخطط للكشف عنها.
  • اختبر قدرات تجربة ترحيل SIEM لتحديد ما إذا كانت الترجمة التلقائية مناسبة.
  • استكشف موارد المجتمع مثل SOC Prime Threat Detection Marketplace للتحقق مما إذا كانت القواعد الخاصة بك متوفرة أم لا.
  • ضع في اعتبارك ما إذا كان محول استعلام عبر الإنترنت مثل Uncoder.io يمكن أن يعمل مع القواعد الخاصة بك أم لا.
  • إذا لم تكن القواعد متوفرة أو لا يمكن تحويلها، فيجب إنشاؤها يدويا، باستخدام استعلام KQL. راجع تعيين قواعد لإنشاء استعلامات جديدة.

تعرف على المزيد عن أفضل الممارسات لترحيل قواعد الكشف.

لترحيل قواعد التحليلات الخاصة بك إلى Azure Sentinel:

  1. تأكد من وجود نظام اختبار لكل قاعدة تريد ترحيلها.

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

    2. تأكد من أن فريقك لديه موارد مفيدة لاختبار القواعد التي رحلت.

    3. تأكد من حصولك علي أي مصادر بيانات مطلوبة متصلة، وراجع أساليب اتصال البيانات.

  2. تحقق مما إذا كانت اكتشافاتك متاحة كقوالب مضمنة في Azure Sentinel:

    • استخدم تجربة ترحيل SIEM لأتمتة الترجمة والترحيل.

      لمزيد من المعلومات، راجع استخدام تجربة ترحيل SIEM.

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

      في Azure Sentinel، انتقل إلى علامة التبويب Configuration > Analytics >Rule templates، وأنشئ وحدث كل قاعدة تحليلات ذات صلة.

      لمزيد من المعلومات، راجع الكشف عن التهديدات الجاهزة.

    • إذا كان لديك اكتشافات لا تغطيها القواعد المضمنة في Microsoft Sentinel، فجرب محول استعلام عبر الإنترنت، مثل Uncoder.io أو SPL2KQL لتحويل استعلاماتك إلى KQL.

      حدد شرط المشغل وقاعدة الإجراء، ثم أنشئ استعلام KQL الخاص بك ومراجعته.

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

      1. حدد مصادر البيانات التي ترغب استخدامها في القاعدة الخاصة بك. ستحتاج إلى إنشاء جدول تعيين بين مصادر البيانات وجداول البيانات في Azure Sentinel لتحديد الجداول التي تريد الاستعلام عنها.

      2. حدد أي سمات أو حقول أو كيانات في البيانات الخاصة بك تريد استخدامها في القواعد.

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

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

      4. حدد شرط المشغل وقاعدة الإجراء، ثم أنشئ استعلام KQL الخاص بك ومراجعته. أثناء مراجعة الاستعلام الخاص بك، ضع في اعتبارك موارد إرشادات التحسين KQL.

  3. تأكد من اختبار القاعدة مع كل حالة من حالات الاستخدام ذات الصلة. في حالة عدم توفر النتائج المتوقعة، فقد تحتاج إلى مراجعة KQL واختباره مرة أخرى.

  4. عندما تكون راضياً، يمكنك اعتبار القاعدة التي تم ترحيلها. أنشئ دليل المبادئ لإجراءات القاعدة الخاصة بك عند الحاجة. للمزيد من المعلومات، راجع أتمتة الاستجابة للمخاطر باستخدام أدلة المبادئ في Azure Sentinel.

تعرف على المزيد عن قواعد التحليلات:

مقارنة مصطلحات القاعدة

يساعدك هذا الجدول على توضيح مفهوم القاعدة في Azure Sentinel مقارنةً بـ Splunk.

Splunk Microsoft Sentinel
نوع القاعدة • مجدولة
• الوقت الحقيقي
• استعلام مجدول
• Fusion
• Microsoft Security
• تحليلات سلوك التعلم الآلي من Microsoft Azure
المعايير التعريف في SPL تعريف في KQL
شرط المشغل • عدد النتائج
• عدد المضيفين
• عدد المصادر
• مخصص
الحد: عدد نتائج الاستعلام
الإجراء • إضافة إلى التنبيهات التي شغلت
• حدث التسجيل
• نتائج الإخراج للبحث عن
• وأكثر
• أنشئ تنبيه أو حدث
• تكامل مع Logic Apps

تعيين نماذج القواعد ومقارنتها

استخدم هذه العينات لمقارنة القواعد وتعيينها من Splunk إلى Azure Sentinel في سيناريوهات مختلفة.

أوامر البحث العامة

الأمر الخاص بـ SPL ‏‏الوصف عامل تشغيل خاص بـ KQL مثال خاص بـ KQL
chart/ timechart تُرجع النتائج في إخراج جدولي لتخطيط السلاسل الزمنية. عامل تشغيل العرض … | render timechart
dedup يعمل علي إزالة النتائج اللاحقة التي تطابق معيارًا محددًا. distinct
summarize
… | summarize by Computer, EventID
eval يحسب التعبير. تعرف على أوامر التقييم المنتشرة. extend T | extend duration = endTime - startTime
fields يزيل الحقول من نتائج البحث. project
project-away
T | project cost=price*quantity, price
head/tail يُرجع أول أو آخر نتيجتين. top T | top 5 by Name desc nulls last
lookup يضيف قيم الحقل من مصدر خارجي. externaldata
بحث
مثال خاص بـ KQL
rename يعيد تسمية حقل. استخدم أحرف بدل لتحديد حقول متعددة. إعادة تسمية المشروع T | project-rename new_column_name = column_name
rex يحدد أسماء المجموعات باستخدام التعبيرات العادية لاستخراج الحقول. matches regex … | where field matches regex "^addr.*"
search يقوم بتصفية النتائج إلى النتائج التي تطابق تعبير البحث. search search "X"
sort يفرز نتائج البحث حسب الحقول المحددة. sort T | sort by strlen(country) asc, price desc
stats يوفر الإحصائيات، مجمعة اختيارياً حسب الحقول. تعرف على المزيد عن أوامر الإحصائيات الشائعة. summarize مثال خاص بـ KQL
mstats على غرار الإحصائيات، تُستخدم في المقاييس بدلاً من الأحداث. summarize مثال خاص بـ KQL
table يحدد الحقول المطلوب الاحتفاظ بها في مجموعة النتائج، ويحتفظ بالبيانات بتنسيق جدولي. project T | project columnA, columnB
top/rare يعرض القيم الأكثر شيوعًا أو الأقل شيوعًا للحقل. top T | top 5 by Name desc nulls last
transaction مجموعات نتائج البحث في المعاملات.

مثال على SPL
مثال: row_window_session مثال خاص بـ KQL
eventstats يولد إحصائيات موجزة من الحقول في الأحداث الخاصة بك ويحفظ تلك الإحصائيات في حقل جديد.

مثال على SPL
أمثلة:
join
make_list
mv-expand
مثال خاص بـ KQL
streamstats أوجد المجموع التراكمي للحقل.

مثال علي SPL:
... | streamstats sum(bytes) as bytes _ total \| timechart
row_cumsum ...\| serialize cs=row_cumsum(bytes)
anomalydetection ابحث عن الحالات الشاذة في الحقل المُحدد.

مثال على SPL
series_decompose_anomalies() مثال خاص بـ KQL
where تصفية نتائج البحث باستخدام التعبيرات eval. تستخدم للمقارنة بين مجالين مختلفين. حيث T | where fruit=="apple"

أمر البحث: مثال علي KQL

Users 
| where UserID in ((externaldata (UserID:string) [
@"https://storageaccount.blob.core.windows.net/storagecontainer/users.txt" 
h@"?...SAS..." // Secret token to access the blob 
])) | ... 

أمر stats : مثال KQL

Sales 
| summarize NumTransactions=count(), 
Total=sum(UnitPrice * NumUnits) by Fruit, 
StartOfMonth=startofmonth(SellDateTime) 

الأمر mstats: مثال على KQL

T | summarize count() by price_range=bin(price, 10.0) 

أمر المعاملة: مثال SPL

sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration

أمر المعاملة: مثال KQL

let Events = MyLogTable | where type=="Event";
Events
| where Name == "Start"
| project Name, City, ActivityId, StartTime=timestamp
| join (Events
| where Name == "Stop"
| project StopTime=timestamp, ActivityId)
on ActivityId
| project City, ActivityId, StartTime, 
Duration = StopTime – StartTime

استخدم row_window_session() لحساب قيم بدء جلسة العمل لعمود في مجموعة صفوف متسلسلة.

...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))

الأمر eventstats: مثال على SPL

… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time

الأمر eventstats: مثال على KQL

فيما يلي مثال على العبارة join:

let binSize = 1h;
let detail = SecurityEvent 
| summarize detail_count = count() by EventID,
tbin = bin(TimeGenerated, binSize);
let summary = SecurityEvent
| summarize sum_count = count() by 
tbin = bin(TimeGenerated, binSize);
detail 
| join kind=leftouter (summary) on tbin 
| project-away tbin1

فيما يلي مثال على العبارة make_list:

let binSize = 1m;
SecurityEvent
| where TimeGenerated >= ago(24h)
| summarize TotalEvents = count() by EventID, 
groupBin =bin(TimeGenerated, binSize)
|summarize make_list(EventID), make_list(TotalEvents), 
sum(TotalEvents) by groupBin
| mvexpand list_EventID, list_TotalEvents

أمر anomalydetection: مثال على SPL

sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price

أمر anomalydetection: مثال على KQL

let LookBackPeriod= 7d;
let disableAccountLogon=SignIn
| where ResultType == "50057"
| where ResultDescription has "account is disabled";
disableAccountLogon
| make-series Trend=count() default=0 on TimeGenerated 
in range(startofday(ago(LookBackPeriod)), now(), 1d)
| extend (RSquare,Slope,Variance,RVariance,Interception,
LineFit)=series_fit_line(Trend)
| extend (anomalies,score) = 
series_decompose_anomalies(Trend)

أوامر eval الشائعة

الأمر الخاص بـ SPL ‏‏الوصف مثال على SPL أمر KQL مثال خاص بـ KQL
abs(X) تُرجع القيمة المطلقة لـ X. abs(number) abs() abs(X)
case(X,"Y",…) يأخذ أزواجا من X وY، وسيطات إذ X تكون الوسيطات تعبيرات منطقية. أثناء تقييمها إلى TRUE، ترجع الوسيطات الوسيطة المقابلة Y. مثال على SPL case مثال خاص بـ KQL
ceil(X) حد أعلي رقم X. ceil(1.9) ceiling() ceiling(1.9)
cidrmatch("X",Y) يحدد عناوين IP التي تنتمي إلى شبكة فرعية معينة. cidrmatch
("123.132.32.0/25",ip)
ipv4_is_match()
ipv6_is_match()
ipv4_is_match('192.168.1.1', '192.168.1.255')
== false
coalesce(X,…) تُرجع القيمة الأولى غير الفارغة. coalesce(null(), "Returned val", null()) coalesce() coalesce(tolong("not a number"),
tolong("42"), 33) == 42
cos(X) يحسب جيب تمام X. n=cos(0) cos() cos(X)
exact(X) يقيّم التعبير X باستخدام حساب النقطة العائمة مزدوج الدقة. exact(3.14*num) todecimal() todecimal(3.14*2)
exp(X) ترجع eX. exp(3) exp() exp(3)
if(X,Y,Z) في حالة X تقييم إلى TRUE، تكون النتيجة هي الوسيطة الثانية Y. في حالة X تقييم إلى FALSE، تقيم النتيجة إلى الوسيطة الثالثة Z. if(error==200,
"OK", "Error")
iif() مثال خاص بـ KQL
isbool(X) يرجع TRUE إذا كان X منطقيًا. isbool(field) iif()
gettype
iif(gettype(X) =="bool","TRUE","FALSE")
isint(X) يرجع TRUE إذا كان X عددًا صحيحًا. isint(field) iif()
gettype
مثال خاص بـ KQL
isnull(X) يرجع TRUE إذا كان X فارغًا. isnull(field) isnull() isnull(field)
isstr(X) يرجع TRUE إذا كانت X سلسلة. isstr(field) iif()
gettype
مثال خاص بـ KQL
len(X) تُرجع هذه الدالة طول حرف سلسلة X. len(field) strlen() strlen(field)
like(X,"y") يرجع TRUE إذا كان و فقط إذا كان X مثل نمط SQLite في Y. like(field, "addr%") has
المحتويات
startswith
matches regex
مثال خاص بـ KQL
log(X,Y) يرجع سجل الوسيطة X الأولى باستخدام الوسيطة Y الثانية كأساس. وتكون القيمة الافتراضية لـ Y هي 10. log(number,2) log
log2
log10
log(X)

log2(X)

log10(X)
lower(X) ترجع القيمة الصغيرة لـ X. lower(username) tolower tolower(username)
ltrim(X,Y) ترجع X مع اقتطاع الأحرف في المعلمة Y من الجانب الأيسر. الإخراج الافتراضي هو مسافات Y وعلامات تبويب. ltrim(" ZZZabcZZ ", " Z") trim_start() trim_start(“ ZZZabcZZ”,” ZZZ”)
match(X,Y) تُرجع إذا تطابق X مع نمط التعبير العادي Y. match(field, "^\d{1,3}.\d$") matches regex … | where field matches regex @"^\d{1,3}.\d$")
max(X,…) ترجع القيمة القصوى في عمود. max(delay, mydelay) max()
arg_max()
… | summarize max(field)
md5(X) تُرجع تجزئة MD5 لقيمة سلسلةX. md5(field) hash_md5 hash_md5("X")
min(X,…) تُرجع الحد الأدنى للقيمة في عمود. min(delay, mydelay) min_of()
min()
arg_min
مثال خاص بـ KQL
mvcount(X) يرجع عدد (إجمالي) X القيم. mvcount(multifield) dcount …| summarize dcount(X) by Y
mvfilter(X) يصفي حقل متعدد القيم استنادًا إلى التعبير المنطقي X. mvfilter(match(email, "net$")) mv-apply مثال خاص بـ KQL
mvindex(X,Y,Z) ترجع مجموعة فرعية من الوسيطة متعددة القيم X من موضع البدء (المستند إلى الصفر) Y إلى Z (اختياري). mvindex( multifield, 2) array_slice array_slice(arr, 1, 2)
mvjoin(X,Y) نظرًا لحقل X متعدد القيم ومحدد Yسلسلة، ويربط القيم X الفردية لاستخدام Y. mvjoin(address, ";") strcat_array مثال خاص بـ KQL
now() لعرض الوقت الحالي المُمثل بوقت Unix. now() now() now()

now(-2d)
null() لا يقبل الوسيطات والعوائد NULL. null() قيمة فارغة null
nullif(X,Y) يشمل وسيطتين، X، وY وإرجاع X في حالة كانت الوسيطات مختلفة. خلاف ذلك، يعود NULL. nullif(fieldA, fieldB) iif iif(fieldA==fieldB, null, fieldA)
random() ترجع هذه الدالة رقما عشوائيًا مستعارًا بين 0 إلى 2147483647. random() rand() rand()
relative_ time(X,Y) نظرا إلى وقت X الفترة ومحدد Yالوقت النسبي، تُرجع قيمة Y وقت الفترة المطبقة على X. relative_time(now(),"-1d@d") unix time مثال خاص بـ KQL
replace(X,Y,Z) ترجع سلسلة تم تشكيلها عن طريق استبدال سلسلة Z لكل تكرار لسلسلة Y التعبير العادية في السلسلة X. تاريخ الإرجاع مع تبديل أرقام الشهر واليوم.
على سبيل المثال، فيما يتعلق بـ 4/30/2015 الإدخال، يكون الإخراج هو 30/4/2009:

replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/")
replace() مثال خاص بـ KQL
round(X,Y) يرجع X مقربًا إلى عدد المنازل العشرية المحددة بواسطة Y. الافتراضي هو التقريب إلى عدد صحيح. round(3.5) round round(3.5)
rtrim(X,Y) يرجع X مع أحرف Y اقتطاع من الجانب الأيمن. في حالة Y لم يتم تحديدها، يتم اقتطاع المسافات وعلامات التبويب. rtrim(" ZZZZabcZZ ", " Z") trim_end() trim_end(@"[ Z]+",A)
searchmatch(X) ترجع TRUE إذا كان الحدث يطابق سلسلة البحثX. searchmatch("foo AND bar") iif() iif(field has "X","Yes","No")
split(X,"Y") ترجع X كخانة متعددة القيم، مقسمة حسب المحدد Y. split(address, ";") split() split(address, ";")
sqrt(X) يرجع الجذر التربيعي لرقم X. sqrt(9) sqrt() sqrt(9)
strftime(X,Y) ترجع قيمة X وقت الفترة المعروضة باستخدام التنسيق المحدد بواسطة Y. strftime(_time, "%H:%M") format_datetime() format_datetime(time,'HH:mm')
strptime(X,Y) بالنظر إلى الوقت الذي تمثله سلسلة X، ترجع القيمة التي حللت من التنسيق Y. strptime(timeStr, "%H:%M") format_datetime() مثال خاص بـ KQL
substr(X,Y,Z) يرجع حقل X سلسلة فرعية من موضع البدء (مستند إلى واحد) Y للأحرف Z (اختياري). substr("string", 1, 3) substring() substring("string", 0, 3)
time() يرجع وقت ساعة الحائط بدقة ميكروثانية. time() format_datetime() مثال خاص بـ KQL
tonumber(X,Y) تحول سلسلة X الإدخال إلى رقم، إذ أن Y (القيمة الافتراضية الاختيارية هي 10) تحدد قاعدة الرقم الذي سيحول إليه. tonumber("0A4",16) toint() toint("123")
tostring(X,Y) الوصف مثال على SPL tostring() tostring(123)
typeof(X) ترجع تمثيل سلسلة لنوع الحقل. typeof(12) gettype() gettype(12)
urldecode(X) يرجع عنوان URL X الذي تم فك ترميزه. مثال على SPL url_decode مثال خاص بـ KQL

مثال علي الحالة (X,"Y",…) SPL

case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")

مثال علي الحالة (X,"Y",…) KQL

T
| extend Message = case(error == 404, "Not found", 
error == 500,"Internal Server Error", "OK") 

مثال على KQL if(X,Y,Z)

iif(floor(Timestamp, 1d)==floor(now(), 1d), 
"today", "anotherday")

مثال على isint(X) KQL

iif(gettype(X) =="long","TRUE","FALSE")

مثال على isstr(X) KQL

iif(gettype(X) =="string","TRUE","FALSE")

مثال على like(X,"y")

… | where field has "addr"

… | where field contains "addr"

… | where field startswith "addr"

… | where field matches regex "^addr.*"

مثال علي min(X,…) KQL

min_of (expr_1, expr_2 ...)

…|summarize min(expr)

…| summarize arg_min(Price,*) by Product

مثال على mvfilter(X) KQL

T | mv-apply Metric to typeof(real) on 
(
 top 2 by Metric desc
)

مثال علي mvjoin(X,Y) KQL

strcat_array(dynamic([1, 2, 3]), "->")

مثال KQL علي الوقت النسبي (X,Y)

let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01))/1s 
};

مثال على استبدال(X,Y,Z) KQL

replace( @'^(\d{1,2})/(\d{1,2})/', @'\2/\1/',date)

مثال على strptime(X,Y) KQL

format_datetime(datetime('2017-08-16 11:25:10'),
'HH:mm')

مثال على time() KQL

format_datetime(datetime(2015-12-14 02:03:04),
'h:m:s')

tostring(X,Y)

ترجع قيمة X حقل كسلسلة.

  • في حالة كانت قيمة X رقمًا، X يعاد تنسيقها إلى قيمة سلسلة.
  • إذا كانت X قيمة منطقية، X يعاد تنسيقها إلى TRUE أو FALSE.
  • في حالة كانت X الوسيطة رقمًا، فإن الوسيطة Y الثانية اختيارية ويمكن أن تكون hex إما (تحويل X إلى رقم سداسي عشري)، commas أو (تنسيقات X بفواصل ومنزلتين عشريتين)، أو duration (تحويل X من تنسيق زمني بالثواني إلى تنسيق زمني قابل للقراءة: HH:MM:SS).
مثال على tostring(X,Y) SPL

هذا المثال يرجع:

foo=615 and foo2=00:10:15:

… | eval foo=615 | eval foo2 = tostring(
foo, "duration")

مثال على urldecode(X) SPL

urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")

مثال على أوامر إحصائيات شائعة KQL

الأمر الخاص بـ SPL ‏‏الوصف أمر KQL مثال خاص بـ KQL
avg(X) ترجع متوسط قيم الحقل X. avg() avg(X)
count(X) ترجع عدد تكرارات الحقل X. للإشارة إلى قيمة حقل معينة لمطابقتها، نسق X باعتباره eval(field="value"). count() summarize count()
dc(X) ترجع عدد القيم المميزة للحقل X. dcount() …\| summarize countries=dcount(country) by continent
earliest(X) ترجع القيمة التي تمت عرضها حسب الترتيب الزمني لـ X. arg_min() … \| summarize arg_min(TimeGenerated, *) by X
latest(X) يعرض القيمة التي تمت عرضها حسب الترتيب الزمني لـ X. arg_max() … \| summarize arg_max(TimeGenerated, *) by X
max(X) ترجع القيمة القصوى للحقل X. إذا كانت قيم X غير رقمية، يعثر على القيمة القصوى عبر الترتيب الأبجدي. max() …\| summarize max(X)
median(X) تعيد هذه الدالة القيمة المتوسطة للحقل X. القيمة المئوية() …\| summarize percentile(X, 50)
min(X) تعيد القيمة القصوى للحقل X. إذا كانت قيم X غير رقمية، يعثر على القيمة الدنيا من خلال الترتيب الأبجدي. min() …\| summarize min(X)
mode(X) ترجع القيمة الأكثر تكراراً للحقل X. top-hitters() …\| top-hitters 1 of Y by X
perc(Y) ترجع القيمة المئوية X للحقل Y. على سبيل المثال، perc5(total) ترجع القيمة المئوية الخامسة الخاصة بحقل total. القيمة المئوية() …\| summarize percentile(Y, 5)
range(X) ترجع الفرق بين القيم القصوى والحد الأدنى للحقل X. range() range(1, 3)
stdev(X) يرجع نموذج الانحراف المعياري للحقل X. stdev stdev()
stdevp(X) يرجع الانحراف المعياري لفحص المحتوى للحقل X. stdevp() stdevp()
sum(X) يرجع مجموع قيم الحقل X. sum() sum(X)
sumsq(X) يرجع مجموع مربعات قيم الحقل X.
values(X) ترجع قائمة بجميع القيم المميزة للحقل X كإدخال متعدد القيم. ترتب القيم أبجديًا. make_set() …\| summarize r = make_set(X)
var(X) يرجع تباين العينة للحقل X. variance variance(X)

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

في هذه المقالة، تعلمت كيفية تعيين قواعد الترحيل الخاصة بك من Splunk إلى Azure Sentinel.