Funcionamiento

En esta página

Argus es una cadena de procesamiento por lotes, no un servicio. Una tarea cron ejecuta un recolector para cada fuente, los recolectores añaden recuentos a archivos de texto plano y una segunda tarea dibuja los gráficos con gnuplot. Ningún proceso de Argus queda en ejecución entre dos noches.

Recogida

Los recolectores son scripts separados, uno por fuente, de modo que el fallo de uno no detiene a los demás:

  • collect-ssh.sh lee auth.log o journald y cuenta los ataques SSH;
  • collect-fail2ban.sh lee los bloqueos de cada jail de Fail2Ban, cuando Fail2Ban está instalado;
  • collect-crowdsec.sh lee las alertas de cada escenario de CrowdSec, cuando CrowdSec está instalado.

/etc/cron.d/argus inicia la recogida a las 00:05. Una dirección de origen se convierte en un ataque cuando alcanza ARGUS_SSH_THRESHOLD intentos fallidos en un día, 5 por defecto. El recuento se conserva; la dirección no.

Archivos de texto plano

Los recolectores escriben $ARGUS_DATA_DIR/<year>/<series>_<year>.txt, por defecto bajo /srv/argus/. Cada línea contiene un recuento y una franja horaria, <count> <YYYY-MM-DDTHH>. No hay base de datos ni índice que reconstruir: un archivo puede leerse, copiarse o compararse con una herramienta de texto.

Una serie es el nombre del archivo sin el año, así que ssh_direct_2026.txt es la serie ssh_direct. Un archivo por fuente y por año mantiene el historial legible después de que cambie un recolector.

Renderizado

La tarea de los gráficos empieza a las 00:15 y llama a chart-daily.sh, que reconstruye los totales diarios a partir de los archivos de texto plano y dibuja la imagen del año. Las vistas period y hourly se dibujan a petición con argus-chart, a partir de los mismos archivos. El dibujo lo hace gnuplot, y cada imagen llega a <data directory>/<year>/images/.

A las 00:20, argus-doctor.sh comprueba que cada recolector se ejecutó el día anterior. Cada recolector escribe una línea de latido cada día, incluso cuando ha contado cero eventos, para que un día tranquilo y un recolector detenido puedan distinguirse.

Ningún demonio

Argus no expone ningún servicio ni interfaz web, y no mantiene ningún proceso vivo. Basta un servidor con 1 GB de RAM, y una noche sin recogida deja intactos los archivos anteriores. Los gráficos se leen donde se copian, en el equipo de escritorio, con cualquier visor de imágenes.

Los scripts, los ajustes y la estructura de archivos se describen en el repositorio: README, guía de instalación.

SiguienteCompatibilidad →