Em primeiro lugar, obrigado por dedicar seu tempo para dar uma olhada neste problema, é muito apreciado.
Eu tenho a configuração rsyslog.conf anexada em execução há algum tempo até hoje, quando tive que reiniciar o rsyslog porque um disco estava ficando cheio. O resultado é que o rsyslog agora está registrando em um novo local (atualizado no arquivo .conf) com todas as permissões anteriores (atualmente root|root rw para teste seguro).
O problema que estou enfrentando é que não importa o que eu tente, o rsyslog não gera um arquivo. Executei um tcpdump e ainda estou recebendo dados. Os critérios de correspondência (endereço IP do host) não devem ter alterações e a configuração também não foi alterada.
Qualquer ajuda, especialmente comandos de depuração que eu possa executar, seria muito apreciada. Prefiro aprender algo novo (como rsyslog) do que desinstalá-lo e apenas usar o syslog-ng... Aqui está a configuração:
### 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
Agradeço antecipadamente :)
Responder1
Você está usando um caminho personalizado para o seu arquivo de log, então o selinux está bloqueando você. Tente emitir setenforce 0
e reiniciar o rsyslog. Se funcionar agora, está confirmado que seu problema era selinux.
Para corrigir isso permanentemente enquanto continua usando o selinux, você precisa emitir
semanage fcontext -a -t var_log_t '/opt/rsyslog(/.*)?'; restorecon -RF /opt/rsyslog
Depois disso, reinicie o rsyslog.