我们有一个系统,其中有一堆 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);};
我的重写规则有什么问题吗?