Journalctl — “наріжний камінь” системного адміністратора. В результаті роботи з Journalctl я виявив та прибрав усі помилки, знайдені в системі, а Linux пришвидшився у 2 рази. У цій статті я розкажу що таке Journalctl та як з ним працювати й дам повний список команд.
Що таке Journalctl?
Journalctl — це службова утиліта командного рядка Linux, яка містить системні логи (записи) та події на рівні ядра. Належить до програмного компоненту systemd. З допомогою Journalctl можна аналізувати логи, визначати системні збої і помилки ініціалізації, конфлікти в конфігурації та інші проблеми всередині операційної системи Linux.
Повідомлення в журналі Journalctl класифікуються за рівнем пріоритету та категоріям (Facility). Класифікація записів відповідає класичному протоколу Syslog (RFC 5424).


Налаштувати роботу Journalctl можна у файлі конфігурації: /etc/systemd/journald.conf
Він містить наступні налаштування:
[Journal] #Storage=auto #Compress=yes #Seal=yes #SplitMode=uid #SyncIntervalSec=5m #RateLimitIntervalSec=30s #RateLimitBurst=10000 #SystemMaxUse= #SystemKeepFree= #SystemMaxFileSize= #SystemMaxFiles=100 #RuntimeMaxUse= #RuntimeKeepFree= #RuntimeMaxFileSize= #RuntimeMaxFiles=100 #MaxRetentionSec=0 #MaxFileSec=1month #ForwardToSyslog=no #ForwardToKMsg=no #ForwardToConsole=no #ForwardToWall=yes #TTYPath=/dev/console #MaxLevelStore=debug #MaxLevelSyslog=debug #MaxLevelKMsg=notice #MaxLevelConsole=info #MaxLevelWall=emerg #MaxLevelSocket=debug #LineMax=48K #ReadKMsg=yes #Audit=yes
Список команд Journalctl
Усі команди виконувати з приставкою sudo від імені суперадміністратора:
journalctl— виклик служби Journalctl і показ усіх записів журналу.journalctl -n 100— показати 100 останніх записів журналу.journalctl -f— показувати записи журналу в реальному часі.journalctl -k— вивід повідомлень ядра Linux.journalctl -e— відкрити журнал, відмотавши його до останнього запису.journalctl -b— показати усі записи з моменту останнього завантаження.journalctl --list-boots | tail– переглянути останні 10 рядків логів усіх запусків системи.journalctl -b -2– переглянути логи завантаження системи за номером.journalctl -b -p 3– переглянути останні повідомлення, які з’являються при запуску (boot) системи.journalctl --since 2022–09–19— перегляд записів журналу від вказаної дати (можна також додати час).journalctl --since 2022–12–17 --until 2022–12–18 10:00:00— перегляд записів журналу за вказаним проміжком дати і часу.journalctl --since yesterday— показати вчорашній журнал логів.journalctl -p err— вивести записи журналу за рівнем пріоритету “Error” (помилка). Усі рівні див. у табл. вище.journalctl -u nginx.service— вивести записи журналу, пов’язані з вказаною службою.journalctl -u NetworkManager -n 5– вивести останні 5 записів журналу, пов’язані з вказаною службою.systemctl list-units — type=service— дуже корисна додаткова команда, показує список назв усіх сервісів, зареєстрованих в системі. Червоним кольором підсвічуються проблемні. Їх назву можна вказати у команді вище та знайти в журналі.journalctl --grep=ЗНАЧЕННЯ— пошук записів журналу за збігом по вказаному значенню.journalctl _PID=1— пошук записів журналу за вказаним ідентифікатором системного процесу.journalctl /usr/sbin/nginx— пошук записів журналу за назвою виконуваного файлу.journalctl --disk-usage— показати скільки дискового простору займають журнали.journalctl --vacuum-size=100M— видалити усі записи журналу, залишивши останні 100 Мб.journalctl --vacuum-time=2weeks— видалити усі записи журналу крім останніх 2 тижнів.journalctl -o json— вивести логи в форматі JSON.- Повний список опцій та ключів можна переглянути, виконавши команду:
journalctl -h - Системна документація:
man journalctl - Перезвантажити службу:
sudo service systemd-journald restart
Вивід повідомлень Journalctl
Journalctl виводить усі записи з системних журналів Linux, включаючи помилки та попередження, починаючи з того моменту, коли система почала завантажуватись.

Старі записи йдуть першими і починаються згори, новіші – внизу. Користувач може використовувати клавіші: “PageUp” і “PageDown”, щоб пересуватися по списку, “Enter” – щоб переглядати журнал в рядок і “Q” – щоб вийти.
Формат повідомлень Journalctl має наступний формат:
Oct 25 03:27:34 host service.name[1]: Log message.
- Oct 25 03:27:34 – дата і час створення запису логу;
- host – ім’я системи, у якій зареєстровано лог;
- service.name – ім’я служби або додатку, яка створила цей запис логу;
- [1] – номер служби, зареєстрованої в системі, або як його ще називають PID;
- Log message – повідомлення запису лога.
Автор: © Konrad Ravenstone, KR. Laboratories Research Labs



