_____
.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 เป็นเครื่องมือวิเคราะห์บันทึกเว็บที่รวดเร็วโดยใช้โครงสร้างข้อมูลที่น่าจะเป็น มีการกำหนดเป้าหมายไปที่ไฟล์บันทึกขนาดใหญ่มาก ซึ่งโดยทั่วไปแล้วจะเป็นบันทึกของ API มีการใช้งานหน่วยความจำคงที่โดยไม่คำนึงถึงขนาดไฟล์บันทึก และใช้ RAM ประมาณ 4MB
การนับผู้เข้าชมที่ไม่ซ้ำดำเนินการโดยใช้ตัวนับ 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 และ GCC
แพ็คเกจ 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 ได้รับการพัฒนาโดย Frederic Cambus
หน้าแรกของโครงการ: https://www.logswan.org
GitHub: https://github.com/fcambus/logswan