Sysdig – أداة قوية لمراقبة النظام وحل المشاكل في Linux

سيسديج هو أداة مراقبة وتشخيص النظام مفتوحة المصدر وعابرة المنصات وقوية ومرنة لنظام Linux. كما أنها تعمل على نظامي التشغيل Windows و Mac OSX ولكن بوظائف محدودة يمكن استخدامها لتحليل النظام وتفتيشه وتصحيح الأخطاء.

عادة ما تستخدم مزيجًا من مختلف أدوات مراقبة وتشخيص أداء Linux بما فيها تلك المدرجة أدناه لأداء مهام مراقبة وتصحيح أخطاء Linux:

  1. strace – اكتشاف مكالمات النظام والإشارات إلى عملية.
  2. tcpdump – مراقبة حركة المرور الشبكية الخام.
  3. netstat – مراقبة اتصالات الشبكة.
  4. htop – مراقبة العمليات في الوقت الحقيقي.
  5. iftop – مراقبة عرض النطاق الترددي في الوقت الحقيقي.
  6. lsof – عرض الملفات التي تم فتحها بواسطة أي عملية.

ومع ذلك، يدمج سيسديغ كل الأدوات أعلاه والعديد من غيرها في برنامج واحد وبسيط، كما يدعم دعمًا مذهلاً للحاويات. يمكنك التقاط، وحفظ، وتصفية، واستكشاف السلوك الحقيقي (تيار الأحداث) لأنظمة Linux وكذلك الحاويات.

يأتي مع واجهة سطر أوامر وواجهة مستخدم تفاعلية قوية (سيسديغ) تتيح لك مراقبة نشاط النظام في الوقت الحقيقي، أو إجراء تفريغ للتتبع وحفظه للتحليل لاحقًا. يمكنك مشاهدة كيفية عمل سيسديغ من الفيديو أدناه.

ميزات سيسديغ:

  • سريع ومستقر وسهل الاستخدام مع وثائق شاملة.
  • يأتي مع دعم أصلي لتقنيات الحاويات، بما في ذلك Docker و LXC.
  • يمكن تنفيذ البرنامج بلغة البرمجة لوا؛ يوفر مطارق (نصوص خفيفة الوزن بلغة لوا) لمعالجة الأحداث الملتقطة.
  • يدعم تصفية مخرجات مفيدة.
  • دعم لتتبع النظام والتطبيقات.
  • يمكن دمجه مع Ansible و Puppet و Logstash.
  • يمكن تمكين تحليل سجلات متقدم.
  • يوفر أيضًا ميزات تحليل هجمات خوادم Linux (التحليل الجنائي) للهاكرز الأخلاقيين والمزيد من الميزات.

في هذا المقال، سنريك كيفية تثبيت سيسديغ على نظام Linux واستخدامه مع أمثلة أساسية لتحليل النظام ومراقبته وحل المشاكل.

كيفية تثبيت سيسديغ في Linux

تثبيت حزمة sysdig سهل كتشغيل الأمر أدناه، الذي سيتحقق من جميع المتطلبات؛ إذا كان كل شيء في مكانه، سيقوم بتنزيل وتثبيت الحزمة من مستودع Draios APT/YUM.

# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
$ curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

بعد تثبيته، تحتاج إلى تشغيل sysdig كمستخدم root لأنه يتطلب الوصول إلى المناطق الحرجة مثل نظام الملفات /proc، أجهزة /dev/sysdig* ويحتاج إلى تحميل تلقائي لوحدة النواة sysdig-probe (في حالة عدم وجودها)؛ وإلا استخدم الأمر sudo.

أبسط مثال هو تشغيله بدون أي وسيطات، وهذا سيمكنك من عرض تيار الأحداث في نظام Linux الخاص بك بشكل محدث في الوقت الحقيقي:

$ sudo sysdig
Watch Linux System Events

الإخراج أعلاه (البيانات الخام) قد لا يكون منطقيًا بالنسبة لك، للحصول على إخراج أكثر فائدة قم بتشغيل csysdig:

$ sudo csysdig 
Monitor Linux System Events

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

ولكن إذا كنت بحاجة إلى وسيلة بدون ألم لاستخدام sysdig – استمر مع csysdig.

فهم أدوات Sysdig Chisels والمرشحات

أدوات Sysdig Chisels هي نصوص Lua البسيطة لفحص تيار الأحداث sysdig لتنفيذ إجراءات تحليل النظام المفيدة وأكثر. الأمر أدناه سيساعدك في عرض جميع الأدوات المتاحة:

$ sudo sysdig -cl

يُظهر لقطة الشاشة قائمة عينية للمناشير تحت فئات مختلفة.

View Sysdig Chisels

إذا كنت ترغب في معرفة مزيد من المعلومات حول منشار معين، استخدم العلم -i:

$ sudo sysdig -i topprocs_cpu
View Sysdig Chisel Info

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

A straightforward and commonest filter is a basic “class.field=value” check, you can also combine chisels with filters for even more powerful customizations.

لعرض قائمة بفئات الحقول المتاحة، والحقول ووصفها، اكتب:

$ sudo sysdig -l
View Sysdig Field Classes

إنشاء ملف تتبع نظام Linux

لتفريغ إخراج sysdig في ملف للتحليل لاحقًا، استخدم العلم -w بهذه الطريقة.

يمكنك قراءة ملف تفريغ التتبع باستخدام العلم -r:

$ sudo sysdig -r trace.scap

يُستخدم الخيار -s لتحديد كمية البايتات من البيانات التي سيتم التقاطها لكل حدث نظام. في هذا المثال، نحن نقوم بتصفية الأحداث لعملية mongod.

$ sudo sysdig -s 3000 -w trace.scap
$ sudo sysdig -r trace.scap proc.name=mongod
Create MongoDB Trace File

مراقبة عمليات نظام Linux

لعرض عمليات النظام، اكتب:

$ sudo sysdig -c ps
Monitor Linux Processes

مراقبة العمليات حسب استخدام وحدة المعالجة المركزية

لمراقبة أعلى العمليات حسب نسبة استخدام وحدة المعالجة المركزية، قم بتشغيل هذا الأمر:

$ sudo sysdig -c topprocs_cpu
Monitor Processes by CPU Usage

مراقبة الاتصالات الشبكية وإدخال/إخراج النظام

لعرض اتصالات الشبكة في النظام، قم بتشغيل:

$ sudo sysdig -c netstat
Monitor Network Connections

سيساعدك الأمر التالي في عرض أعلى اتصالات الشبكة حسب إجمالي البايتات:

$ sudo sysdig -c topconns

بعد ذلك، يمكنك أيضًا عرض أعلى العمليات حسب إدخال/إخراج الشبكة على النحو التالي:

$ sudo sysdig -c topprocs_net    

مراقبة إدخال/إخراج ملفات النظام

يمكنك إخراج البيانات التي تمت قراءتها وكتابتها بواسطة العمليات على النظام على النحو التالي:

$ sudo sysdig -c echo_fds
Monitor System IO

لعرض أعلى العمليات حسب بايتات القراءة + الكتابة على القرص، استخدم:

$ sudo sysdig -c topprocs_file   

حل مشاكل أداء نظام Linux

لمراقبة نقاط الضعف في النظام (المكالمات البطيئة للنظام)، قم بتنفيذ هذا الأمر:

$ sudo sysdig -c bottlenecks
Troubleshoot Linux Performance

تتبع وقت تنفيذ عملية

لتتبع وقت تنفيذ عملية معينة، يمكنك تشغيل هذا الأمر وتفريغ التتبع في ملف:

$ sudo sysdig -w extime.scap -c proc_exec_time 
Track Process Execution Time

ثم استخدم عامل تصفية لتحديد تفاصيل عن عملية معينة (postgres في هذا المثال) على النحو التالي:

$ sudo sysdig -r extime.scap proc.name=postgres

اكتشاف بطء إدخال/إخراج الشبكة

سيساعدك هذا الأمر البسيط في اكتشاف بطء إدخال/إخراج الشبكة:

$ sudo sysdig -c netlower     

مراقبة إدخالات ملف السجل

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

$ sudo sysdig -c spy_syslog      

يمكنك طباعة أي بيانات كتبتها أي عملية إلى ملف سجل على النحو التالي:

$ sudo sysdig -c spy_logs   

مراقبة طلبات خادم HTTP

إذا كان لديك خادم HTTP مثل Apache أو Nginx يعمل على نظامنا، انظر إلى سجل طلبات الخادم باستخدام هذا الأمر:

$ sudo sysdig -c httplog    
$ sudo sysdig -c httptop   [Print Top HTTP Requests] 
Monitor HTTP Requests

عرض أوامر تسجيل الدخول ونشاط المستخدمين التفاعلي

سيمكنك الأمر أدناه من عرض جميع معرفات القواقل للدخول:

$ sudo sysdig -c list_login_shells

وأخيرًا، يمكنك عرض النشاط التفاعلي لمستخدمي النظام على النحو التالي:

$ sudo sysdig -c spy_users
Monitor User Activity

لمزيد من المعلومات حول الاستخدام والأمثلة، اقرأ صفحات man لـ sysdig و csysdig:

$ man sysdig 
$ man csysdig

المرجع: https://www.sysdig.org/

كما يمكنك التحقق من هذه الأدوات المفيدة لمراقبة أداء Linux:

  1. أدوات تتبع BCC الديناميكية لمراقبة أداء Linux والشبكات وأكثر من ذلك
  2. pyDash – أداة مراقبة أداء Linux عبر الويب
  3. Perf – أداة مراقبة وتحليل الأداء لنظام Linux
  4. Collectl: أداة مراقبة أداء متقدمة شاملة لنظام Linux
  5. Netdata – أداة مراقبة أداء في الوقت الحقيقي لأنظمة Linux
الاستنتاج

تجمع Sysdig بين وظائف العديد من أدوات سطر الأوامر في واجهة واحدة رائعة، مما يتيح لك العمق في أحداث نظام Linux الخاص بك لجمع البيانات، وحفظها للتحليل لاحقًا، وتقديم دعم رائع للحاويات.

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

Source:
https://www.tecmint.com/sysdig-system-monitoring-and-troubleshooting-tool-for-linux/