Analyse et stockage des journaux

Localiser et analyser avec précision les journaux d’événements système à des fins de dépannage.

Architecture de journalisation

Architecture de journalisation utilisée par Linux pour enregistrer des événements.

  • Répertoire /var/log : héberge les fichiers syslog lisibles par l’utilisateur
  • Fichier /var/log/boot.log : stocke les messages de console liés au démarrage du système
  • Fichier /var/log/messages : stocke la plupart des messages syslog, (sauf ceux d’authentification, mails, cron et au débogage)
  • Fichier /var/log/maillog : stocke les messages syslog liés au serveur de messagerie
  • Fichier /var/log/secure : stocke les messages syslog liés aux opérations de sécurité et d’authentification dans le système
  • Fichier /var/log/cron : stocke les messages syslog liés aux tâches planifiées
  • Service rsyslog : trie et organise les messages syslog en fichiers dans le répertoire /var/log

Examen des entrées du journal système

Rechercher dans les journaux système des entrées pour enregistrer des événements en fonction de différents critères.

Afficher les événements provenant du processus ayant le PID=1 :

# journalctl _PID=1
[...]
Nov 01 17:03:30 Redhat1-Test1 systemd[1]: systemd-udevd.service: Consumed 1.140s CPU time.
Nov 01 17:03:30 Redhat1-Test1 systemd[1]: systemd-udevd-control.socket: Deactivated successfully.

Afficher les événements provenant du processus ayant le PID=81 :

# journalctl _UID=81
Nov 01 17:03:40 Redhat1-Test6 dbus-broker-lau[863]: Ready

Afficher les événements ayant une priorité warning. Les priorités possibles sont : emerg|alert|crit|err|warning|notice|info|debug :

# journalctl -p warning
[...]
Nov 05 08:03:52 Redhat1-Test6 systemd[1]: syslog.socket: Socket service syslog.service not loaded, refu>
Nov 05 08:03:52 Redhat1-Test6 systemd[1]: Failed to listen on Syslog Socket.
# journalctl -p crit
Nov 01 17:03:45 Redhat1-Test6 kernel: Warning: Unmaintained driver is detected: ip_set
Nov 05 08:01:48 Redhat1-Test6 root[9938]: Hello je t'ai à l'oeil !

Afficher les événements enregistrés au cours des 20 dernières minutes :

# journalctl --since "-20min"
Nov 05 10:01:01 Redhat1-Test6 run-parts[10414]: (/etc/cron.hourly) starting 0anacron
Nov 05 10:01:01 Redhat1-Test6 run-parts[10420]: (/etc/cron.hourly) finished 0anacron
Nov 05 10:01:01 Redhat1-Test6 CROND[10410]: (root) CMDEND (run-parts /etc/cron.hourly)

Afficher les événements enregistrés du service sshd depuis 10h :

# journalctl --since 10:00:00 _SYSTEMD_UNIT="sshd.service"
Nov 05 10:20:59 Redhat1-Test6 sshd[9874]: Accepted password for root from 192.168.1.105 port 41552 ssh2
Nov 05 10:21:18 Redhat1-Test6 sshd[9874]: pam_unix(sshd:session): session opened for user root(uid=0) b>

Conservation du journal système après un redémarrage

Configurer les journaux système pour conserver ses données après un redémarrage.

Fichiers et services :

  • /var/log/journal/
  • systemd-journald

Le répertoire /var/log/journal/ permet à systemd-journald de journaliser les données après un redémarrage. S’il n’existe pas, les logs de démmarrages ne sont pas conservées.

Création du répertoire :

# mkdir /var/log/journal

Configuration du storage en persistent dans /etc/systed.d/journald.conf :

# cat /etc/systemd/journald.conf
[...]
[Journal]
#Storage=auto
Storage=persistent

Relancer le service :

# systemctl restart systemd-journald.service

Après un reboot, les journaux seront conservés.

# journalctl -b 1         // Affiche les logs à partir du 1er démarrage du système
# journalctl -b 2 // Affiche les logs à partir du 2ème démarrage du système
# journalctl --list-boots // Affiche tous les logs liées à un démarrage du système

Journaux customisés

Création d’un fichier de configuration dans le répertoire /etc/rsyslog.d/.

Fichiers et services :

  • /var/log/my_messages-debug : cible, sera automatiquement créée
  • /etc/rsyslog.d/my_debug.conf : configuration de type *.<priorité> /le/fichier/cible
  • rsyslog

Les logs de type *.debug seront envoyé dans un nouveau fichier /var/log/my_messages-debug :

# vim /etc/rsyslog.d/my_debug.conf
*.debug /var/log/my_messages-debug

Restart de rsyslog :

# systemctl restart rsyslog.service

⚠️ Test de logs en debug :

# logger -p user.debug "Test de ciblage de logs dans un fichier"

Vérification :

# tail -n5 /var/log/my_messages-debug
[...]
Nov 5 09:20:01 Redhat1-Test6 root[10241]: Test de ciblage de logs dans un fichier

Pour voir la et s’inspirer de la syntaxe :

# cat /etc/rsyslog.conf

Synchronisation de l’horloge avec NTP

Maintenir une synchronisation précise de l’horloge à l’aide du protocole NTP (Network Time Protocol), et configurer le fuseau horaire pour garantir des horodatages corrects pour les événements enregistrés par les journaux système et les journaux.

Sélectionne un fuseau horaire de façon temporaire :

# tzselect

Change le fuseau horaire du système de façon permanente :

# timedatectl set-timezone Europe/Paris

Vérification :

# timedatectl
# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
ServerName example.ntp.org iburst

Vérification :

# chronyc sources -v

Documentation

Internet
MAN

> Partager <