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

rsyslog не записывает файл журнала после перезапуска

Прежде всего, спасибо, что потратили время, чтобы взглянуть на этот вопрос, это очень важно.

У меня была запущенная конфигурация rsyslog.conf в течение некоторого времени до сегодняшнего дня, когда мне пришлось перезапустить rsyslog, поскольку диск наполнялся. В результате rsyslog теперь ведет журнал в новом месте (обновленном в файле .conf) со всеми предыдущими разрешениями (в настоящее время root | root rw для обеспечения безопасности тестирования).

Проблема, с которой я столкнулся, заключается в том, что, что бы я ни пытался, rsyslog не выводит файл. Я запустил tcpdump, но все еще получаю данные. Критерии соответствия (IP-адрес хоста) не должны быть изменены, и конфигурация тоже не изменилась.

Любая помощь, особенно команды отладки, которые я могу запустить, будет принята с благодарностью. Я бы предпочел узнать что-то новое (например, rsyslog), чем удалить его и использовать вместо этого syslog-ng ... Вот конфигурация:

    ### Modules
$ModLoad imtcp
$ModLoad imudp
$ModLoad imuxsock       # provides support for local system logging (e.g. via logger command)
$ModLoad imklog         # provides kernel logging support (previously done by rklogd)

### Set log file permissions
$FileOwner root
$FileGroup root
$FileCreateMode 0777
$DirCreateMode 0777
$Umask 0022
$PrivDropToUser root
$PrivDropToGroup root

### Listeners
# bind ruleset to tcp listener
$InputTCPServerBindRuleset remote
# and activate it:
$InputTCPServerRun 514

$InputUDPServerBindRuleset remote
$UDPServerRun 514

### Templates
#Format the message correctly
$template MsgFormat,"%msg%\n"

# log every host in its own directory

##$template TESTLOG,"/opt/rsyslog/var/log/test.log"

### Rulesets
# Local Logging
# N/A None required at this point in time
#
# Remote Logging
$RuleSet remote

#---MY MATCHING RULE---#

if ($fromhost-ip == "192.168.1.1") then ?TESTLOG

Заранее спасибо :)

Вы используете индивидуальный путь для файла журнала, поэтому selinux блокирует вас. Попробуйте выпустить setenforce 0 и перезапустить rsyslog. Если теперь он работает, это означает, что ваша проблема была в selinux.

Чтобы навсегда исправить это, продолжая использовать selinux, вам необходимо выполнить

semanage fcontext -a -t var_log_t '/opt/rsyslog(/.*)?'; restorecon -RF /opt/rsyslog

После этого перезапустите rsyslog.