0

我试图让 syslog-ng 支持 postfix 的多行。据我了解,syslog-ng 可以使用“flags(no-multi-line)”配置选项,但它要么不起作用,要么我应用不正确。

我的配置:

客户:

source s_src {
       system();
       internal();
};
filter f_mail { facility(mail) and not filter(f_debug); };
log { source(s_src); filter(f_mail); destination(d_mail); };
destination d_tls {
    tcp("logs.myserver.com" port(999)
    tls( ca_dir("/etc/syslog-ng/ssl/")) );
};

log {
 source(s_src);
 destination(d_tls);
 };

服务器:

source s_tls {
        tcp(port(999)
        tls( key_file("/etc/syslog-ng/ssl/logs.key")
                cert_file("/etc/syslog-ng/ssl/logs.crt")
        peer_verify(optional-untrusted))
        flags(no-multi-line) # no worky
        );
};
4

1 回答 1

1

系统日志文档

no-multi-line:no-multi-line 标志禁用消息中的换行;整个消息被转换为单行。请注意,仅当底层传输方法实际上支持多行消息时才会发生这种情况。目前 syslog、udp、unix-dgram 驱动支持多行消息;其他驱动程序,例如 tcp 驱动程序没有.

因此,首先不清楚多行消息是如何到达您的服务器的。作为一种解决方法,您可以将标志放入文件参数中:

destination d_farm_cmtslog_debug {
   file("/var/log/cm/cmts.debug" flags(no-multi-line));
};
于 2013-12-09T08:56:41.570 回答