Администрирование

Журналирование

Системные журналы и логирование в SAIKYO OS

Systemd Journal

SAIKYO OS использует systemd-journald для централизованного сбора логов. Журнал хранит сообщения от ядра, служб, приложений и системных компонентов.

Основные команды journalctl

# Все логи (с пагинацией)
journalctl

# Последние записи
journalctl -n 100

# В реальном времени
journalctl -f

# Логи текущей загрузки
journalctl -b

# Логи предыдущей загрузки
journalctl -b -1

# Список загрузок
journalctl --list-boots

Фильтрация по службе

# Логи конкретной службы
journalctl -u nginx
journalctl -u ssh
journalctl -u NetworkManager

# Несколько служб
journalctl -u nginx -u php-fpm

# С временным диапазоном
journalctl -u nginx --since "2024-01-01" --until "2024-01-02"
journalctl -u nginx --since "1 hour ago"

Фильтрация по приоритету

# Только ошибки и критические
journalctl -p err

# Уровни приоритета:
# 0: emerg   - система неработоспособна
# 1: alert   - требуется немедленное действие
# 2: crit    - критические условия
# 3: err     - ошибки
# 4: warning - предупреждения
# 5: notice  - важные уведомления
# 6: info    - информационные сообщения
# 7: debug   - отладочные сообщения

journalctl -p warning..err

Фильтрация по процессу

# По PID
journalctl _PID=1234

# По пользователю
journalctl _UID=1000

# По исполняемому файлу
journalctl /usr/bin/nginx

Традиционные логи

Помимо journald, некоторые приложения пишут в традиционные файлы логов:

ФайлОписание
/var/log/syslogОбщий системный журнал
/var/log/auth.logАутентификация и авторизация
/var/log/kern.logСообщения ядра
/var/log/dmesgЗагрузка ядра
/var/log/apt/Логи APT
/var/log/nginx/Логи Nginx
/var/log/audit/Аудит безопасности

Ротация логов

Logrotate автоматически управляет размером и архивацией логов:

# Конфигурация
/etc/logrotate.conf
/etc/logrotate.d/

# Принудительная ротация
sudo logrotate -f /etc/logrotate.conf

# Проверка конфигурации
sudo logrotate -d /etc/logrotate.conf

Настройка journald

Файл конфигурации: /etc/systemd/journald.conf

[Journal]
# Максимальный размер журнала
SystemMaxUse=500M

# Максимальный размер одного файла
SystemMaxFileSize=50M

# Хранить логи на диске (по умолчанию volatile)
Storage=persistent

# Сжатие
Compress=yes

Полезные примеры

# Ошибки за последний час
journalctl -p err --since "1 hour ago"

# Логи ядра
journalctl -k

# Вывод в JSON
journalctl -o json-pretty

# Очистка старых логов
sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=500M