_____
.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 是一個使用機率資料結構的快速 Web 日誌分析器。它針對非常大的日誌文件,通常是 API 日誌。無論日誌檔案大小如何,它都具有恆定的記憶體使用量,並且大約需要 4MB 的 RAM。
使用兩個 HyperLogLog 計數器(一個用於 IPv4,另一個用於 IPv6)執行唯一訪客計數,提供 0.10% 的相對準確度。使用並首選 IP 位址的字串表示形式,因為它們提供更好的精度。
專案設計目標包括:速度、記憶體使用效率以及盡可能保持程式碼簡單。
Logswan 是一個固執己見的軟體:
Logswan 的編寫考慮到了安全性,並在 OpenBSD 上沙盒運行(使用 Promise)。實驗性 seccomp 支援可用於選定的架構,並且可以透過在呼叫 CMake 時將ENABLE_SECCOMP
變數設為1
來啟用。它還使用 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 已使用 Clang 和 GCC 在 OpenBSD、NetBSD、FreeBSD、macOS 和 Linux 上成功建置和測試。
Logswan 軟體包適用於:
Logswan 預設在${CMAKE_INSTALL_PREFIX}/share/dbip
中尋找 GeoIP2 資料庫,該資料庫指向/usr/local/share/dbip
。
呼叫 CMake 時可以使用GEOIP2DIR
變數設定自訂目錄:
cmake -DGEOIP2DIR=/var/db/dbip .
免費的 Creative Commons 授權的 DB-IP IP to Country Lite 資料庫。
或者,可以在此處免費下載 MaxMind 的 GeoLite2 Country 資料庫,但需要接受 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