دليل أداة ctstat: مراقبة تتبع الاتصالات في لينكس

نظرة عامة

تركز هذه التدوينة على استعراض آلية عمل الأمر ctstat المخصص لمتابعة إحصائيات تتبع الاتصالات (conntrack) ضمن نواة لينكس ونظام Netfilter. ستتعرف على كيفية استغلال هذه الأداة بكفاءة لرصد مؤشرات الأداء الحية واكتشاف الاختناقات الناجمة عن طفرات حركة المرور أو تسريب الجلسات في بيئات الإنتاج.

تجهيز البيئة وتفعيل وحدة conntrack في النواة

لبدء العمل مع الأداة، يتعين أولاً التأكد من توافر حزمة iproute2 وبرمجية conntrack المسؤولة عن التعامل مع طبقة تتبع الاتصالات:

تثبيت حزمتي iproute2 و conntrack على النظام

بعد اكتمال التثبيت، نُحمّل وحدة النواة nf_conntrack لتمكين محرك تتبع الاتصالات من تجميع الإحصائيات ورصد الجلسات العابرة عبر الشبكة:

تحميل وحدة النواة nf_conntrack

للتحقق من تمركز الأمر ctstat داخل المسارات التنفيذية للنظام وجاهزيته للاستخدام، ننفذ الأمر which ctstat:
تُعد ctstat واجهة استعلام خفيفة لقراءة جدول إحصائيات conntrack دورياً دون إجهاد النواة، وتدعم خيارات تشغيلية محددة:
⚙️ [أبرز الخيارات المتاحة]

-c, --count : تحديد عدد دورات جمع الإحصائيات قبل الخروج تلقائياً.
-i, --interval : ضبط الفاصل الزمني بين التحديثات بالثواني.
-h, --help : استعراض قائمة الخيارات والإرشادات المتاحة.
-V, --version : عرض إصدار الأداة الحالي.

التحقق من مسار ملف ctstat التنفيذي

الاستخدام الأساسي والاطلاع على الخيارات

للتعرف السريع على صيغة الأوامر وكافة المتغيرات المدعومة من قِبل الأداة، يمكن استدعاء شاشة المساعدة عبر الأمر ctstat --help:
يوفر هذا الخيار ملخصاً شاملاً للمعاملات التي تتيح تخصيص الفواصل الزمنية وفلترة البيانات المعروضة.

عرض دليل خيارات ctstat عبر سطر الأوامر

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

التقاط قراءة فورية وحيدة لحالة الاتصالات

رصد التدفق الدوري وتتبع تأثير حركة المرور

لمتابعة تطور حالة الجلسات بفواصل زمنية محددة، ننفذ الأمر ctstat -i 2 -c 3 الذي يقوم بتحديث النتائج كل ثانيتين لثلاث مرات متتالية قبل التوقف:
تساعد هذه الميزة في ملاحظة التغيرات الديناميكية على مستوى الاتصالات خلال نافذة زمنية قصيرة.

تحديث إحصائيات الاتصال كل ثانيتين لثلاث مرات

لاختبار استجابة العدادات وتحفيز النواة على تسجيل اتصالات جديدة، نقوم بإرسال طلب ويب صامت إلى خادم خارجي عبر الأمر curl -s https://www.google.com > /dev/null:

توليد حركة مرور تجريبية عبر curl

عقب تدفق البيانات، نتحقق من التحديثات التي طرأت على مؤشرات التتبع بتشغيل الأمر ctstat -i 1 -c 2:
يوضح هذا الإجراء التبدل في أرقام الجلسات بمعدل قراءة كل ثانية لمرتين متتابعتين، مما يؤكد تفاعل النواة مع الجلسة المنشأة حديثاً.

رصد الارتفاع في عداد الجلسات بعد إرسال الطلب

تصفية الحقول المستهدفة ومطابقة قراءات النواة

عند الرغبة في التركيز على مقاييس محددة وتجاوز البيانات غير الضرورية، يوفر الخيار -k إمكانية انتقاء أعمدة معينة؛ حيث نطلب هنا متابعة الحقول entries,searched,found مرتين متتاليتين عبر الأمر ctstat -k entries,searched,found -c 2:
يتيح هذا الأسلوب عزل إجمالي الجلسات النشطة وعمليات البحث عنها بكفاءة عالية وقراءة مريحة.

تصفية مخرجات ctstat لعرض حقول محددة فقط

وللتأكد من مطابقة النتائج مع الحالة الفعلية المسجلة داخل نظام الملفات الافتراضي للنواة، نقرأ مباشرة ملف العداد عبر الأمر cat /proc/sys/net/netfilter/nf_conntrack_count:
تتيح هذه الخطوة مقارنة القيمة المباشرة لعدد الجلسات مع رقم entries الظاهر في مخرجات ctstat للتحقق التام من دقة البيانات.

مطابقة قراءة ctstat مع ملف nf_conntrack_count في النواة

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