В Linux протоколирование событий обеспечивают несколько ключевых демонов — выбор зависит от дистрибутива и версии системы.
В Linux протоколирование событий обеспечивают несколько ключевых демонов — выбор зависит от дистрибутива и версии системы.
...Читать далее
Оглавление
В Linux протоколирование событий обеспечивают несколько ключевых демонов — выбор зависит от дистрибутива и версии системы.
Основные демоны протоколирования
- syslogd (из пакета sysklogd) — классический демон:
обрабатывает сообщения от приложений и ядра;
руководствуется правилами из /etc/syslog.conf;
направляет логи в файлы (например, /var/log/messages, /var/log/auth.log). - rsyslog — современная, высокопроизводительная замена syslogd:
поддерживает фильтрацию по свойствам сообщений;
умеет отправлять логи на удалённые серверы;
конфигурация — в /etc/rsyslog.conf и /etc/rsyslog.d/;
широко используется в Debian, Ubuntu, RHEL/CentOS. - systemd-journald — демон из системы systemd:
собирает логи всех компонентов (ядро, службы, приложения) в бинарную базу (/var/log/journal/);
не требует настройки отправки логов — автоматически перехватывает stdout/stderr процессов;
просмотр через journalctl;
часто работает совместно с rsyslog (передает логи в текстовые файлы). - klogd — специальный демон для логов ядра:
перехватывает сообщения ядра, которые syslogd/rsyslog не видят;
обычно идёт в комплекте с sysklogd.
Как определить, какой демон используется
- Проверить запущенные процессы:ps aux | grep -E 'syslogd|rsyslogd|journald|klogd'
- Посмотреть установленные пакеты (примеры для разных дистрибутивов):
Debian/Ubuntu:dpkg -l | grep -E 'sysklogd|rsyslog|systemd'
RHEL/CentOS/Fedora:rpm -qa | grep -E 'sysklogd|rsyslog|systemd' - Проверить наличие файлов конфигурации:
/etc/syslog.conf — syslogd;
/etc/rsyslog.conf — rsyslog;
/etc/systemd/journald.conf — systemd-journald.
Важные утилиты для работы с логами
- journalctl — просмотр логов systemd-journald (например, journalctl -b — логи текущей загрузки).
- logger — ручная отправка сообщений в систему протоколирования (например, logger "Тест сообщения").
- tail -f /var/log/*.log — мониторинг текстовых логов в реальном времени.
Резюме
- В старых дистрибутивах чаще встречается syslogd + klogd.
- В современных системах (Ubuntu 16.04+, Debian 9+, RHEL 7+) обычно работает rsyslog или systemd-journald.
- В дистрибутивах на базе systemd (почти все актуальные) journald — основной сборщик, но rsyslog может дописывать логи в текстовые файлы для совместимости.