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