Como acompanhamento da minha pergunta anterior Impedir que syslogs sejam logado em journalctl , e esta maravilhosa resposta de JdeBP Eu quero saber como faço para ignorar systemd-journald
para enviar mensagens syslog diretamente para o daemon rsyslog.
O problema que estou enfrentando é que, como meus aplicativos Python estão sendo gerenciados por systemd
, os logs de diário ( journalctl -u
) são inundados com essas mensagens syslog que o aplicativo está gravando.
O script Python que tenho é como abaixo, que abre um contêiner de log local que rsyslogd
escuta e aplica a ação de encaminhamento.
#!/usr/bin/env python
import syslog
import sys
syslog.openlog(facility=syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO, sys.argv[1])
e meu arquivo de configuração em /etc/rsyslog.d/dbserver.conf
,
# rsyslog v3 config file
#$ModLoad imuxsock.so
#$ModLoad imklog.so
#$template RFC5424Fmt,"<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID%%msg%\n"
$template NewFileFmt,"<%syslogfacility-text%.%syslogpriority%> %TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
template(name="forwardFmt" type="string" string="<%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%")
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
#*.info;local0.none;local7.none;mail.none;authpriv.none;cron.none /var/log/messages;NewFileFmt
#authpriv.* /var/log/secure
#mail.* /var/log/maillog
#cron.* /var/log/cron
#*.emerg;local1.none *
#uucp,news.crit /var/log/spooler
#local7.* /var/log/boot.log
local0.* /var/log/dbserver.log;NewFileFmt
#if $syslogfacility-text contains 'local0' then {
if $syslogfacility-text contains 'local0' then {
action(type="omfwd" protocol="tcp" port="514" name="dbserver"
target="syslog-server" template="forwardFmt"
queue.type="LinkedList" queue.filename="dbserver"
queue.SaveOnShutdown="off"
)
}
Como eu modificaria essa configuração ou a melhor maneira, para ignorar esses syslogs sendo inundados nos logs de diário.