Я выполняю то, что является ванильным сервером Ubuntu 16.04, и я пытаюсь перенести голову, как вход настраивается по умолчанию. Я вижу это оба journald
и rsyslog
установлены и выполнение, но мне нисколько не ясно, как обрабатываются сообщения журнала.
Большинство сообщений, кажется, разоблачает обоих в /var/log/syslog
и через journalctl
, но я не вижу явной конфигурации для передачи между двумя в также /etc/systemd/journald.conf
(который в основном все комментируется по умолчанию), /etc/rsyslog.conf
или /etc/rsyslog.d/50-default.conf
. Я пытался искать официальную документацию или даже сообщение в блоге, объясняющее, как hese два настраиваются в Ubuntu, но не сумели найти что-либо.
Для дальнейшего добавления к моему беспорядку я выполнился logger -p local1.info Test
на хосте, и найденный, что ничто не было записано в /var/log/syslog
, в то время как сообщение действительно обнаруживалось под journalctl
.
Мои вопросы:
logger
по-видимому закончите в журнале, но не в системном журнале?Обновление: Складывается logger
не работа как ожидалось была ошибкой на моем конце, таким образом, это не относится к основному вопросу.
По умолчанию rsyslog
использует "imuxsock" модуль, модуль обеспечивает:
способность принять системный журнал обменивается сообщениями через локальные сокеты Unix. Самое главное это - механизм, которым системный журнал (3) вызов передает сообщения системного журнала к rsyslogd [1].
Это возможно для rsyslog
импортировать структурированные сообщения журнала из systemd-журнала с помощью модуля, названного "imjournal" [2].
Это может быть загрузка как:
module(load="imjournal")
в:
/etc/rsyslog.conf
В другой руке "systemd-journald" собирает все данные сами:
man systemd-journald
systemd-journald является системной службой, которая собирает и хранит регистрирующиеся данные. Это создает и поддерживает структурированные, индексированные журналы на основе регистрирующейся информации, которая получена от множества источников:
· Kernel log messages, via kmsg · Simple system log messages, via the libc syslog(3) call · Structured system log messages via the native Journal API, see sd_journal_print(4) · Standard output and standard error of system services · Audit records, via the audit subsystem
Можно отключить rsyslogd
в то время как у Вас все еще есть доступ к системному использованию журналов journalctl
.
$ sudo systemctl mask rsyslogd
$ sudo systemctl stop syslog.socket
$ sudo systemctl stop rsyslog.service
$ systemctl is-active rsyslog.service
inactive
$ logger -p mail.info Helllooo
$ journalctl
Например, песни использует "imuxsock" модуль для получения всех "systemd-journald" данных через rsyslog
в то время как opensuse не имеет "системного журнала" вообще.
Узнать, почему Ваше сообщение не заканчивалось к /var/log/syslog
, необходимо проверить этот файл:
less /etc/rsyslog.d/50-default.conf
искать *.info
, посмотрите, где они будут сохранены, это мог бы быть другой файл как messages
.
Для меня это обнаруживается в обоих journalctl
и syslog
.
Systemd является init системой, используемой для запуска сервисов когда начальные загрузки системы. Journald ответственен за то, что сделал журналы для сервисов, которые запускаются systemd. Путем интеграции журналируемый с systemd, даже самые ранние сообщения процесса начальной загрузки доступны журналируемому.
Rsyslog является демоном, особенно сделанным для обработки журнала, ничто, чтобы сделать с журналируемым. Это может взять, входит в систему многими путями и производит их во многих отношениях. Это не включено по умолчанию, что это берет сообщения журнала от журналируемого также. Для этого необходимо записать в/etc/rsyslog.conf файле,
$ModLoad imjournal # im -> input module
OR
load(type="imjournal")
Теперь, он примет журналы fromm журналируемый также. Но я предлагаю, чтобы Вы не изменяли свой/etc/rsyslog.conf файл.
В конце/etc/rsyslog.conf файла, существует записанная строка,
$IncludeConfig /etc/rsyslog.d/*.conf
Это означает, что все файлы, имеющие .conf в там, заканчиваются в/etc/rsyslog.d/папке, должен быть включен во время загрузки rsyslog. Так, все Ваши пользовательские конфигурации должны войти в эти файлы
, я предложил бы, чтобы Вы сделали файл/etc/rsyslog.d/journald.conf и вставили ниже отрывка в этом.
Ниже отрывок от rsyslog официальной страницы строки imjournal
module(load="imjournal" PersistStateInterval="100"
StateFile="/path/to/file") #load imjournal module
module(load="mmjsonparse") #load mmjsonparse module for structured logs
template(name="CEETemplate" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag% @cee: %$!all-json%\n" ) #template for messages
action(type="mmjsonparse")
action(type="omfile" file="/var/log/ceelog" template="CEETemplate")
1 - это загружает imjournal модуль для принятия журналов от журналируемого
2 - mmjsonparse модуль загружается используемый в парсинге журналов
3 - Они структурированы в описанный формат в шаблоне
4 - Это анализирует те журналы с помощью mmjsonparse модуля.
5 - Это отправляет те журналы в файл а именно,/var/log/ceelog согласно структуре, обеспеченной в данном шаблоне, с помощью omfile (выходной файл модуля - выводы в файл) модуль.
Вносят изменения в конфигурации согласно Вашей потребности.