Remove a formatação da configuração específica do rsyslog

1

Estou criando um aplicativo que terá algumas partes móveis. Alguns deles serão agendados pelo cron, outros são acionados por um serviço usando o inotify para escutar a chegada de arquivos.

Como gostaria que todos os logs terminassem em um formato uniforme, acho necessário dizer ao rsyslog que ele deve manipular todos os logs de um nome de programa específico sem qualquer formatação adicional .

Consegui isso facilmente em uma máquina Red Hat 7.3 executando o rsyslogd 7.4.7 usando a seguinte configuração:

$template rawFormat,"%rawmsg%\n"
if $programname == 'forwardit' then /var/log/forwardit.log;rawFormat
& stop

No entanto, agora eu preciso ter exatamente a mesma configuração em uma máquina Debian Stretch, rodando o rsyslogd 8.24.0 e não está realmente funcionando ...

1) Eu tentei apenas usando o mesmo arquivo de configuração. O resultado é que as linhas de logs são enviadas para o arquivo correto, mas não estão usando o modelo:

<30>Oct  2 09:51:09 forwardit[24602]: {"task": "forward_file", "event": "Failed.", "timestamp": "2018-10-02T07:51:09.973558Z"}

Observe a aparência estranha de um < 30 > na frente, que não está presente no meu syslog ...

2) Presumi que as declarações de modelo de estilo antigo simplesmente não eram mais válidas, então tentei:

template (name="rawFormat" type="string" string="%rawmsg%\n")
if $programname == 'forwardit' then /var/log/forwardit.log;rawFormat
& stop

O mesmo resultado.

3) Indo em frente na mesma direção, tentei atualizar a aplicação do modelo:

template (name="rawFormat" type="string" string="%rawmsg%\n")
if $programname == 'forwardit' then action(type="omfile" File="/var/log/forwardit.log" Template="rawFormat")
& stop

E ainda não há alterações na saída real.

Veja o arquivo /etc/rsyslog.conf :

#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
module(load="imklog")   # provides kernel logging support
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
#module(load="imudp")
#input(type="imudp" port="514")

# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")


###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf


###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
#cron.*             /var/log/cron.log
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

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info           -/var/log/mail.info
mail.warn           -/var/log/mail.warn
mail.err            /var/log/mail.err

#
# Some "catch-all" log files.
#
*.=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

#
# Emergencies are sent to everybody logged in.
#
*.emerg             :omusrmsg:*
    
por Falc 02.10.2018 / 10:00

1 resposta

0

Tudo bem, então, depois de mais pesquisas, eu estava pesquisando as propriedades disponíveis e encontrei rawmsg-after-pri , o que explica que o < 30 > Eu estava vendo é o que o rsyslog chama de PRI.

Isso me leva a perceber que, provavelmente, o conteúdo real de rawmsg mudou entre as versões. Então, mudei o modelo para usar msg e tudo está bem.

    
por 02.10.2018 / 13:28

Tags