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

السؤال المفيد ليس أي التعريفات صحيح عمومًا، بل أي نتيجة سيتصرف القارئ بناءً عليها.

ثلاثة أحداث مختلفة تحمل التسمية نفسها

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

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

عادةً ما تسمّي وثائق المنتج الحالات صراحةً. ويسمّي OpenVPN ملاحظات واجهة الإدارة الاتصالَ عبر TCP ونتيجةَ المصادقة والتهيئةَ المكتملة، وهو التمييز نفسه الذي يحتاجه التقرير. الحالة المسماة connected لا تشهد بأن مشاركة ملف أو عملية قاعدة بيانات نجحت لاحقًا.

عُدّ الجلسات أو الهويات أو الطلبات

حدّد الوحدة قبل تحديد الرقم. عدّ الجلسات يجيب عن عدد مرات استخدام الخدمة، وعدّ الهويات يجيب عن عدد الحسابات المختلفة التي ظهرت، وعدّ الطلبات يجيب عن مقدار العمل المنجز. تختلف البائعون في العدّ أيضًا، ولا يمكن مقارنة استحقاق يُقاس بالمستخدمين برسم بياني يُقاس بالجلسات. اختيار الوحدة الخاطئة هو ما يجعل خطة السعة تُحجَّم بكمية غير صحيحة.

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

العناوين أضعف هوية متاحة. يمكن إعادة إسناد عنوان النفق إلى مستخدم آخر بعد دقائق، ويمكن أن يتشارك مستخدمان عنوانًا واحدًا عبر الترجمة. أرفق معرّف الحساب من حدث المصادقة بدلًا من استنتاج شخص من عنوان في السجل.

اختبر التعريف على يوم واحد حقيقي

خذ يومًا واحدًا من السجلات وعُدّ الحركة نفسها بثلاث طرق. إذا كانت الأرقام الثلاثة متقاربة، فقد لا يهم التعريف كثيرًا في غرضك؛ وإذا اختلفت بمعامل كبير، فيجب أن يذكر التقرير أيّها يستخدم.

journalctl -u openvpn-server@server --since "2026-10-01" --until "2026-10-02" | grep -c "Initialization Sequence Completed"
journalctl -u openvpn-server@server --since "2026-10-01" --until "2026-10-02" | grep -c "Peer Connection Initiated"
awk '/VERIFY OK/ {print $NF}' /var/log/openvpn-server.log | sort -u | wc -l

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

احتفظ بالاستعلام نفسه إلى جانب النتيجة. يستطيع أي شخص إعادة إنتاج مرشح موثّق، والرقم بلا مرشحه ليس قابلًا للتدقيق.

أبلغ عمّا يثبته الحدث

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

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

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

مقالات ذات صلة