🧾 journalctl — Часть 2: Cheatsheet и конфигурация systemd-journald

В этом дополнении собраны:


📑 Содержание


🧭 Часть 1 — Быстрый Cheatsheet (20 команд journalctl)

Команда Описание
1 sudo journalctl Показать все записи в журнале
2 sudo journalctl -n 50 Последние 50 записей
3 sudo journalctl -e Перейти в конец журнала
4 sudo journalctl -f Следить за логами в реальном времени
5 sudo journalctl -u nginx.service Логи конкретной службы
6 sudo journalctl -b Логи текущей загрузки
7 sudo journalctl -b -1 Логи предыдущей загрузки
8 sudo journalctl --list-boots Список всех загрузок (boots)
9 sudo journalctl -p err Только ошибки и выше
10 sudo journalctl -u nginx -p 3 --since today Ошибки nginx за сегодня
11 sudo journalctl --since "2 hours ago" Логи за последние 2 часа
12 sudo journalctl -k Только сообщения ядра (dmesg)
13 sudo journalctl -r Показать в обратном порядке
14 sudo journalctl -u ssh -n 100 --no-pager Удобный вывод без less
15 sudo journalctl -u nginx -o cat Только содержимое сообщений
16 sudo journalctl -u nginx --since yesterday -o json-pretty Экспорт JSON для анализа
17 sudo journalctl --disk-usage Посмотреть, сколько места занимают логи
18 sudo journalctl --vacuum-size=500M Очистить старые журналы до 500 МБ
19 sudo journalctl --vacuum-time=1month Удалить журналы старше месяца
20 sudo journalctl -u nginx -n 100 -f -o short-iso Последние 100 строк nginx + follow с ISO временем

💡 Совет:
Для быстрого анализа:


⚙️ Часть 2 — Настройка /etc/systemd/journald.conf

Файл конфигурации journald.conf определяет:

Обычно путь:


/etc/systemd/journald.conf

После правок обязательно перезапустите службу:

sudo systemctl restart systemd-journald

🔹 Основные параметры

Параметр Описание Рекомендация
Storage= Где хранить логи: volatile, persistent, auto, none persistent — чтобы сохранять логи между перезагрузками
SystemMaxUse= Максимальный общий объём логов 1G5G в зависимости от сервера
SystemKeepFree= Минимум свободного места, которое journald должен оставлять 500M
SystemMaxFileSize= Максимальный размер одного файла журнала 100M
RuntimeMaxUse= Лимит для временных (RAM) журналов 200M
MaxRetentionSec= Максимальный срок хранения логов 1month (или 2weeks)
RateLimitIntervalSec= Интервал подсчёта для ограничения частоты записей 30s
RateLimitBurst= Максимальное количество сообщений за интервал 1000
Compress= Сжимать старые журналы yes
Seal= Подписывать архивные журналы для защиты от подделки yes
SplitMode= Разделение журналов: uid, none uid (по пользователям)

💡 Пример оптимизированного journald.conf (Production)

[Journal]
Storage=persistent
Compress=yes
Seal=yes
SplitMode=uid

SystemMaxUse=2G
SystemKeepFree=500M
SystemMaxFileSize=200M
RuntimeMaxUse=200M

MaxRetentionSec=1month

RateLimitIntervalSec=30s
RateLimitBurst=1000

ForwardToSyslog=no
ForwardToConsole=no
ForwardToWall=no

⚠️ После изменений:

sudo systemctl restart systemd-journald
sudo journalctl --verify

🧹 Часть 3 — Проверка и обслуживание журналов

Проверить состояние и объём логов:

sudo journalctl --disk-usage

Очистить логи старше 2 недель:

sudo journalctl --vacuum-time=2weeks

Уменьшить объём логов до 1 ГБ:

sudo journalctl --vacuum-size=1G

Принудительно выполнить ротацию:

sudo journalctl --rotate

🚀 Часть 4 — Рекомендации для production-сред


Итог: