У меня есть эти два параметра в /etc/rsyslog.conf
$ModLoad imjournal # provides access to the systemd journal
...
# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on
У меня возникли проблемы с SELinux, Rsyslog зафиксировал следующее:
Jun 6 10:53:14 vpod1-logm-front-3 rsyslogd: fopen() failed: 'Permission denied', path: '/var/spool/imjournal.state.tmp' [v8.24.0 try http://www.rsyslog.com/e/2013 ]
Мне пришлось добавить новую политику (сгенерированную audit2alow)
cat >syslog-imjournal.te << EOF
module syslog-imjournal 1.0;
require {
type syslogd_t;
type var_spool_t;
class dir { add_name remove_name write };
class file { create rename unlink write };
}
#============= syslogd_t ==============
allow syslogd_t var_spool_t:dir write;
allow syslogd_t var_spool_t:dir { add_name remove_name };
allow syslogd_t var_spool_t:file { create rename unlink write };
EOF
checkmodule -m -o syslog-imjournal.m syslog-imjournal.te
semodule_package --module syslog-imjournal.m --outfile syslog-imjournal.pp
semodule --install=syslog-imjournal.pp --priority=400
Я не знаю, безопасно ли это делать. Может быть, есть способ лучше?
решение1
Я думаю, проблема в том, что вы храните файл «imjournal.state» в неправильном месте, поэтому SELinux блокирует запись. Вместо того, чтобы создавать собственный модуль политики, который предоставляет слишком много разрешений, вам следует использовать местоположение по умолчанию, которое является /var/lib/rsyslog. Конфигурация по умолчанию гласит:
$WorkDirectory /var/lib/rsyslog
$IMJournalStateFile imjournal.state