Fonctionnement
Sur cette page
Argus est une chaîne de traitement par lots, pas un service. Une tâche cron exécute un collecteur pour chaque source, les collecteurs ajoutent des comptes à des fichiers texte plats, et une seconde tâche dessine les graphiques avec gnuplot. Aucun processus d’Argus ne reste actif entre deux nuits.
Collecte
Les collecteurs sont des scripts séparés, un par source, si bien que la défaillance de l’un n’arrête pas les autres :
collect-ssh.shlitauth.logou journald et compte les attaques SSH ;collect-fail2ban.shlit les bannissements de chaque jail Fail2Ban, lorsque Fail2Ban est installé ;collect-crowdsec.shlit les alertes de chaque scénario CrowdSec, lorsque CrowdSec est installé.
/etc/cron.d/argus lance la collecte à 00:05. Une adresse source devient une attaque lorsqu’elle atteint ARGUS_SSH_THRESHOLD tentatives échouées en une journée, 5 par défaut. Le compte est conservé ; l’adresse ne l’est pas.
Fichiers plats
Les collecteurs écrivent $ARGUS_DATA_DIR/<year>/<series>_<year>.txt, par défaut sous /srv/argus/. Chaque ligne contient un compte et une tranche horaire, <count> <YYYY-MM-DDTHH>. Il n’y a ni base de données ni index à reconstruire : un fichier peut être lu, copié ou comparé avec un outil texte.
Une série est le nom du fichier sans l’année, donc ssh_direct_2026.txt est la série ssh_direct. Un fichier par source et par année garde l’historique lisible après un changement de collecteur.
Rendu
La tâche des graphiques démarre à 00:15 et appelle chart-daily.sh, qui reconstruit les totaux quotidiens à partir des fichiers plats et dessine l’image de l’année. Les vues period et hourly sont dessinées à la demande avec argus-chart, à partir des mêmes fichiers. Le dessin est fait par gnuplot, et chaque image arrive dans <data directory>/<year>/images/.
À 00:20, argus-doctor.sh vérifie que chaque collecteur s’est exécuté la veille. Chaque collecteur écrit une ligne de battement de vie chaque jour, même lorsqu’il a compté zéro événement, afin qu’une journée calme et un collecteur arrêté puissent être distingués.
Aucun démon
Argus n’expose aucun service ni interface web, et il ne maintient aucun processus actif. Un serveur de 1 Go de RAM suffit, et une nuit sans collecte laisse les fichiers précédents intacts. Les graphiques sont lus là où ils sont copiés, sur le poste de bureau, avec n’importe quelle visionneuse d’images.
Les scripts, les réglages et l’arborescence des fichiers sont décrits dans le dépôt : README, guide d’installation.