Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| sysadmin:linux:systemd:gerer-journaux-systeme [2025/12/31 14:32] – supprimée - modification externe (Date inconnue) 127.0.0.1 | sysadmin:linux:systemd:gerer-journaux-systeme [2026/01/02 15:42] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | |||
| + | ====== journalctl: Gérer la journalisation des événements par systemd ====== | ||
| + | |||
| + | **systemd** intègre son propre système de journalisation indépendant des services syslog/ | ||
| + | |||
| + | Si besoin, il reste tout à fait possible d' | ||
| + | |||
| + | < | ||
| + | Pour que la journalisation soit pertinente, vérifier que le temps local est correctement définit, voir wiki [[sysadmin: | ||
| + | </ | ||
| + | |||
| + | Essentiellement pour des raisons de performances, | ||
| + | |||
| + | |||
| + | Invoqué sans arguments, journactl affiche l' | ||
| + | |||
| + | <code bash> | ||
| + | journalctl | ||
| + | </ | ||
| + | |||
| + | ===== Suivi temps réel ===== | ||
| + | |||
| + | L' | ||
| + | <code bash> | ||
| + | journalctl -f _PID=4319 | ||
| + | </ | ||
| + | |||
| + | ===== Filtrage des enregistrements ===== | ||
| + | |||
| + | Quelques méthodes de filtrage usuelles | ||
| + | |||
| + | ==== Filtrage par service ==== | ||
| + | |||
| + | Utiliser l' | ||
| + | <code bash> | ||
| + | journalctl -u cron | ||
| + | </ | ||
| + | |||
| + | ==== Filtrage par criticité ==== | ||
| + | |||
| + | Pour filtrer par niveau de criticité (priority) utiliser l' | ||
| + | <code bash> | ||
| + | journalctl -p warning | ||
| + | </ | ||
| + | La commande affiche les message dont la criticité est au minimum warning. | ||
| + | |||
| + | |||
| + | ==== Filtrage par repères temporels ==== | ||
| + | |||
| + | Lister les événements via des repères temporels en spécifiant des time stamps | ||
| + | |||
| + | <code bash> | ||
| + | journalctl --since yesterday | ||
| + | journalctl --since "10 minutes ago" | ||
| + | journalctl --since "2 hours ago" | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | journalct -p warning --since " | ||
| + | </ | ||
| + | |||
| + | ==== Filtrage par utilisateur ==== | ||
| + | |||
| + | L' | ||
| + | <code bash> | ||
| + | journalctl --since "1 hours ago" _UID=1000 | ||
| + | </ | ||
| + | |||
| + | ==== Filtrage des messages du noyau ==== | ||
| + | |||
| + | Lister les messages du noyau, affichage complet: | ||
| + | <code bash> | ||
| + | journalctl -k --output=verbose | ||
| + | </ | ||
| + | |||
| + | Pour lister les messages émis depuis le démarrage: | ||
| + | <code bash> | ||
| + | journalctl -k -b | ||
| + | </ | ||
| + | |||
| + | ===== Historique ===== | ||
| + | |||
| + | Pour afficher les messages émis lors du précédent démarrage: | ||
| + | <code bash> | ||
| + | journalctl -k -b -1 | ||
| + | </ | ||
| + | |||
| + | La mise en service courante à l' | ||
| + | |||
| + | <code bash> | ||
| + | journalctl --list-boots | ||
| + | </ | ||
| + | |||
| + | On pourra préciser l' | ||
| + | |||
| + | <code bash> | ||
| + | journalctl -k -b -17 | ||
| + | </ | ||
| + | |||
| + | |||
| + | Si l'on souhaite afficher les messages les plus récents, on peut utiliser l' | ||
| + | |||
| + | <code bash> | ||
| + | # Afficher les 100 enregistrements les plus récents: | ||
| + | journalctl -r -n 100 | ||
| + | </ | ||
| + | |||
| + | ===== Gestion des journaux ===== | ||
| + | |||
| + | Par défaut, le service **systemd-journald** en charge de la journalisation s' | ||
| + | |||
| + | Les fichiers journaux sont enregistrés dans ''/ | ||
| + | |||
| + | <code bash> | ||
| + | journalctl --disk-usage | ||
| + | </ | ||
| + | |||
| + | ==== Suppression/ | ||
| + | |||
| + | Pour libérer l' | ||
| + | * Une '' | ||
| + | * Une date limite avec %%--vacuum-time%% ; | ||
| + | * Un nombre de fichiers journaux. | ||
| + | |||
| + | |||
| + | <code bash> | ||
| + | # Pour faire chuter l' | ||
| + | journalctl --vacuum-size=500M | ||
| + | |||
| + | # Pour ne conserver que les journaux de moins d'un mois | ||
| + | journalctl --vacuum-time=" | ||
| + | |||
| + | # Ne conserver que 2 fichiers journaux (en plus de l' | ||
| + | journalctl --vacuum-files=2 | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Test d' | ||
| + | |||
| + | Pour vérifier l' | ||
| + | |||
| + | <code bash> | ||
| + | journalctl --verify | ||
| + | </ | ||
| + | |||
| + | ===== Paramétrer la rétention des journaux ===== | ||
| + | |||
| + | Le fichier de configuration principal de systemd-journald est ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | |||
| + | Les variables commentées dans le fichier présentent les valeurs par défaut. | ||
| + | |||
| + | <code bash> | ||
| + | # Créer le dossier s'il n' | ||
| + | mkdir / | ||
| + | |||
| + | # Créer un fichier pour vos paramétrages personnalisés | ||
| + | touch / | ||
| + | </ | ||
| + | |||
| + | <file txt local.conf> | ||
| + | [Journal] | ||
| + | |||
| + | # Limite d' occupation disque des journaux | ||
| + | SystemMaxUse=500M | ||
| + | |||
| + | # Période de rétention maximale des journaux à 1 mois (3600*24*30) | ||
| + | # | ||
| + | |||
| + | # équivalent | ||
| + | MaxRetentionSec=1month | ||
| + | </ | ||
| + | |||
| + | Après modification des paramétrages, | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl restart systemd-journald | ||
| + | </ | ||
| + | |||
| + | Pour afficher la configuration utilisée par le service, comme elle peut être répartie dans plusieurs fichiers, utiliser la commande : | ||
| + | |||
| + | <code bash> | ||
| + | systemd-analyze cat-config systemd/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Exemples de configuration ===== | ||
| + | |||
| + | |||
| + | ==== Logs en mémoire uniquement ==== | ||
| + | |||
| + | Pour une station de travail avec un disque NVMe, si on souhaite limiter les écritures sur disque et que la conservation de l' | ||
| + | |||
| + | |||
| + | < | ||
| + | [Journal] | ||
| + | # Log en mémoire uniquement | ||
| + | Storage=volatile | ||
| + | |||
| + | # Repartir les enregistrements dans des fichiers de 32MiO | ||
| + | # Créer max 8 fichiers | ||
| + | RuntimeMaxFiles=8 | ||
| + | RuntimeMaxFileSize=32M | ||
| + | |||
| + | |||
| + | # Limiter la génération des messages | ||
| + | # NB : chaque service peut redéfinir ces valeurs pour limiter | ||
| + | # les entrées | ||
| + | RateLimitIntervalSec=0 | ||
| + | RateLimitBurst=0 | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Enregistrement avec syslog ==== | ||
| + | |||
| + | : | ||
| + | |||
| + | Les journaux peuvent être transmis à syslog/ | ||
| + | |||
| + | Editer le fichier ''/ | ||
| + | |||
| + | < | ||
| + | [Journal] | ||
| + | |||
| + | Storage=none | ||
| + | ForwardToSyslog=yes | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Références ===== | ||
| + | |||
| + | * %%man journald.conf%% | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||