使用tls时syslog-ng支持postfix多行

时间:2013-10-26 16:38:26

标签: ssl postfix-mta syslog-ng

我正在尝试使用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
        );
};

1 个答案:

答案 0 :(得分:1)

来自syslog documentations

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

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

destination d_farm_cmtslog_debug {
   file("/var/log/cm/cmts.debug" flags(no-multi-line));
};