由于主机名附加为“local/”或“slot1/”,Syslog Ng 将 f5 日志检测为目录

由于主机名附加为“local/”或“slot1/”,Syslog Ng 将 f5 日志检测为目录

我们有一个系统,其中有一堆 f5 设备将日志发送到 syslog-ng。我们将 syslog-ng 配置为:

/path/to/directory/$HOST. 

这会导致问题,因为由于 /local 位于主机名字段中,因此它尝试将其发送到:

/path/to/directory/local/ or /path/to/directory/slot1/. 

由于我们不想创建目录,因此错误是:

Directory does not exist. 

我尝试使用 syslog-ng 重写规则将主机名中的 /local 和 /slot1 替换为 local- 和 slot- 但它似乎不起作用。

这是重写规则:

    rewrite r_f5{
        subst("slot1/", "slot1-", value("HOST"), flags("global"), flags("ignore-case"));
        subst("slot1/", "slot1-", value("MESSAGE"), flags("global"), flags("ignore-case"));     
        subst("local/", "local-", value("HOST"), flags("global"), flags("ignore-case"));
        subst("local/", "local-", value("MESSAGE"), flags("global"), flags("ignore-case"));
};

请注意,消息规则是由于主机规则不起作用而导致的。

这是日志记录规则:

log { source(s_network_f5); rewrite(r_f5); destination(d_network_f5);};

我的重写规则有什么问题吗?

相关内容