Wiki
DevOps

journald — что это простыми словами

journald — компонент systemd, единая точка сбора логов ядра, сервисов, приложений. Бинарный формат, journalctl для чтения, замена rsyslog/syslog на всех Linux 2013+.

systemd-journald — сервис сбора логов, поставляемый вместе с systemd. Единый бинарный лог в `/var/log/journal/` (persistent) или `/run/log/journal/` (только в RAM). Заменяет классический syslogd на всех современных Linux (Ubuntu 15.04+, Debian 8+, RHEL 7+).

Что попадает: (1) сообщения ядра (`dmesg`), (2) stdout/stderr всех systemd-services, (3) прямые API-вызовы `systemd-cat` / `sd_journal_send`, (4) syslog от старых приложений (форвард на 514/udp). Метаданные каждой записи: `_HOSTNAME`, `_SYSTEMD_UNIT`, `_PID`, `_UID`, `_COMM`, `PRIORITY` (0-7).

Команды `journalctl`: (1) `journalctl -u nginx` — логи одного unit. (2) `journalctl -f` — tail -f. (3) `journalctl --since "1 hour ago"` — по времени. (4) `journalctl -p err` — только errors. (5) `journalctl -k` — только kernel. (6) `journalctl _COMM=sshd --since today` — по бинарнику. (7) `journalctl --disk-usage` — сколько занимает.

Ротация: `/etc/systemd/journald.conf` → `SystemMaxUse=1G`, `MaxRetentionSec=1month`. По умолчанию — до 10 % свободного места в partition.

Форвард в централизованный log-стек: (1) journalctl → fluent-bit / vector → Loki/Elasticsearch. (2) `ForwardToSyslog=yes` — на remote rsyslog. У нас на elistrax все ноды → vector → Loki, grafana для поиска.

Частые вопросы

Логи пропадают после reboot?
Если `Storage=auto` и `/var/log/journal/` не создан — да, только в RAM. `mkdir /var/log/journal && systemctl restart systemd-journald` — persistent.
Как отдать логи одного сервиса за инцидент?
`journalctl -u service --since '2026-06-01 12:00' --until '13:00' -o export > incident.log`.

Смотрите также