_____
.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 é um analisador de log da Web rápido que usa estruturas de dados probabilísticas. Ele é direcionado a arquivos de log muito grandes, normalmente logs de APIs. Possui uso constante de memória, independentemente do tamanho do arquivo de log, e ocupa aproximadamente 4 MB de RAM.
A contagem de visitantes únicos é realizada através de dois contadores HyperLogLog (um para IPv4 e outro para IPv6), proporcionando uma precisão relativa de 0,10%. Representações de strings de endereços IP são usadas e preferidas porque oferecem melhor precisão.
Os objetivos de design do projeto incluem: velocidade, eficiência no uso de memória e manter o código o mais simples possível.
Logswan é um software opinativo :
Logswan foi escrito com a segurança em mente e está sendo executado em sandbox no OpenBSD (usando promessa). O suporte experimental ao seccomp está disponível para arquiteturas selecionadas e pode ser habilitado definindo a variável ENABLE_SECCOMP
como 1
ao invocar o CMake. Também foi amplamente difundido usando AFL e Honggfuzz.
Recursos atualmente implementados:
Logswan usa o sistema de compilação CMake
e requer bibliotecas Jansson
e libmaxminddb
e arquivos de cabeçalho.
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 foi construído e testado com sucesso em OpenBSD, NetBSD, FreeBSD, macOS e Linux com Clang e GCC.
Os pacotes Logswan estão disponíveis para:
Logswan procura bancos de dados GeoIP2 em ${CMAKE_INSTALL_PREFIX}/share/dbip
por padrão, que aponta para /usr/local/share/dbip
.
Um diretório personalizado pode ser definido usando a variável GEOIP2DIR
ao invocar o CMake:
cmake -DGEOIP2DIR=/var/db/dbip .
O banco de dados gratuito DB-IP IP to Country Lite licenciado pela Creative Commons pode ser baixado aqui.
Alternativamente, o banco de dados GeoLite2 Country da MaxMind pode ser baixado gratuitamente aqui, mas exige a aceitação de um EULA e não é licenciado gratuitamente.
logswan [-ghv] [-d db] logfile
Se o arquivo for um único traço (`-'), o logswan lê a entrada padrão.
As opções são as seguintes:
-d db Specify path to a GeoIP database.
-g Enable GeoIP lookups.
-h Display usage.
-v Display version.
Logswan gera dados JSON para stdout .
Logswan é lançado sob a licença BSD de 2 cláusulas. Consulte o arquivo LICENSE
para obter detalhes.
Logswan é desenvolvido por Frederic Cambus.
Página inicial do projeto: https://www.logswan.org
GitHub: https://github.com/fcambus/logswan