_____
.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 adalah penganalisis log Web cepat yang menggunakan struktur data probabilistik. Ini ditargetkan pada file log yang sangat besar, biasanya log API. Ini memiliki penggunaan memori yang konstan terlepas dari ukuran file log, dan membutuhkan sekitar 4MB RAM.
Penghitungan pengunjung unik dilakukan menggunakan dua penghitung HyperLogLog (satu untuk IPv4, dan satu lagi untuk IPv6), memberikan akurasi relatif sebesar 0,10%. Representasi string dari alamat IP digunakan dan disukai karena menawarkan presisi yang lebih baik.
Sasaran desain proyek meliputi: kecepatan, efisiensi penggunaan memori, dan menjaga kode sesederhana mungkin.
Logswan adalah perangkat lunak berpendirian :
Logswan ditulis dengan mempertimbangkan keamanan dan berjalan dalam sandbox di OpenBSD (menggunakan janji). Dukungan seccomp eksperimental tersedia untuk arsitektur tertentu dan dapat diaktifkan dengan mengatur variabel ENABLE_SECCOMP
ke 1
saat menjalankan CMake. Itu juga telah dikaburkan secara ekstensif menggunakan AFL dan Honggfuzz.
Fitur yang saat ini diterapkan:
Logswan menggunakan sistem build CMake
dan memerlukan pustaka serta file header Jansson
dan 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 telah berhasil dibangun dan diuji pada OpenBSD, NetBSD, FreeBSD, macOS, dan Linux dengan Clang dan GCC.
Paket Logswan tersedia untuk:
Logswan mencari database GeoIP2 di ${CMAKE_INSTALL_PREFIX}/share/dbip
secara default, yang menunjuk ke /usr/local/share/dbip
.
Direktori khusus dapat diatur menggunakan variabel GEOIP2DIR
saat menjalankan CMake:
cmake -DGEOIP2DIR=/var/db/dbip .
Basis data IP DB-IP ke Country Lite berlisensi Creative Commons gratis dapat diunduh di sini.
Alternatifnya, database Negara GeoLite2 dari MaxMind dapat diunduh secara gratis di sini, namun memerlukan persetujuan EULA dan tidak dilisensikan secara bebas.
logswan [-ghv] [-d db] logfile
Jika file berupa tanda hubung tunggal (`-'), logswan membaca dari input standar.
Pilihannya adalah sebagai berikut:
-d db Specify path to a GeoIP database.
-g Enable GeoIP lookups.
-h Display usage.
-v Display version.
Logswan mengeluarkan data JSON ke stdout .
Logswan dirilis di bawah lisensi BSD 2-Clause. Lihat file LICENSE
untuk detailnya.
Logswan dikembangkan oleh Frederic Cambus.
Beranda proyek: https://www.logswan.org
GitHub: https://github.com/fcambus/logswan