🎯 TUTORIEL PAS À PAS

📋 Installation et configuration de syslog-ng sur Debian 13

📅 Mis à jour : Août 2026 ⏱️ Durée : 20 min 📋 Niveau : Intermédiaire 🐧 Debian 13 📋 syslog-ng 🔐 Logs

syslog-ng est un service de journalisation avancé qui remplace le syslog traditionnel. Il offre une flexibilité accrue, des filtres puissants, une rotation des logs et la possibilité de centraliser les logs depuis plusieurs sources. Ce tutoriel vous guide pas à pas dans l'installation et la configuration de syslog-ng sur Debian 13.

📌 Prérequis :

1 Installation de syslog-ng

Étape 1 – Mise à jour du système
$ sudo apt update && sudo apt upgrade -y
Étape 2 – Installation du paquet
Installez le paquet syslog-ng avec ses dépendances.
$ sudo apt install syslog-ng -y
✅ syslog-ng est installé et le service est automatiquement démarré.
Étape 3 – Vérification du service
$ sudo systemctl status syslog-ng
✅ Le service doit être active (running).

2 Structure des fichiers de configuration

Arborescence
CheminRôle
/etc/syslog-ng/syslog-ng.confFichier de configuration principal.
/etc/syslog-ng/conf.d/Répertoire pour les fichiers de configuration supplémentaires.
/var/log/syslog-ng/Répertoire des logs (par défaut, les logs restent dans /var/log/).
/etc/syslog-ng/scl.confConfiguration du SCL (Syslog-ng Configuration Language).

3 Configuration de base

Étape 1 – Ouvrir le fichier de configuration
$ sudo nano /etc/syslog-ng/syslog-ng.conf
Étape 2 – Structure du fichier
Un fichier de configuration syslog-ng se compose de plusieurs sections :
source s_sys { system(); internal(); };
destination d_auth { file("/var/log/auth.log"); };
filter f_auth { facility(auth); };
log { source(s_sys); filter(f_auth); destination(d_auth); };
🔍 Explication :
  • source : définit les sources de logs (système, interne).
  • destination : définit où stocker les logs (fichier, serveur distant, etc.).
  • filter : sélectionne les logs (par facility, priorité, etc.).
  • log : relie les éléments entre eux.
Étape 3 – Exemple de configuration simple
Voici une configuration qui sépare les logs par facility (auth, cron, daemon, etc.) dans des fichiers distincts.
# Fichier principal : /etc/syslog-ng/syslog-ng.conf

@include "scl.conf"
@include "conf.d/*.conf"

source s_sys {
    system();
    internal();
};

destination d_auth {
    file("/var/log/auth.log");
};

destination d_cron {
    file("/var/log/cron.log");
};

destination d_daemon {
    file("/var/log/daemon.log");
};

destination d_kern {
    file("/var/log/kern.log");
};

destination d_messages {
    file("/var/log/messages");
};

destination d_syslog {
    file("/var/log/syslog");
};

filter f_auth { facility(auth, authpriv); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kern { facility(kern); };
filter f_messages { not facility(auth, authpriv, cron, daemon, kern); };
filter f_syslog { facility(daemon); };

log { source(s_sys); filter(f_auth); destination(d_auth); };
log { source(s_sys); filter(f_cron); destination(d_cron); };
log { source(s_sys); filter(f_daemon); destination(d_daemon); };
log { source(s_sys); filter(f_kern); destination(d_kern); };
log { source(s_sys); filter(f_messages); destination(d_messages); };
log { source(s_sys); filter(f_syslog); destination(d_syslog); };
Sauvegardez et fermez le fichier.

4 Configuration avancée

4.1 – Fichiers de configuration séparés

Utiliser le dossier conf.d/
Pour une meilleure organisation, vous pouvez séparer votre configuration en plusieurs fichiers.
$ sudo nano /etc/syslog-ng/conf.d/mon-app.conf
source s_app {
    file("/var/log/mon-app.log");
};
destination d_app {
    file("/var/log/mon-app-parsed.log");
};
filter f_app {
    level(info);
};
log { source(s_app); filter(f_app); destination(d_app); };
💡 Astuce : Vous pouvez ajouter autant de fichiers que nécessaire. Ils seront inclus automatiquement grâce à la directive @include "conf.d/*.conf".

4.2 – Envoyer les logs vers un serveur central

Configuration client (expéditeur)
Pour envoyer les logs vers un serveur central syslog-ng, ajoutez une destination réseau.
destination d_central {
    tcp("192.168.1.100" port(514));
};
log { source(s_sys); destination(d_central); };
⚠️ Attention : Le port 514 est le port standard de syslog. Assurez-vous qu'il est ouvert sur le serveur central.

4.3 – Recevoir des logs depuis un client

Configuration serveur (récepteur)
Sur le serveur central, ajoutez une source réseau.
source s_network {
    tcp(ip(0.0.0.0) port(514));
    udp(ip(0.0.0.0) port(514));
};
destination d_remote {
    file("/var/log/remote/${HOST}/${FACILITY}.log");
};
log { source(s_network); destination(d_remote); };
🔍 Explication :
  • ${HOST} : variable qui sera remplacée par le nom de l'hôte source.
  • ${FACILITY} : variable pour la facility du log.
  • Les logs seront stockés dans des dossiers par hôte et par facility.

5 Rechargement et test de la configuration

Étape 1 – Tester la syntaxe
Avant de recharger le service, vérifiez la syntaxe de la configuration.
$ sudo syslog-ng -s
✅ Si tout est correct, aucune erreur ne s'affiche.
Étape 2 – Recharger le service
$ sudo systemctl reload syslog-ng
✅ La configuration est rechargée.
Étape 3 – Vérifier les logs
Consultez les logs pour vérifier que tout fonctionne correctement.
# Afficher les logs système
$ sudo cat /var/log/messages

# Suivre les logs en temps réel
$ sudo tail -f /var/log/syslog

6 Rotation des logs

Configurer logrotate
syslog-ng utilise logrotate pour la rotation des logs. Le fichier de configuration se trouve dans /etc/logrotate.d/syslog-ng.
$ sudo nano /etc/logrotate.d/syslog-ng
/var/log/syslog
/var/log/messages
/var/log/auth.log
/var/log/cron.log
/var/log/daemon.log
/var/log/kern.log
{
    rotate 7
    weekly
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        /usr/sbin/service syslog-ng reload > /dev/null 2>&1
    endscript
}
🔍 Explication :
  • rotate 7 : conserve 7 fichiers de logs archivés.
  • weekly : rotation hebdomadaire.
  • compress : compresse les logs archivés (gzip).
  • postrotate : recharger syslog-ng après la rotation pour continuer à écrire les logs.

Test de validation

🎉 Installation réussie si :


📚 Ressources complémentaires


← Retour au portail
BTS SIO – Lycée NDLP Avranches – Tutoriel syslog-ng v1.0