【发布时间】:2020-10-20 11:54:51
【问题描述】:
我有一个syslog-ng 容器,它从在同一应用程序上运行的其他容器收集日志,并且正常的日志记录按预期工作:每个容器发送其日志,syslog-ng 将它们保存在单独的文件中,如syslog-ng.conf 中所定义.
我也在尝试将错误日志保存在不同的文件中。我假设从另一个容器内抛出到 STDERR 的所有内容都应该被 syslog-ng 视为错误,所以当我启动这样的容器时:
docker run -dit --log-driver syslog --log-opt syslog-address=tcp://my_syslog:601 alpine echo "boom" > /dev/stderr
然后我希望 syslog-ng 将其理解为错误,但事实并非如此。
这是我在 syslog-ng 容器中的syslog-ng.conf 的摘录:
@version: 3.25
source s_net {
network(transport(tcp) port(601));
network(transport(udp) port(514));
};
destination d_error_file {
file("/tmp/errors");
};
filter f_errors {
level(err .. emerg);
};
log {
source(s_net);
filter(f_errors);
destination(d_error_file);
};
如何告诉 syslog-ng 将 STDERR 消息视为错误?
【问题讨论】: