عن المشروع

BitCurrents Log Analyzer هو أداة تحليلية لسجلات Nginx في الوقت الفعلي، مبنية كتطبيق ويب من صفحة واحدة بخلفية Python/Flask وواجهة أمامية ديناميكية بـ JavaScript. يحوّل السجلات الخام إلى لوحات تحكم تفاعلية تركز على الذكاء الأمني، ومراقبة الأداء، وتصور البيانات. يقدم التطبيق ثلاثة أنماط تحليلية مميزة: **الوضع العام** — يقدم نظرة عامة فورية على حركة المرور عبر بطاقات مؤشرات الأداء الرئيسية (إجمالي الطلبات، عناوين IP الفريدة، عدد المحتالين والمشبوهين)، ورسوم بيانية لتوزيع الحركة (بشر مقابل روبوتات مقابل زواحف)، وأنواع الأجهزة، وتوزيع أنظمة التشغيل والمتصفحات، وأكواد حالة HTTP، وأكثر الدول زيارة، وأكثر الصفحات طلبًا. يشمل تصفية لإخفاء عناوين IP الصاخبة وتبديل بين عرض عناوين IP الفريدة وجميع الطلبات. **الوضع الأمني** — يمكّن من البحث النشط عن التهديدات باستخدام تصنيف ديناميكي للتهديدات (كشف التكوين، الأدوات الخلفية، استطلاعات WordPress) عبر ملف `security_patterns.json` القابل للتخصيص. يحتوي على تصورات مستهدفة لأكثر فئات الهجوم وعناوين IP المهاجمة، بالإضافة إلى اكتشاف تلقائي للروبوتات المحتالة التي تدعي أنها زواحف شرعية لكنها تأتي من نطاقات IP غير موثقة. **وضع الأخطاء** — يُشخص مشكلات الخادم من خلال تحليل ذكي لرسائل `error.log` الشائعة (مثل "Backend Unreachable"، "Index Forbidden"). يصور أنواع الأخطاء ومستويات خطورتها، مع دليل استكشاف أخطاء داخل التطبيق للأخطاء الشائعة. يعتمد المشروع على واجهة برمجة تطبيقات IP2Location.io للحصول على بيانات دقيقة للموقع الجغرافي (الدولة، المدينة، مزود الخدمة) واكتشاف متقدم للروبوتات يتجاوز مطابقة سلسلة وكيل المستخدم البسيطة. كما يحافظ على ملف تخزين مؤقت لعناوين IP لحفظ رصيد واجهة برمجة التطبيقات. ### الإعداد والاستخدام المتطلبات الأساسية تشمل pyenv وPython 3.13.0. انسخ المستودع، أنشئ بيئة افتراضية، وثبّت التبعيات من `requirements.txt`. يجب تكوين مفتاح API مجاني من IP2Location عبر ملف `.env`. يعمل الخلفية بـ `python app.py`، وتفتح الواجهة الأمامية مباشرة في المتصفح كملف محلي. يحدد المستخدمون مجلد السجلات، ويستعرضون الملفات المتاحة، ويمكنهم تحديد المسارات المراد تتبعها، ثم الضغط على تحليل. ### تكوين Nginx للنتائج المثلى، يجب أن يتضمن تنسيق سجل الوصول Nginx متغيرات `$http_referer` و`$http_user_agent`. يتم توفير تكوين نموذجي في README. الفكرة من راي كويينجا (@deadflowers @rkooyenga). تم إنشاؤه لمسابقة هاكاثون البرمجة IP2Location 2025.