Назад | Перейти на главную страницу

Journalctl и syslog: как это на самом деле работает?

Мне сложно понять, как ведение журнала работает в Linux.

После включения systemd это кажется немного проще, но у меня все еще есть пара концепций, которые все еще не полностью понятны.

Учитывая систему с journalctl, я хочу отправить некоторые сообщения журнала на удаленный хост. Для этой цели я установил rsyslog и настроил freeradius, чтобы он выводил свои журналы на local3, а затем настроил rsyslog для пересылки этих сообщений под local3 на удаленный сервер syslog. Теперь, являются ли системные журналы общими для rsyslog и journalctl? Может ли это вызвать какой-либо конфликт?

Помимо этого: Кто контролирует, что пишется в / var / log / messages? и как определенное приложение может выводить свои журналы в этот файл? Управляется ли это rsyslog? По systemd?

Если бы кто-нибудь мог помочь мне понять всю службу ведения журналов Linux, было бы неплохо.

Связь (-ы) между journald и rsyslog контролируется на стороне rsyslog с помощью его модулей ввода и вывода; есть imjournal и omjournal для чтения и записи в журнал соответственно.

Поэтому, если вы напишете что-то в rsyslog, оно появится в journald, только если вы настроили omjournal модуль.

rsyslog "владеет" /var/log/messages, обычный API системного журнала позволит приложениям писать в него. Сообщения журнала также могут оказаться там, если imjournal модуль настроен.

Это краткое руководство по RHEL объясняет вещи примерно так же.

Системы с journalctl являются системами ведения журнала, что означает, что они использовали журнал для работы со всеми записями системного журнала. По умолчанию эти системы не записывают журналы в / var / log / secure, / var / log / maillog / / var / log / messages ...

Системы с rsyslog записывают записи системного журнала в определенные файлы в директиве / var / log. Настройки об этих записях (какие журналы и какие файлы) записываются в /etc/rsyslog.conf

Оба используют протокол системного журнала, но могут совместно использовать. Так что будет нормально, если вы без проблем будете использовать rsyslog и journalctl на одном компьютере.