我正在尝试使用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
);
};
答案 0 :(得分:1)
no-multi-line:无多行标志禁用消息中的换行符;整个邮件将转换为单行。请注意,仅当基础传输方法实际支持多行消息时才会发生这种情况。目前syslog,udp,unix-dgram驱动程序支持多行消息;其他驱动程序,例如,tcp驱动程序不。
因此,不清楚多行消息首先如何到达您的服务器。作为解决方法,您可以将标志放入文件参数:
destination d_farm_cmtslog_debug {
file("/var/log/cm/cmts.debug" flags(no-multi-line));
};