En primer lugar, gracias por dedicar el tiempo a echar un vistazo a este número, se lo agradecemos mucho.
Tuve la configuración adjunta de rsyslog.conf ejecutándose desde hace algún tiempo hasta hoy, cuando tuve que reiniciar rsyslog porque el disco se estaba llenando. El resultado es que rsyslog ahora está iniciando sesión en una nueva ubicación (actualizada en el archivo .conf) con todos los permisos anteriores (actualmente root|root rw para realizar pruebas de forma segura).
El problema al que me enfrento es que no importa lo que intente, rsyslog no genera ningún archivo. Ejecuté un tcpdump y todavía recibo datos. Los criterios coincidentes (dirección IP del host) no deberían tener cambios y la configuración tampoco ha cambiado.
Cualquier ayuda, en particular los comandos de depuración que pueda ejecutar, sería muy apreciada. Prefiero aprender algo nuevo (como rsyslog) que desinstalarlo y simplemente usar syslog-ng en su lugar... Aquí está la configuración:
### 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
Gracias de antemano :)
Respuesta1
Estás utilizando una ruta personalizada para tu archivo de registro, por lo que selinux te está bloqueando. Intente emitir setenforce 0
y reiniciar rsyslog. Si ahora funciona, se confirma que su problema fue selinux.
Para corregir eso permanentemente mientras continúa usando selinux, debe emitir
semanage fcontext -a -t var_log_t '/opt/rsyslog(/.*)?'; restorecon -RF /opt/rsyslog
Después de eso, reinicie rsyslog.