Boa tarde, pessoal.
Estou utilizando a última versão do rsyslogd
compilada da base e com todos os módulos necessários (mmnormalize
, mmjsonparse
, ommongodb
e imtcp
/imudp
) validados e funcionais.
O arquivo de configuração está da seguinte forma:
module(
load="imuxsock"
sysSock.Use="on"
sysSock.Identify="/run/systemd/journal/syslog"
) # gives help for native system logging (e.g. by way of logger command)
module(load="imklog") # gives kernel logging help (beforehand accomplished by rklogd)
module(load="ommongodb")
module(load="mmnormalize")
module(load="mmjsonparse")
module(load="imudp") # must be accomplished simply as soon as
enter(kind="imudp" port="514" Ruleset="mongodb")
set $!usr!nome = "";
set $!usr!tipo = "";
template(title="cee" kind="subtree" subtree="$!usr")
ruleset(title="mongodb") {
motion(kind="mmjsonparse")
if $parsesuccess == "FAIL" then
motion(kind="mmnormalize" rulebase="/root/teste.rulebase" userawmsg="on")
if $!nome != "" then {
set $!usr!nome = $!nome;
name outwriter
}
else {
set $!usr!nome = "teste";
set $!usr!tipo = "tipo";
name outwriter
}
}
ruleset(title="outwriter") {
motion(kind="omfile" file="/var/log/logfile.cee" template="cee")
}
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /and so forth/rsyslog.d/*.conf
*.information;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/safe
mail.* /var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,information.crit /var/log/spooler
local7.* /var/log/boot.log
No entanto, quando executo o programa para forçar a escrita do arquivo cee
e validar o funcionamento do template, ele fica sempre vazio.
Testei com um template csv e o arquivo foi escrito conforme esperado, então acho que dá para assumir que o problema é com o subtree mesmo.
Eu tentei me basear nesta documentação: