Eu abandonei o caso. Apesar de ter muito mais dependências, instalei o syslog-ng, que eu conheço melhor. Isso não responde a pergunta, no entanto, como é um trabalho de último recurso. Deixo a questão em aberto para quem sabe a resposta embora.
Uma vez eu quis que o rsyslogd (5.8.11) em um container Debian 7 (em OpenVZ) também recebesse logs de hosts remotos. Nisso, funciona. O que não funciona mais são as mensagens de log do host local. Por exemplo, quando digito:
$ logger -t shell "Test log message from the command line"
nada aparece em /var/log/messages
nem em /var/log/syslog
. Tudo o que fiz foi adicionar um arquivo de configuração a /etc/rsyslog.d
, da seguinte forma:
# cat /etc/rsyslog.d/udp.conf
# Enable UDP listening
# http://www.rsyslog.com/tag/tcp/
$ModLoad imudp
# log every host in its own directory
$template RemoteHost,"/var/log/hosts/%HOSTNAME%/%$YEAR%-%$MONTH%-%$DAY%.log"
# Remote Logging
$RuleSet remote
*.* ?RemoteHost
### Listeners
# Bind ruleset to udp listener and activate
$InputUDPServerBindRuleset remote
$UDPServerRun 514
Mantive o estoque /etc/rsyslogd.conf
intacto, presumindo que não precisei alterar nada. Aqui está:
# purge /etc/rsyslog.conf # 'purge' is 'cat with comments removed'
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
*.emerg :omusrmsg:*
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
Com essa configuração, as linhas de log dos hosts remotos também aparecem em /var/log/messages
e /var/log/syslog
(que não é o que eu quero). Linhas registradas locais não são mais necessárias.
Alguém sabe como apenas adicionar log remoto enquanto mantém as funcionalidades iniciais do rsyslogd?
Eu abandonei o caso. Apesar de ter muito mais dependências, instalei o syslog-ng, que eu conheço melhor. Isso não responde a pergunta, no entanto, como é um trabalho de último recurso. Deixo a questão em aberto para quem sabe a resposta embora.