_____
.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 es un analizador de registros web rápido que utiliza estructuras de datos probabilísticas. Está dirigido a archivos de registro muy grandes, normalmente registros de API. Tiene un uso de memoria constante independientemente del tamaño del archivo de registro y requiere aproximadamente 4 MB de RAM.
El recuento de visitantes únicos se realiza utilizando dos contadores HyperLogLog (uno para IPv4 y otro para IPv6), lo que proporciona una precisión relativa del 0,10%. Se utilizan y se prefieren las representaciones de cadenas de direcciones IP, ya que ofrecen una mayor precisión.
Los objetivos de diseño del proyecto incluyen: velocidad, eficiencia en el uso de la memoria y mantener el código lo más simple posible.
Logswan es un software obstinado :
Logswan está escrito teniendo en cuenta la seguridad y se ejecuta en un espacio aislado en OpenBSD (usando promesa). La compatibilidad experimental con seccomp está disponible para arquitecturas seleccionadas y se puede habilitar configurando la variable ENABLE_SECCOMP
en 1
al invocar CMake. También se ha difuminado ampliamente utilizando AFL y Honggfuzz.
Funciones actualmente implementadas:
Logswan utiliza el sistema de compilación CMake
y requiere bibliotecas y archivos de encabezado Jansson
y 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 se ha creado y probado con éxito en OpenBSD, NetBSD, FreeBSD, macOS y Linux tanto con Clang como con GCC.
Los paquetes de Logswan están disponibles para:
Logswan busca bases de datos GeoIP2 en ${CMAKE_INSTALL_PREFIX}/share/dbip
de forma predeterminada, que apunta a /usr/local/share/dbip
.
Se puede configurar un directorio personalizado usando la variable GEOIP2DIR
al invocar CMake:
cmake -DGEOIP2DIR=/var/db/dbip .
La base de datos gratuita DB-IP IP to Country Lite con licencia Creative Commons se puede descargar aquí.
Alternativamente, la base de datos GeoLite2 Country de MaxMind se puede descargar de forma gratuita aquí, pero requiere aceptar un CLUF y no tiene licencia gratuita.
logswan [-ghv] [-d db] logfile
Si el archivo es un solo guión (`-'), logswan lee desde la entrada estándar.
Las opciones son las siguientes:
-d db Specify path to a GeoIP database.
-g Enable GeoIP lookups.
-h Display usage.
-v Display version.
Logswan genera datos JSON en stdout .
Logswan se publica bajo la licencia BSD de 2 cláusulas. Consulte el archivo LICENSE
para obtener más detalles.
Logswan es desarrollado por Frederic Cambus.
Página de inicio del proyecto: https://www.logswan.org
GitHub: https://github.com/fcambus/logswan