_____
.xiX*****Xix.
.X7' '4Xk,
dXl 'XX. .
xXXl XXl .
4XXX XX'
. ,x iX' _,,xxii
| ²| ,iX7,xiiXXXXXXXl
| .xi,xiXXXXXXXXXXXX:
. ..iXXiXXXXXXXXXXXXXXX7.
. .xXXXXXXXXXXXXXXX'XXXX7 .
| ,XXXXXXXXXXXXXXXX'XXX7' |
: .XXXXX7*'"' 2XXX7'XX7' |
__/ _____ ____ XX' _____ 47' ___ ___ _____ __
.\_ ___/ _ __/ _/_______ _/______/ / ____/ _ ___/ _____
. / __ Y _ __ __ _________ _____ // ____ _ _ ______ / __///
:/ / | |' / / / / Y / :
|______/_________/____| /____ /_____/_____/____|____/_______/ |
+--------------------- ____/ --- ____/ ----:----------------------h7/dS!----+
. | :
: . : |
| . Logswan . |
| : . |
|_|_______________________|__|
| :
.
Logswan هو محلل سريع لسجلات الويب يستخدم هياكل البيانات الاحتمالية. وهو يستهدف ملفات السجل الكبيرة جدًا، وعادةً ما تكون سجلات واجهات برمجة التطبيقات (APIs). لديه استخدام ثابت للذاكرة بغض النظر عن حجم ملف السجل، ويستهلك حوالي 4 ميجابايت من ذاكرة الوصول العشوائي.
يتم إجراء حساب عدد الزوار الفريدين باستخدام عدادين HyperLogLog (أحدهما لـ IPv4 والآخر لـ IPv6)، مما يوفر دقة نسبية تبلغ 0.10%. يتم استخدام تمثيلات السلسلة لعناوين IP وتفضيلها لأنها توفر دقة أفضل.
تتضمن أهداف تصميم المشروع ما يلي: السرعة وكفاءة استخدام الذاكرة وإبقاء التعليمات البرمجية بسيطة قدر الإمكان.
Logswan هو برنامج ذو رأي :
تمت كتابة Logswan مع أخذ الأمان في الاعتبار ويتم تشغيله في وضع الحماية على OpenBSD (باستخدام التعهد). يتوفر دعم seccomp التجريبي للبنيات المحددة ويمكن تمكينه عن طريق تعيين المتغير ENABLE_SECCOMP
على 1
عند استدعاء CMake. لقد تم أيضًا تشويشها على نطاق واسع باستخدام AFL و Honggfuzz.
الميزات المنفذة حاليا:
يستخدم Logswan نظام البناء CMake
ويتطلب مكتبات Jansson
و libmaxminddb
وملفات الرأس.
pkg_add -r cmake jansson libmaxminddb
pkgin in cmake jansson libmaxminddb
pkg install cmake jansson libmaxminddb
brew install cmake jansson libmaxminddb
apk add cmake gcc make musl-dev jansson-dev libmaxminddb-dev
apt-get install build-essential cmake libjansson-dev libmaxminddb-dev
dnf install cmake gcc make jansson-devel libmaxminddb-devel
mkdir build
cd build
cmake ..
make
تم إنشاء Logswan واختباره بنجاح على OpenBSD وNetBSD وFreeBSD وmacOS وLinux مع كل من Clang وGC.
تتوفر حزم Logswan لـ:
يبحث Logswan عن قواعد بيانات GeoIP2 في ${CMAKE_INSTALL_PREFIX}/share/dbip
افتراضيًا، والذي يشير إلى /usr/local/share/dbip
.
يمكن تعيين دليل مخصص باستخدام المتغير GEOIP2DIR
عند استدعاء CMake:
cmake -DGEOIP2DIR=/var/db/dbip .
يمكن تنزيل قاعدة بيانات DB-IP IP to Country Lite المجانية المرخصة من Creative Commons هنا.
وبدلاً من ذلك، يمكن تنزيل قاعدة بيانات GeoLite2 Country من MaxMind مجانًا هنا، ولكنها تتطلب قبول اتفاقية ترخيص المستخدم النهائي (EULA) وليست مرخصة مجانًا.
logswan [-ghv] [-d db] logfile
إذا كان الملف عبارة عن شرطة واحدة (`-')، تتم قراءة logswan من الإدخال القياسي.
الخيارات هي كما يلي:
-d db Specify path to a GeoIP database.
-g Enable GeoIP lookups.
-h Display usage.
-v Display version.
يقوم Logswan بإخراج بيانات JSON إلى stdout .
تم إصدار Logswan بموجب ترخيص BSD 2-Clause. راجع ملف LICENSE
للحصول على التفاصيل.
تم تطوير Logswan بواسطة فريدريك كامبوس.
الصفحة الرئيسية للمشروع: https://www.logswan.org
جيثب: https://github.com/fcambus/logswan