EQL لغة استعلام محرك SKOOR

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


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

الصياغة

COMMAND Object-type WHERE variable Operator value [AND|OR variable Operator value]

COMMAND

GET / CHECK / START / STOP / DELETE / SET / RESET

Object-type

device, job, SLO, ... أو * لأي

WHERE 

كلمة رئيسية

Variable

تتطلب المتغيرات التالية سلسلة كقيمة: Name ، subtype ، address ، netmask ، property("propertyname") تتطلب
المتغيرات التالية قيمة رقمية: id تتطلب
المتغيرات التالية حالة كقيمة: state

Operator

= ، != ، ~= ، ^= ، إلخ. (انظر أدناه)

Value

سلسلة (مع علامات اقتباس "...")، رقم (بدون علامات اقتباس) أو حالة (بدون علامات اقتباس). يتم
تحليل السلاسل (التي بين علامات اقتباس) مثل سلاسل C ويجب تجاوزها بنفس الطريقة. يجب إدخال التعبير العادي "\d{2}$" كـ "\\d{2}$". يمكن أيضًا استخدام \n ، \b إلخ. (يستخدم "\n" لتجاوز "newline").

AND / OR

الكلمة الرئيسية لشروط متعددة WHERE

أوامر EQL

GET

قائمة الكائنات

أوامر EQL إضافية للمهام

الأمر

الوظيفة

CHECK

تنفيذ عملية check now على المهام

START

بدء المهمة (المهام)

STOP

إيقاف المهمة (المهام)

DELETE

حذف المهمة (المهام) (فقط لمستخدمي نوع المسؤول)

SET TO OK

تعيين حالة المهمة (المهام) على "OK"

SET TO WARNING

تعيين حالة المهمة (المهام) على "Warning"

SET TO MINOR

تعيين حالة المهمة (المهام) على "Minor"

SET TO NO DATA

تعيين حالة المهمة (المهام) على "No Data"

SET TO MAJOR

تعيين حالة المهمة (المهام) إلى "Major"

SET TO UNDEFINED

تعيين حالة المهمة (المهام) على "Undefined"

SET TO MAINTENANCE OK

تعيين حالة المهمة (المهام) على "Maintenance OK"

SET TO MAINTENANCE WARNING

تعيين حالة المهمة (المهام) على "Maintenance Warning"

SET TO MAINTENANCE MINOR

تعيين حالة المهمة (المهام) على "Maintenance Minor"

SET TO MAINTENANCE NO DATA

تعيين حالة المهمة (المهام) على "Maintenance No Data"

SET TO MAINTENANCE MAJOR

تعيين حالة المهمة (المهام) إلى "Maintenance Major"

RESET

إعادة تعيين حالة المهمة (المهام) إلى حالتها الأصلية


إذا عثر استعلام الأمر CHECK على أكثر من 50 مهمة، فسيتم تنفيذ check now على أول 50 مهمة وجدولة بقية المهام التي تم العثور عليها لفحصها في الخلفية لتجنب مزامنة عدد كبير جدًا من المهام.

بعد تشغيل CHECK job WHERE subtype="icmp" على سبيل المثال، يتم تغيير سطر الأوامر تلقائيًا إلى GET job WHERE subtype="icmp".

تعمل جميع الأوامر المذكورة أعلاه بشكل متكرر، مما يعني أنه يتم تنفيذ جميع الكائنات الموجودة أسفل الكائن المحدد حاليًا والتي تطابق المعايير.

مشغلات EQL

=

يساوي

!=

لا يساوي

>=

أكبر من أو يساوي

>

أكبر من

<=

أقل من أو يساوي

<

أقل من

عاملات إضافية للسلاسل

~=

مطابقات

^=

يبدأ بـ

~~

يحتوي

$=

ينتهي بـ

!~

لا يتطابق

!^

لا يبدأ بـ

!!

لا يحتوي على

!$

لا ينتهي بـ

عوامل إضافية للخصائص

is defined

is not defined

عاملات إضافية للوظائف والمجدولات

is stopped

متوقف

is not stopped

بدأ

أمثلة EQL

الأمر

وظيفة

GET *

جميع الكائنات (افتراضي)

GET job

جميع المهام

GET device

جميع الأجهزة

GET * where id = 10

جميع الكائنات التي تحتوي على id 10

GET * WHERE name = "foo"

جميع الكائنات التي تحتوي على name "foo"

GET job WHERE name ^= "client-"

جميع المهام التي يبدأ name الخاص بها بـ "client"

GET job WHERE name $= "-snmp"

جميع المهام التي تنتهي name بـ "-snmp"

GET job WHERE state != ok

جميع المهام التي حالتها غير OK

GET slo WHERE name ~~ "DNS"

جميع SLOs التي تحتوي name على "DNS"

GET job WHERE subtype = "icmp"

جميع مهام ICMP

GET job WHERE execution is not stopped

جميع المهام التي بدأت حاليًا

GET job WHERE name ~~ "Mail" AND subtype = "Imap"

جميع مهام IMAP التي يحتوي عنوانها name على "Mail"

GET device WHERE address = "10.1.0.155"

جميع الأجهزة التي تحتوي على address "10.1.0.155"

GET device WHERE address ^= "10.1.1"

جميع الأجهزة التي يبدأ فيها حقل address بـ "10.1.1"

GET device WHERE state = no data

 جميع الأجهزة في حالة No Data

GET device WHERE name ~= "\\d{2}$"

جميع الأجهزة التي يتطابق فيها name مع التعبير العادي

GET slo WHERE state = minor OR state = major 

جميع SLOs في الحالات Minor أو Major

GET device WHERE property("owner") = "Joe" 

جميع الأجهزة التي تتطابق خاصية owner فيها مع "Joe"

GET job WHERE property("service_kpi") IS DEFINED

جميع المهام التي تم تعيين خاصية service_kpi لها

GET device WHERE property("Green, Blue or Red") = "Red"

جميع الأجهزة

GET scheduler WHERE execution is stopped

جميع المجدولين المتوقفين

START job WHERE subtype = icmp

بدء جميع مهام ICMP

STOP job WHERE name ^= "server"

إيقاف جميع المهام التي يبدأ اسمها بـ "server"

SET TO OK job WHERE subtype = "execute"

تعيين جميع المهام قيد التنفيذ إلى الحالة "OK"

SET TO MAINTENANCE MAJOR job where subtype="parsefile"

ضبط جميع مهام parsefile على حالة Maintenance Major


باستخدام EQL، يمكن بسهولة ربط مجموعة من الكائنات أسفل مجموعة أو SLO.

مثال: ربط جميع أجهزة التوجيه والمحولات بخدمة SLO /root/Customer/Services/SLOs/Network

  1. اختر Edit dependency من القائمة المنسدلة لخدمة شبكة SLO

  2.  انتقل إلى /root/Customer/Devices في النافذة على الجانب الأيمن

  3. انقر فوق الزر EQL في الزاوية اليمنى السفلية من النافذة على الجانب الأيمن

  4. أدخل استعلام البحث: GET device WHERE subtype = "router" OR subtype = "switch"

  5. حدد جميع الأجهزة بالنقر فوق مربع الاختيار العلوي

  6. انقر على أحد الأسهم الموجودة على اليسار. يجب أن تظهر الآن جميع الأجهزة في النافذة اليسرى

  7. أكد بالنقر فوق الزر "موافق"


البحث السريع باستخدام عوامل EQL

تتوفر أيضًا عوامل EQL التالية للبحث في مربع نص البحث السريع في SKOOR Engine في رأس عرض تكوين SKOOR Engine:

 =

يساوي

!=

لا يساوي

~=

يتطابق

^=

يبدأ بـ

~~

يحتوي على

$=

ينتهي بـ

!~

لا يتطابق

!^

لا يبدأ بـ

!!

لا يحتوي على

!$

لا ينتهي بـ

أمثلة:

سلسلة البحث

يبحث في جميع

id=15

الكيانات التي يكون فيها عنوان id هو 15

addr=192.168.1.2

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

=dns01

الكائنات التي يكون عنوانها name = "dns01"

^=dns

الكائنات التي يبدأ عنوانها name بـ "dns"

$=01

كائنات ذات name تنتهي بـ "01"

!$01

الكائنات التي تحتوي على name ولا تنتهي بـ "01"

!!dns

الكائنات التي تحتوي على name ولا تحتوي على "dns"

~=DNS.*ch

الكائنات التي تحتوي على name وتحتوي على "DNS" "ch"

~=^DNS.*ch$

الكائنات التي تحتوي على name وتبدأ بـ "DNS" وتنتهي بـ "ch"

~=dns\d\d$

الكائنات التي تحتوي على name التي تحتوي على "dns" متبوعة برقمين