_____
.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. Он использует постоянную память независимо от размера файла журнала и занимает около 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 и 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 можно бесплатно загрузить здесь, но для этого необходимо принять лицензионное соглашение и она не лицензируется свободно.
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 на стандартный вывод .
Logswan выпускается под лицензией BSD 2-Clause. Подробности смотрите в файле LICENSE
.
Logswan разработан Фредериком Камбусом.
Домашняя страница проекта: https://www.logswan.org.
GitHub: https://github.com/fcambus/logswan