rsyslog 中的文件名可以是静态的或动态的。如果您要根据某些消息条件自动将消息拆分到不同的文件中,则后者很有用。我需要根据 IP 拆分日志 - 例如:10.10.10.10.log 为什么它不起作用?我可以使用不同的东西来创建它吗?也许是 python/bash 脚本?
我的配置文件如下所示:[rsyslog v5]
#### RULES ####
local6,local5.* /var/log/systems/device-all.log
<=15.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
$template DynamicFile,"/var/log/systems/host-%HOSTNAME%.log"
*.* -?DynamicFile
local6,local5.* /var/log/systems/device-all.log
答案1
我认为首先你必须将模板设置为
$template DynamicFile,"/var/log/systems/host-%fromhost-ip%.log"
因为你要根据ip进行分离。接下来我认为日志记录的正确值是
*.* ?DynamicFile