Моя цель / дизайн сервиса systemd имеет несколько под-сервисов, все однозначно идентифицированные. Для моего test.target
требуется 10 экземпляров test - @ .service
. Результатом являются целевые прогоны и выявлено 10 сервисов. например (скрыто) (скрыто) и т. д. Это распространенный способ целевого управления множеством похожих сервисов.
Для каждой службы Systemd SyslogIndentifer задано значение SyslogIdentifier = test-% i
. Поэтому, когда он регистрируется в syslog / journald, имя средства будет test-0, test-1 и т. Д.
Вот образец журнала journald, обратите внимание на средство test-0
:
Oct 29 03:32:35 black-node.local test-0[5015]: 1603942355636701,CON,192.168.10.151:57458,4,12,1,-,-,-,timeout expired; UDP connection assumed closed.
Теперь мне нужно / я хочу записать все полученные сообщения - *
syslog в отдельный файл журнала. Я попытался добавить следующее в `/etc/rsyslog.d/test.conf:
$template TestFile,"/var/log/test-%syslogfacility-text%.log"
test-*.* ?TestFile
, но при восстановлении rsyslogd ( sudo systemctl restart rsyslog
) получаю следующие ошибки:
Message from syslogd@black-node at Oct 29 03:19:22 ...
rsyslogd:file './.* ? TestFile': open error: Permission denied [v8.24.0-52.el7 try http://www.rsyslog.com/e/2433 ]
Message from syslogd@black-node at Oct 29 03:19:22 ...
rsyslogd:action 'action 2' resumed (module 'builtin:omfile') [v8.24.0-52.el7 try http://www.rsyslog.com/e/2359 ]
Это не права доступа к файлам , а страница rsyslog error 2359 говорит, что это может быть связано с selinux (!!!). Итак, я попытался отключить selinux ( sudo setenforce 0
) и снова перезапустить rsyslogd:
Message from syslogd@black-node at Oct 29 03:18:07 ...
systemd:Started System Logging Service.
Message from syslogd@black-node at Oct 29 03:18:07 ...
rsyslogd:error during parsing file /etc/rsyslog.d/test.conf, on or before line 7: warnings occured in file '/etc/rsyslog.d/transfers.conf' around line 7 [v8.24.0-52.el7 try http://www.rsyslog.com/e/2207 ]
Message from syslogd@black-node at Oct 29 03:18:07 ...
rsyslogd:action '*' treated as ':omusrmsg:*' - please use ':omusrmsg:*' syntax instead, '*' will not be supported in the future [v8.24.0-52.el7 try http://www.rsyslog.com/e/2184 ]
Это немного более обнадеживает? Понятия не имею, как и нужно ли мне подавать: omusrmsg: но я пробовал:
$template TestFile,"/var/log/test-%syslogfacility-text%.log"
test-:omusrmsg:*.* ?TestFile
Теперь rsyslog перезапускается нормально, без ошибок или жалоб, но и без нового файла журнала.
На этом этапе я схожу с ума, так что Я изолирую первое служебное средство test-0
:
$template TestFile,"/var/log/test-%syslogfacility-text%.log"
test-0.* ?TestFile
Я вижу журналы в messages / journald, но мой файл журнала не создается, и при его перезапуске нет ошибок rsyslog.
Как я могу просто объединить несколько средств журнала в один файл журнала? Я даже не могу заставить работать общий случай типа файла динамического журнала ?! Будем признательны за любые советы. Спасибо.