Introduction
LogAnalyzer est une interface graphique Web (WebUI) pour superviser les logs de toutes les machines de votre LAN.
L’interface est certe un peu désuette mais propose les fonctionnalités de base pour exploiter facilement les logs (filtrage…) d’un parc de machines. Cette solution à l’avantage de consomer trés peu de ressources dans un container. Il existe d’autres solutions plus moderne et plus complète en termes de fonctionnalités comme GrayLog, mais elles demandent beaucoup de ressources pour fonctionner.
Voici un extrait de log de l’interface :
On peut filtrer facilement les messages avec n’importe quels critères : catégorie, machine, sévérité et tag.
Nous allons installés LogAnalyzer dans un container sous Debian 12. La procédure reste la même quelque sois le type de containeurs (Proxmox LXC, LXD…)
Pré-requis
Nous utiliserons la base de données MariaDB et le service rsyslog de la machine pour gérer tous les logs externes.
Installation de MariaDB
Nous allons installés MariaDB et configurés le fichier de connexion ‘rsyslog’ (Vous pouvez utilisez aussi un serveur distant) :
Puis on configure le compte ‘root’ :
Puis on install le module rsyslog de MariaDB :
Une série de question vous est posée pour configurer le module. La configuration généré se trouve dans ce le fichier /etc/rsyslog.d/mysql.conf.
Le module vas créer une base de données Syslog avec deux tables SystemEvents et SystemEventsProperties.
Voici ma configuration :
*.* action(type="ommysql" server="192.168.x.x" db="Syslog" uid="rsyslog" pwd="passwd")
Quelques explications :
- type : Le nom du module utilisés pour la connexion
- server : L’adresse IP du serveur local ou distant MariaDB
- db : Le nom de la base de donnée
- uid : Le nom de l’utilisateur créer pour les accès à la bases de donnés ‘Syslog’
- passwd : Le mot de passe de l’utilisateur ‘rsyslog’
Notez bien ces différents paramètres; nous en aurons besoins lors de la configuration de LogAnalyzer
On relance le serveur MariaDB :
Configuration de rsyslog
Coté serveur
La configurationn de rsyslog se fait avec le fichier /etc/rsyslog.conf :
Nous allons décommenter les lignes suivantes :
input(type="imudp" port="514")
module(load=“imtcp”)
input(type=“imtcp” port=“514”)
Une fois la configuration terminée, on relance le service :
Coté client
Coté client, vous avez besoin seulement de rajouter cette ligne en fin du fichier de configuration /etc/rsyslog.conf :
Pour un message utilisant le protocole UDP :
Pour un message utilisant le protocole TCP :
Vous pouvez aussi filtrer des messages spécifiques contenu dans vos logs :
Ou filtrer la catégorie, le niveau de gravitée pour une catégorie ou pour toutes les catégories :
security.info @ip_serveur_rsyslog:514
*.emerg @ip_serveur_rsyslog:514
Installation LogAnalyzer
Télécharger la derniere version 4.1.13 de LogAnalyzer :
On décompresse et on copie dans le répertoire /var/www/html/loganalyser :
mkdir /var/www/html/loganalyzer
cp -a loganalyzer-4.1.13/src/* /var/www/html/loganalyzer
chown -R www-data:www-data /var/www/html/loganalyzer
Configuration apache
Vous aurez besoin d’un serveur apache avec php (voir remarque php 8.x). C’est une installation de base :
Il faut créer un fichier contenant la configuration du site LogAnalyzer dans /etc/apache2/sites-available :
<VirtualHost *:80>
ServerName localhost
ServerAdmin email@yourDomain.fr
DocumentRoot /var/www/html/loganalyzer
<Directory /var/www/html/loganalyzer/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Puis nous créons un lien symbolique dans /etc/apache2/sites-enabled :
Puis on relance apache :
Premier lancement
Maintenant nous pouvons configurer LogAnalyser dans le navigateur :
http://ip_de_votre_serveur/index.php
Lors de la 1ere connexion, le serveur vas configurer l’application. Vous aurez à donner les informations pour vous connecter à la base de données (voir plus haut)
Erreur php8.x
Les sources du site Internet ont été développées en php 7.x. Après avoir configurer LogAnalyzer, vous risquez de tomber sur une page blanche. Pour y remédiez il faut vous connecter à la base de données SysLog et rajouter les deux colonnes manquantes dans la table SystemEvents
Pour cela, connecter vous à MariaDB en root :
Puis tapez les commandes SQL suivantes :
ALTER TABLE SystemEvents
ADD COLUMN checksum INT NOT NULL DEFAULT 0;
ALTER TABLE SystemEvents
ADD COLUMN processid VARCHAR(60) NOT NULL DEFAULT 0;
exit
Rechargez la page de votre navigateur et le problème devrait être régler !!