Sur Proxmox j’ai une VM Jeedom, une VM mqtt + zigbee2mqtt, une vm wmbusmeters (compteur d’eau), une VM E-bus (chauffage) , une VM Nginx Proxy Manager. Ces différentes VM sont sous Debian 12 et Fedora server liées à Jeedom. Pour surveiller les journaux système on doit se connecter à chaque VM et utiliser le fameux utilitaire de systemd journalctl ce qui est laborieux. J’ai donc recherché un utilitaire léger qui concentre tous les journaux. Loganalyzer remplie mon cahier des charges, légèreté, simplicité malgré une interface vieillotte et une version de 2022.
Le logiciel est open source et free.
Je voulais que l’installation soit sur une autre machine physique que mon NUC Proxmox en cas de crash, j’ai choisi ma freebox Delta sur laquelle j’ai de la place disque pour la base de données.
La VM est dimensionné avec 1 processeur 4Go et 150 Go de disque ( J’ai surdimensionné).
Il existe d’autres logiciels comme PRTG mais qui demandent plus d’expertise, LogAnalyzer est accessible pour une première expérience. Je suis curieux de voir quels logiciels vous utilisez pour cela. Merci pour vos retours.
Pour ma part, j’ai une config relativement similaire (tout un tas de LXC et VM sur un serveur proxmox, dont une jeedom).
J’utilise l’outil Rsyslog pour rapatrier les logs de mes différents services à un seul endroit : un autre container LXC qui concentre tous les logs. C’est un package linux très utilisé, un simple concentrateur de logs.
Le principe est assez simple : tous les services (=LXC) ont leur rsyslog configuré en tant que client, et se connecte au rsyslog serveur, qui est lui configuré sur son container dédié (sur le même proxmox, là où toi tu as choisi de l’externaliser sur la freebox). Il concentre donc tous les logs dans /var/log, qui sont reçus au fil de l’eau depuis tous les services clients. La config par défaut suffit la plupart du temps, mais tu peux configurer ça au petits onion pour classer les logs en fonction des machines, des types de logs, les renommer, les merger etc.
Après ça, je n’ai pas de surcouche UI (comme LogAnalyser), je dois toujours me farcir des cat/tail/grep sur mes logs si je veux chercher/trouver un truc en particulier.
L’avantage d’avoir tout au même endroit, c’est la possibilité de les faire analyser avec une couche sécurité (chez moi j’utilise crowdsec) : il parse tous les logs à la recherche de tentatives d’accès/brute force/scan etc, et applique des actions en fonction (en gros, ajout de DROP dans les iptables sur l’ip attaquante).
Je ne l’ai pas signalé mais LogAnalyser s’appuie sur rsyslog. Il faut donc effectivement installer le paquet rsyslog sur toutes les VMs et paramétrer dans le rsyslog.conf l’envoi des messages sur la VM LogAnalyzer ce qui est très simple, une ligne à ajouter.
Ah bah voilà , je savais pas que LogAnalyser utilisait rsyslog.
Néanmoins après check de la doc vite fait, j’ai l’impression qu’il utilise la version « bdd » de rsyslog (=> rsyslog insère en base tous les logs reçus, en plus de les stocker sur la machine). C’est du coup un peu plus gourmant en place et en traitement (logs à la fois en BDD et sous forme de fichier + un service mysql qui tourne h24 pour stocker les logs en BDD).
Vu ta configuration, et que t’as déjà fait le gros du boulot, je te conseille vivement de bien sécuriser ton système si ton nginx-proxy-manager est exposé sur le net, car c’est une véritable porte ouverte à tout ton archi. La mise en place de crowdsec est assez simple, extremement efficace et y’a de nombreux tuto en ligne (texte ou vidéo) qui expliquent comment faire.
Perso, je l’ai mis en place depuis 15 jours, et j’ai en moyenne plus de 2500 paquets réseaux dropés par semaine sur mon container NPM suite à des tentatives d’intrusions et scans en tout genre
Sinon l’idéal est d’installer un VPN sur son archi locale, et de se connecter à ses services uniquement à travers son VPN. C’est secure, mais pas forcément super pratique…
J’ai plusieurs fois changé de solution, jusqu’à monter un stack elk beaucoup trop lourd à maintenir.
Pour l’instant j’utilise graylog
j’ai laissé tombé les syslog pcq souvent (lorsque syslog est supporté par l’application source) alors on n’a plus du tout les fichiers => c’est soit file soit syslog (ou alors j’ai pas pigé un truc) et ça ne me plait pas.
graylog c’est plus proche d’un elk en plus facile à maintenir
Je viens de relire ton dernier post, effectivement le paquet installé est rsyslog-mysql, les événements sont stockés dans la base de données mariadb et sont stockés aussi dans le fichier syslog.
2025-02-05T20:40:16+01:00 NginxManager systemd[1]: Removed slice user-0.slice - User Slice of UID 0.
2025-02-05T20:40:16+01:00 NginxManager systemd[1]: user-0.slice: Consumed 3.223s CPU time.
2025-02-05T20:41:01+01:00 Jeedom12 CRON[2306823]: (www-data) CMD (/usr/bin/php /var/www/html/core/php/jeeCron.php >> /dev/null)
2025-02-05T20:42:01+01:00 Jeedom12 CRON[2307213]: (www-data) CMD (/usr/bin/php /var/www/html/core/php/jeeCron.php >> /dev/null)
2025-02-05T20:42:56+01:00 pve2 systemd[1]: Starting testdate.service - Inscrit la date et l'heure cycliquement dans un fichier...
2025-02-05T20:42:56+01:00 pve2 systemd[1]: testdate.service: Deactivated successfully.
2025-02-05T20:42:56+01:00 pve2 systemd[1]: Finished testdate.service - Inscrit la date et l'heure cycliquement dans un fichier.
2025-02-05T20:42:57+01:00 Jeedom12 mariadbd[806]: 2025-02-05 20:42:57 131650 [Warning] Aborted connection 131650 to db: 'jeedom' user: 'jeedom' host: 'localhost' (Got timeout reading communication packets)
2025-02-05T20:42:57+01:00 Jeedom12 mariadbd[806]: 2025-02-05 20:42:57 131649 [Warning] Aborted connection 131649 to db: 'jeedom' user: 'jeedom' host: 'localhost' (Got timeout reading communication packets)
2025-02-05T20:43:01+01:00 Jeedom12 CRON[2307583]: (www-data) CMD (/usr/bin/php /var/www/html/core/php/jeeCron.php >> /dev/null)
2025-02-05T20:44:01+01:00 Jeedom12 CRON[2307971]: (www-data) CMD (/usr/bin/php /var/www/html/core/php/jeeCron.php >> /dev/null)
2025-02-05T20:45:01+01:00 Jeedom12 CRON[2308346]: (root) CMD (/usr/bin/php /var/www/html/core/php/watchdog.php >> /dev/null)
2025-02-05T20:45:01+01:00 Jeedom12 CRON[2308345]: (www-data) CMD (/usr/bin/php /var/www/html/core/php/jeeCron.php >> /dev/null)
2025-02-05T20:45:56+01:00 pve2 systemd[1]: Starting testdate.service - Inscrit la date et l'heure cycliquement dans un fichier...
2025-02-05T20:45:56+01:00 pve2 systemd[1]: testdate.service: Deactivated successfully.
2025-02-05T20:45:56+01:00 pve2 systemd[1]: Finished testdate.service - Inscrit la date et l'heure cycliquement dans un fichier.
2025-02-05T20:46:01+01:00 Jeedom12 CRON[2308952]: (www-data) CMD (/usr/bin/php /var/www/html/core/php/jeeCron.php >> /dev/null)
2025-02-05T20:46:08.782869+01:00 loganalyzer systemd[1]: Created slice user-1000.slice - User Slice of UID 1000.
2025-02-05T20:46:08.786883+01:00 loganalyzer systemd[1]: Starting user-runtime-dir@1000.service - User Runtime Directory /run/user/1000...
2025-02-05T20:46:08.787338+01:00 loganalyzer systemd[1]: Finished user-runtime-dir@1000.service - User Runtime Directory /run/user/1000.
2025-02-05T20:46:08.787507+01:00 loganalyzer systemd[1]: Starting user@1000.service - User Manager for UID 1000...
2025-02-05T20:46:08.875946+01:00 loganalyzer systemd[75327]: Queued start job for default target default.target.
Ce qui veut dire si j’ai bien compris de faire analyser le fichier syslog par crowdsec.
Les ressources utilisées sont vraiment minimes au vu de la charge et de l’occupation mémoire.
J’ai le vpn de la freebox mais pour Jeedomconnect c’est mort.
Oui, crowdsec se base sur les fichiers de log pour faire son analyse. Le but étant de les avoir déjà rapatriés tous au même endroit (ce que tu as déjà donc) pour pouvoir protéger tout ton parc de VM. Une fois que crowdsec a fait son analyse, ils « donnent les ordres » à des agents crowdsec (qu’on appelle bouncer) sur les VMs concernées pour appliquer les actions (ban d’ip, ajout de règles dans le firewall etc).
Tous ces outils fonctionnent avec syslog comme brique de base pour collecter les logs? Comment doit-on faire pour orienter tous les logs vers ce type d’outil ? Pourrait-on faire l’équivalent pour Jeedom, router tous nos logs sur ce genre d’outil ? Pour une image Docker Jeedom ça serait intéressant !
Pas trouvé, tu es sur quelle version ? Ou bien c’est pas dispo dans une image Jeedom ? Moi dans ce menu Logs je n’ai que timeline / Messages / Actions sur alerte / Niveaux de logs…