Featured image of post Installation LogAnalyzer avec LXD

Installation LogAnalyzer avec LXD

Installation du WebUI LogAnalyzer pour centraliser et analyser vos logs

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 :

Interface LogAnalyzer

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) :

sudo apt install mariadb-server

Puis on configure le compte ‘root’ :

sudo mysql_secure_installation

Puis on install le module rsyslog de MariaDB :

sudo apt install rsyslog-mysql -y

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 :

module (load="ommysql")
*.* 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 :

sudo systemctl restart 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 :

module(load="imudp")
input(type="imudp" port="514")

module(load=“imtcp”)
input(type=“imtcp” port=“514”)


NB : Si vous pensez utilisez que le protocole UDP pour envoyez les messages au serveur rsyslog, vous pouvez utilisez que le 1er bloc.

NB : Le lien avec la base de donnés MariaDB a déja été fait avec l'installation du module rsyslog-mysql. Il ne faut donc pas le rajouter en fin du fichier, sinon vous allez envoyez deux fois le même message à la base de donnés 'Syslog'

NB : Si vous avez un pare feu actif sur votre serveur, il faudra authorisez les connexions entrantes sur le port 514 en UDP et/ou TCP.

Une fois la configuration terminée, on relance le service :

sudo systemctl restart rsyslog

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 :

*.* @ip_serveur_rsyslog:514

Pour un message utilisant le protocole TCP :

*.* @@ip_serveur_rsyslog:514

Vous pouvez aussi filtrer des messages spécifiques contenu dans vos logs :

:msg, contains, "phpsessionclean.service" stop

Ou filtrer la catégorie, le niveau de gravitée pour une catégorie ou pour toutes les catégories :

mail.* @ip_serveur_rsyslog:514
security.info @ip_serveur_rsyslog:514
*.emerg @ip_serveur_rsyslog:514

Installation LogAnalyzer

Télécharger la derniere version 4.1.13 de LogAnalyzer :

wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.13.tar.gz

On décompresse et on copie dans le répertoire /var/www/html/loganalyser :

tar -zxvf loganalyzer-4.1.13.tar.gz
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 :

apt-get install apache2 mariadb-server php php-mysql php-gd –y

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 :

ln -s ../sites-available/loganalyzer.conf loganalyser.conf

Puis on relance apache :

sudo systemctl restart apache2

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 :

mysql -u root -p

Puis tapez les commandes SQL suivantes :

USE Syslog;
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 !!

Généré avec Hugo
Thème Stack conçu par Jimmy