Collecte de journaux réseau : Découverte du protocole Syslog

Quand vous gérez des dizaines ou des centaines de serveurs, surveiller chacun séparément devient impossible. La solution est la collecte centralisée des journaux à l'aide du protocole Syslog. Dans cet article, nous examinerons en détail comment il fonctionne et comment le configurer.

Qu'est-ce que Syslog ?

Syslog est un protocole standard pour la transmission de messages de journal au niveau système sur un réseau. Il permet de collecter les journaux de divers appareils et systèmes sur un seul serveur central. Ceci est particulièrement important pour :

  • Réseaux d'entreprise
  • Systèmes distribués
  • Infrastructures cloud
  • Surveillance de la sécurité

Histoire de Syslog

Le protocole Syslog a été développé dans les années 1980 par Eric Allman pour BSD Unix. Depuis, il est devenu la norme de facto pour la transmission de messages de journal dans les réseaux IP. En 2009, le RFC 5424 a été adopté, qui définit la version moderne du protocole.

Architecture de Syslog

Un système Syslog se compose de trois composants principaux :

  1. Client Syslog (originateur) — appareil ou application qui génère les messages
  2. Serveur Syslog (collecteur) — destinataire des messages
  3. Réseau — canal de transmission (généralement UDP ou TCP)

Format des messages Syslog

Chaque message Syslog se compose de trois parties :

PRI (Priorité)

Contient les informations sur la priorité du message : <PRI> PRI est calculé à l'aide de la formule : facility * 8 + severity, où : - facility — source du message (0-23) - severity — importance du message (0-7)

HEADER

Contient : - TIMESTAMP — heure de l'événement - HOSTNAME — nom d'hôte de l'expéditeur - APP-NAME — nom de l'application - PROCID — ID du processus - MSGID — ID du message

MSG

Contient : - STRUCTURED-DATA — paramètres structurés - MESSAGE — texte du message

Exemple d'un message complet : <34>1 2026-03-03T15:00:00.123Z monserveur app 12345 ID47 [exampleSD@32473 iut="3" event="start"] Démarrage...

Niveaux de gravité

Syslog définit 8 niveaux de gravité :

  • 0 — Emergency (situation d'urgence)
  • 1 — Alert (nécessite une intervention immédiate)
  • 2 — Critical (erreur critique)
  • 3 — Error (erreur)
  • 4 — Warning (avertissement)
  • 5 — Notice (événement normal mais significatif)
  • 6 — Informational (message informatif)
  • 7 — Debug (message de débogage)

Codes de commodité (Facility)

La commodité (facility) définit la source du message :

  • 0 — messages du noyau
  • 1 — messages au niveau utilisateur
  • 2 — système de messagerie
  • 3 — démons système
  • 4 — messages de sécurité/autorisation
  • 5 — messages générés en interne par syslogd
  • 6 — sous-système d'imprimante en ligne
  • 7 — sous-système de nouvelles réseau
  • 8 — sous-système UUCP
  • 9 — démon d'horloge
  • 10 — messages de sécurité/autorisation
  • 11 — démon FTP
  • 12 — sous-système NTP
  • 13 — audit de journal
  • 14 — alerte de journal
  • 15 — démon d'horloge
  • 16-23 — commodités locales

Configuration du serveur Syslog

Dans Linux

rsyslog

Rsyslog est une version améliorée du syslog classique. Installez-le :

```bash

Ubuntu/Debian

sudo apt-get install rsyslog

CentOS/RHEL

sudo yum install rsyslog ```

Activez la réception des messages réseau en modifiant /etc/rsyslog.conf :

```

Activer le module UDP

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

Activer le module TCP

module(load="imtcp") input(type="imtcp" port="514") ```

Créez un fichier séparé pour les messages réseau : ```

Tous les messages réseau dans un fichier séparé

. @remote-server-ip:514 ```

Redémarrez le service : bash sudo systemctl restart rsyslog

syslog-ng

Option alternative :

bash sudo apt-get install syslog-ng

Fichier de configuration /etc/syslog-ng/syslog-ng.conf :

``` source s_network { udp(port(514)); tcp(port(514)); };

destination d_remote_logs { file("/var/log/remote/${FULLHOST}/messages.log"); };

log { source(s_network); destination(d_remote_logs); }; ```

Dans Windows

Windows ne prend pas en charge Syslog par défaut, mais il existe plusieurs solutions :

NXLog Community Edition

  1. Téléchargez et installez NXLog
  2. Configurez le fichier de configuration /conf/nxlog.conf :

``` Module im_udp Host 0.0.0.0 Port 514 Protocol udp ParseFormat syslog

Module om_file File "/var/log/syslog.log"

Path in_syslog => out_file ```

Kiwi Syslog Server

Solution commerciale populaire avec interface graphique.

Configuration des clients

Clients Linux

Pour envoyer des messages à un serveur distant, ajoutez une ligne à /etc/rsyslog.conf :

```

Envoyer tous les messages au serveur distant

. @@remote-server-ip:514 ```

Pour des types de messages spécifiques : ```

Erreurs uniquement

*.err @@remote-server-ip:514

Messages du noyau uniquement

kern.* @@remote-server-ip:514 ```

Configuration des applications

De nombreuses applications peuvent envoyer des journaux via Syslog. Exemple pour Apache :

```

Dans le fichier de configuration Apache

LogLevel warn ErrorLog "| /usr/bin/logger -t httpd -p local6.error" ```

Clients Windows

Pour envoyer des journaux depuis des machines Windows, vous pouvez utiliser :

  1. NXLog — envoi d'événements depuis le journal des événements
  2. SolarWinds Free Syslog Sender
  3. Scripts PowerShell personnalisés

Sécurité Syslog

Le Syslog traditionnel utilise UDP sans chiffrement, ce qui crée des risques :

  • Interception des messages
  • Usurpation de source
  • Violation de l'intégrité des données

Pour résoudre ces problèmes :

  • Utilisez TCP au lieu d'UDP
  • Implémentez le chiffrement TLS (RFC 5425)
  • Appliquez l'authentification de la source
  • Utilisez un VPN pour la transmission des journaux

Recommandations pratiques

Choisir la bonne solution

  1. Pour les petits réseaux : rsyslog ou syslog-ng
  2. Pour les environnements d'entreprise : Splunk, ELK Stack, Graylog
  3. Pour le cloud : solutions de gestion des journaux cloud

Surveillance des performances

  • Surveillez le volume des données transmises
  • Surveillez la charge de l'interface réseau
  • Vérifiez les performances du serveur de journaux

Architecture haute disponibilité

  • Configurez plusieurs serveurs de journaux
  • Utilisez l'équilibrage de charge
  • Mettez en œuvre la sauvegarde des journaux

Conclusion

Syslog est un outil puissant pour la collecte centralisée des journaux. En configurant correctement ce système, vous pouvez surveiller et analyser efficacement les événements dans votre infrastructure. N'oubliez pas la sécurité et l'évolutivité lorsque vous planifiez l'architecture de votre système de journaux.