العميل OsQuery

الوظيفة

استعلام عن المضيفات باستخدام osquery. يتطلب هذا المكون الإضافي تثبيت الملف القابل للتنفيذ osqueryi على المضيف الذي يتم مراقبته. يتم تشغيل osqueryi عبر وكيل SKOOR الذي يجب أيضًا تثبيته وتشغيله على الجهاز الذي يتم الاستعلام عنه. لا يلزم تشغيل الخدمة الخلفية osqueryd لكي تعمل هذه الاستعلامات.

التنبيهات

يعتمد على قيم الإرجاع التي تم تكوينها في معلمات المهمة.

osquery هي أداة مفتوحة المصدر أنشأتها Facebook للاستعلام عن معلومات متنوعة حول حالة الأجهزة. وتشمل هذه المعلومات ما يلي:

  • العمليات قيد التشغيل

  • وحدات النواة المحملة

  • حسابات المستخدمين النشطة

  • اتصالات الشبكة النشطة

وغير ذلك الكثير. تعرض osquery نظام التشغيل كقاعدة بيانات علائقية عالية الأداء وتسمح بالاستعلام عنها باستخدام عبارات SQL.

يتوفر osquery حاليًا لأنظمة التشغيل التالية:

  • Linux

  • ويندوز

  • OS X

  • FreeBSD

يمكن تثبيته باتباع التعليمات الموجودة على صفحة تنزيلات osquery: https://osquery.io/downloads/. أو يمكن ببساطة نسخ الملف الثنائي osqueryi إلى /usr/bin.

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

$ osqueryi
Using a virtual database. Need help, type '.help'
osquery> select value as string_value1 from cpuid where feature="product_name";
+------------------------------------------+
| string_value1                            |
+------------------------------------------+
| Dual-Core AMD Opteron(tm) Processor 1218 |
+------------------------------------------+
osquery> .quit

يمكنك العثور على مزيد من المعلومات حول osquery هنا: https://osquery.readthedocs.io/en/stable/.

تفاصيل وكيل OsQuery

معلمات وكيل OsQuery

المعلمة

الوصف

الاستعلام

الاستعلام الذي سيتم تنفيذه على قاعدة بيانات osquery على المضيف المحلي (مجمع SKOOR) أو المضيف البعيد.

تسمح القائمة المنسدلة "العلامات" بإدخال متغيرات محددة مسبقًا في الحقول أعلاه، على سبيل المثال $NAME$ لاسم المهمة.

يسرد قسم الأمثلة أدناه بعض الاستعلامات التي يمكن استخدامها. يجب تعيين النتائج التي يعرضها الاستعلام إلى "قيم الإرجاع" و"قيم السلسلة" بالترتيب الصحيح.

بدلاً من ذلك، يمكن التأثير على ترتيب القيم والسلاسل التي يتم إرجاعها عن طريق تكييف الاستعلام لتوفير أسماء القيم والسلاسل المتوقعة، على سبيل المثال، سيقوم الاستعلام التالي بتعيين قيمة memory_free إلى "القيمة المرجعة" الأولى و memory_total إلى "القيمة المرجعة" الثانية:

select memory_total as return_value2, memory_free as return_value1 from memory_info

يعيد الاستعلام التالي قيمتين نصيتين بترتيب محدد:

select feature as string_value1, value as string_value2 from cpuid limit 1

ومع ذلك، لا يزال يتعين تكوين قيم الإرجاع وقيم السلسلة في قسم «معلمات المهمة» (Job parameters) للمهمة حتى تظهر في قسم «القيم» (Values) الخاص بالمهمة.

قيم OsQuery الخاصة بالوكيل وحدود الإنذارات

القيمة / حد الإنذار

الوصف

<عام>

يعتمد على قيم الإرجاع التي تم تكوينها في معلمات المهمة.

رمز الخطأ

رمز خطأ عام للمهمة (انظر قسم رموز أخطاء المهام)

أمثلة على OsQuery الخاص بالوكيل

المثال 1 - الاستعلام عن طراز وحدة المعالجة المركزية (CPU)

الاستعلام

select value as string_value1 from cpuid where feature="product_name"

يتطلب هذا تكوين القيمة النصية التالية:

الناتج 1

المثال 2 - الاستعلام عن إجمالي الذاكرة والذاكرة المتوفرة

الاستعلام

اختر memory_total، memory_free من memory_info

وهذا يتطلب تكوين قيمتي الإرجاع التاليتين:

تحتوي الوحدة على اسم قيمة الإرجاع، ووحدة القياس، والمقسوم عليه، نظرًا لأن osquery تُرجع القيم بالبايت:

الإخراج 2

أمثلة إضافية على الاستعلامات

الاستعلام

الوصف

مثال على الناتج

select username,description,directory from users where username like '%eranger'

قراءة معلومات المستخدم

اختر يوم الأسبوع، اليوم، الشهر، السنة، unix_time من time

قراءة وقت النظام

select count(pid) as total, name from processes group by name order by total desc limit 10

إرجاع عدد العمليات وأسمائها لأكثر 10 عمليات نشاطًا

اختر * من uptime

إرجاع وقت تشغيل النظام