_____
.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 로그)을 대상으로 합니다. 로그 파일 크기에 관계없이 일정한 메모리 사용량을 가지며 대략 4MB의 RAM을 사용합니다.
고유 방문자 수 계산은 두 개의 HyperLogLog 카운터(IPv4용 하나, IPv6용 하나)를 사용하여 수행되며 상대 정확도 0.10%를 제공합니다. IP 주소의 문자열 표현이 사용되며 더 나은 정밀도를 제공하므로 선호됩니다.
프로젝트 설계 목표에는 속도, 메모리 사용 효율성 및 코드를 최대한 단순하게 유지하는 것이 포함됩니다.
Logswan은 독보적인 소프트웨어 입니다.
Logswan은 보안을 염두에 두고 작성되었으며 OpenBSD에서 샌드박스 처리되어 실행됩니다(서약 사용). 실험적인 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은 기본적으로 /usr/local/share/dbip
가리키는 ${CMAKE_INSTALL_PREFIX}/share/dbip
에서 GeoIP2 데이터베이스를 찾습니다.
CMake를 호출할 때 GEOIP2DIR
변수를 사용하여 사용자 정의 디렉터리를 설정할 수 있습니다.
cmake -DGEOIP2DIR=/var/db/dbip .
무료 Creative Commons 라이선스 DB-IP IP to Country Lite 데이터베이스는 여기에서 다운로드할 수 있습니다.
또는 MaxMind의 GeoLite2 국가 데이터베이스를 여기에서 무료로 다운로드할 수 있지만 EULA에 동의해야 하며 무료 라이센스가 아닙니다.
logswan [-ghv] [-d db] logfile
파일이 단일 대시('-')인 경우, logwan은 표준 입력에서 읽습니다.
옵션은 다음과 같습니다:
-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