Здравствуйте и с праздником всех! Добра, здоровья и счастья!
Подскажите, пожалуйста - сам не могу разобраться с одной проблемой. Rsyslog 8.23, Debian 11.
Необходимо получать сообщения из systemd-journald в rsyslog, затем передавать их по RELP на пару серверов для анализа. Но пока я застрял на самом базовом уровне. Не могу понять почему, но если делать без ruleset, то есть вот так ...
module(load="imuxsock"
SysSock.Use="on"
SysSock.Name="/run/systemd/journal/syslog"
)module(load="builtin:omfile"
Template="RSYSLOG_TraditionalFileFormat"
FileOwner="root"
FileGroup="adm"
dirOwner="root"
dirGroup="adm"
FileCreateMode="0640"
DirCreateMode="0755"
)
### Global Directives ###global(workDirectory="/var/spool/rsyslog"
umask="0022"
preserveFQDN="on"
localHostname="node1"
AbortOnUncleanConfig="on"
Shutdown.enable.ctlc = "on"
)# Direct all auth* log messages to local file
if ($syslogfacility-text == "auth" or $syslogfacility-text == "authpriv") then {
action(type="omfile" file="/var/log/auth.log")
}# Just for debug purposes only:
action(type="omfile" file="/var/log/my-debug.log")
... то все работает как надо. Впрочем, это есть в документации.Но вот если мне нужно делать обработку сообщений, то я подключаю ruleset (мне нужны очереди) и пишу вот такое:
module(load="imuxsock"
SysSock.Use="on"
SysSock.Name="/run/systemd/journal/syslog"
)module(load="builtin:omfile"
Template="RSYSLOG_TraditionalFileFormat"
FileOwner="root"
FileGroup="adm"
dirOwner="root"
dirGroup="adm"
FileCreateMode="0640"
DirCreateMode="0755"
)
### Global Directives ###global(workDirectory="/var/spool/rsyslog"
umask="0022"
preserveFQDN="on"
localHostname="node1"
AbortOnUncleanConfig="on"
Shutdown.enable.ctlc = "on"
)# Direct all auth* log messages to local file
if ($syslogfacility-text == "auth" or $syslogfacility-text == "authpriv") then {
action(type="omfile" file="/var/log/auth.log")
}### ALL CHANGES HERE ###
input(type="imuxsock" Socket="/run/systemd/journal/syslog" ruleset="MyRuleset1")ruleset(name="MyRuleset1") {
action(type="omfile" file="/var/log/my-debug.log")
}
То сразу возникает 2 проблемы:
1) rsyslog требует еще раз указать сокет в директиве input. А зачем - не пойму, так как я ж в модуле указал уже.
2) Ну и главная проблема - файл my-debug.log - пуст, вернее даже файла такого нет.
Подскажите, пожалуйста, что я делаю не так.Примеры я упростил из своего большого конфига, проверил - все равно не работает.
Буду признателен за помощь.