Les logs sont des fichiers texte qui recensent chronologiquement tous les événements survenus sur un système informatique : redémarrages de services, connexions utilisateurs, erreurs système ou applicatives.
Exporter les journaux de tous ses serveurs sur une machine dédiée est une bonne pratique. En y ajoutant une interface graphique, ils peuvent être triés, classés et consultés par source ou par criticité.
Syslog)
| Machine | Rôle | Composants |
|---|---|---|
| Serveur de logs | Centralisation + Interface | Rsyslog + MariaDB + Apache + LogAnalyzer |
| Serveur Web (LAMP) | Machine supervisée | Apache + Rsyslog (client) |
| Équipement Cisco | Équipement réseau supervisé | Syslog TCP → port 514 |
apt update -y apt install apache2 php php-cli php-common php-mysqli php-mbstring mariadb-server mariadb-client -y
| Paquet | Rôle |
|---|---|
apache2 | Serveur web pour héberger LogAnalyzer |
php + modules php-* | Modules PHP nécessaires à LogAnalyzer |
mariadb-server | Base de données pour stocker les logs |
mariadb-client | Client MySQL en ligne de commande |
mysql_secure_installation
apt install rsyslog-mysql -y
dbconfig-common configurer automatiquement la base.Cela crée automatiquement :
| Élément | Valeur |
|---|---|
| Base de données | Syslog |
| Table événements | SystemEvents |
| Table propriétés | SystemEventsProperties |
| Utilisateur | rsyslog |
| Mot de passe | mdp_root |
| Port | 3306 |
cp /etc/rsyslog.conf /etc/rsyslog.conf.bak
Éditer le fichier puis décommenter les 2 lignes sous # provides TCP syslog reception :
nano /etc/rsyslog.conf
# provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
imtcp — module qui active la réception en TCPport 514 — port standard du protocole syslogAjouter à la fin du fichier /etc/rsyslog.conf :
*.* :ommysql:localhost,Syslog,rsyslog,mdp_root
| Paramètre | Valeur | Description |
|---|---|---|
*.* | Toutes facilities/priorités | Capture tous les types de logs |
ommysql | Module output | Envoie les logs vers MySQL/MariaDB |
localhost | Hôte | Serveur de base local |
Syslog | Nom de la base | Base créée par rsyslog-mysql |
rsyslog | Utilisateur | Compte dédié |
mdp_root | Mot de passe | Mot de passe de l'utilisateur |
systemctl restart rsyslog
cd /srv wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.13.tar.gz tar -xvzf 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
http://IP_SERVEUR/loganalyzer
Syslog · User : rsyslog · MDP : mdp_rootlogadmin / adminMYSQL Native · Nom : Mes logs · Table : SystemEventsmysql -u root -p
use Syslog; alter table SystemEvents add column checksum int null; alter table SystemEvents add column processid varchar(60) null; quit;
use Syslog — sélectionne la base de donnéesalter table — modifie la structure de la table existanteadd column checksum — requis pour l'intégrité des messagesadd column processid — requis pour l'affichage du PID dans LogAnalyzercd /var/www/html/loganalyzer/lang wget https://loganalyzer.adiscon.com/plugins/files/translations/loganalyzer_lang_fr_FR_3.6.3.zip unzip loganalyzer_lang_fr_FR_3.6.3.zip chown -R www-data:www-data /var/www/html/loganalyzer/lang/
www-data après extraction de l'archive.Dans /etc/apache2/sites-available/000-default.conf, remplacer :
ErrorLog "|/usr/bin/logger -t APACHE -p local6.info" CustomLog "|/usr/bin/logger -t APACHE -p local6.info" combined
logger — redirige les logs Apache vers Rsyslog local-t APACHE — tag pour identifier la source dans la baselocal6 — facility dédiée pour identifier les logs du site webcombined — format détaillé des requêtes HTTP (IP, méthode, URL, code HTTP)Ajouter à la fin de /etc/rsyslog.conf sur le serveur web :
# Tous les logs locaux vers le serveur de logs (TCP) *.* @@172.17.219.10:514 # Logs Apache (local6) vers le serveur de logs local6.* @@172.17.219.10
| Élément | Signification |
|---|---|
*.* | Tous les logs locaux (toutes facilities et priorités) |
@@ | Envoi en TCP (fiable, avec accusé de réception) |
172.17.219.10:514 | IP du serveur de logs + port syslog standard |
local6.* | Uniquement les logs Apache (facility local6) |
systemctl restart rsyslog
# Redémarrer Apache pour générer des événements DAEMON systemctl restart apache2 # Générer du trafic web (requêtes GET) # Naviguer sur : http://IP_SERVEUR_WEB
GET apparaissent avec l'adresse IP source dans LogAnalyzer.systemctl restart rsyslogsystemctl restart rsyslogss -tlnp | grep 514tail -f /var/log/syslogSystemEvents. Il est important d'archiver et purger régulièrement cette table via un script automatisé.Router# clock set 10:30:00 5 June 2025 Router# configure terminal Router(config)# service timestamps log datetime msec Router(config)# logging host 172.17.219.10 transport tcp port 514 Router(config)# logging trap notifications Router(config)# logging facility local0 Router(config)# end Router# copy running-config startup-config
| Commande | Description |
|---|---|
clock set | Règle l'heure du routeur (indispensable pour horodater les logs) |
service timestamps | Ajoute date et heure à chaque message de log |
logging host | Définit le serveur de logs destination |
transport tcp port 514 | Utilise TCP pour une transmission fiable |
logging trap notifications | Niveau de sévérité minimum : notifications (niveau 5) |
logging facility local0 | Identifie la source Cisco dans la base Syslog |
copy running startup | Sauvegarde la config pour qu'elle persiste au redémarrage |
| Niveau | Mot-clé | Description |
|---|---|---|
| 0 | emergencies | Système inutilisable |
| 1 | alerts | Action immédiate requise |
| 2 | critical | Conditions critiques |
| 3 | errors | Messages d'erreur |
| 4 | warnings | Messages d'avertissement |
| 5 | notifications | Événements normaux mais significatifs |
| 6 | informational | Messages informatifs |
| 7 | debugging | Messages de débogage (verbeux) |
LOCAL6LOCAL0DELETE FROM Syslog.SystemEvents WHERE ReceivedAt < DATE_SUB(NOW(), INTERVAL 30 DAY);
SIO 2A — SISR · Gestion des logs · Rsyslog + LogAnalyzer 4.1.13 + MariaDB