Системное журналирование
100%

Журналирование · Урок 1

Системное журналирование

Узнайте, как связаны источники журналов Linux, сборщики, хранилища и средства просмотра.

Журналы записывают события ядра, служб, приложений и компонентов безопасности. Они помогают диагностике и аудиту, только если сбор работает, временные метки понятны и нужный источник включён.

Путь сообщения журнала

Путь журналирования состоит из отдельных частей:

  1. Источник выдаёт событие.
  2. Сборщик принимает и обогащает его.
  3. Правила маршрутизации и хранения выбирают место записи или пересылки.
  4. Средство просмотра запрашивает сохранённые записи.

На хосте systemd systemd-journald обычно собирает стандартный вывод служб, сообщения ядра и сообщения journal-native или syslog. Демон syslog вроде rsyslog также может принимать сообщения и записывать традиционные текстовые файлы либо пересылать их. Приложения могут вести собственные файлы или внешнюю телеметрию.

Какой компонент решает, где хранить или куда пересылать принятые сообщения?

Поиск доступных журналов

Не предполагайте одинаковые файлы на каждом хосте. Проверьте активные службы журналирования и локальную конфигурацию:

$ systemctl --type=service --state=running | grep -E 'journal|syslog'
$ ls -la /var/log
$ journalctl --disk-usage

/var/log/syslog распространён в семействе Debian при совместимой маршрутизации, а /var/log/messages — в других системах. Оба могут отсутствовать на хосте только с journal. Дополнительные назначения определяются документацией приложения и конфигурацией unit.

Что обязательно означает отсутствие /var/log/syslog?

Запрос journal

Начните с ограниченного запроса, а не всего журнала:

$ journalctl -b -p warning
$ journalctl -u ssh.service --since '1 hour ago'

-b выбирает текущую загрузку, -p фильтрует приоритет, -u — unit. Имена units и сохранённые загрузки различаются. journalctl --list-boots показывает доступные загрузки, а journalctl -f следует новым записям при воспроизведении проблемы.

Какой параметр ограничивает запрос journalctl текущей загрузкой?

Чтение записей в контексте

Традиционная строка syslog может выглядеть так:

Jan 27 07:41:32 icebox anacron[4650]: Job `cron.weekly' started

Она содержит время, хост, программу и PID, затем сообщение. Считайте текст выводом приложения, а не гарантированно структурированным фактом. Проверяйте часовой пояс, синхронизацию часов, boot ID, повторное использование PID и соседние записи. Поля journal могут предоставлять более сильные идентификаторы, чем отображаемый текст.

Журналы могут содержать имена, адреса, пути, токены и другие чувствительные данные. Используйте минимальные права, редактируйте экспортируемые копии и сохраняйте оригиналы и временные метки при расследовании.

Что нужно сделать перед внешней передачей фрагмента журнала?

Урок завершён

Вы завершили Системное журналирование

Теперь вы можете находить и запрашивать журналы Linux, не предполагая единое хранилище.

  • Разделять источники, сборщики, маршрутизацию, хранение и просмотр.

  • Определять активную конфигурацию журналирования хоста.

  • Ограничивать journal по unit, загрузке, времени или приоритету.

  • Сопоставлять записи в контексте и защищать чувствительные данные.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Журналирование