_____
.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 を必要とします。
ユニーク訪問者のカウントは 2 つの HyperLogLog カウンター (IPv4 用と IPv6 用) を使用して実行され、相対精度は 0.10% です。 IP アドレスの文字列表現が使用され、精度が向上するため推奨されます。
プロジェクト設計の目標には、速度、メモリ使用効率、コードを可能な限りシンプルに保つことが含まれます。
Logswan は独自のソフトウェアです。
Logswan はセキュリティを念頭に置いて作成されており、OpenBSD 上で (誓約を使用して) サンドボックス化して実行されます。実験的な seccomp サポートは、選択したアーキテクチャで利用でき、CMake を呼び出すときにENABLE_SECCOMP
変数を1
に設定することで有効にできます。また、AFL と Hongfuzz を使用して広範囲にファジングされています。
現在実装されている機能:
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 条項ライセンスに基づいてリリースされています。詳細については、 LICENSE
ファイルを参照してください。
Logswan は Frederic Cambus によって開発されました。
プロジェクトのホームページ: https://www.logswan.org
GitHub: https://github.com/fcambus/logswan