在本地日志输出中,我可以看到调试消息,但这些消息不会显示在远程日志服务器上。它似乎忽略了这些,但它做打印警告和错误级别的消息就可以了。
这些是本地(Ubuntu 14.04.2 LTS)syslog-ng.conf 条目:
# This is the default behavior of sysklogd package
# Logs may come from unix stream, but not from another machine.
#
source s_src {
system();
internal();
};
destination d_net { udp("1.2.3.4"); };
log { source(s_src); destination(d_net); };
s_src
也用于本地日志记录,因此它似乎包含调试消息。
这是日志服务器(Debian 6.0)的配置:
destination df_remote {
file(
"/var/log/remotelogs/from_$HOST"
create_dirs(yes)
owner(root)
group(root)
perm(0644)
dir_perm(0777)
);
};
source s_remote { udp(); };
log { source(s_remote); destination(df_remote); };
显然没有应用任何日志过滤器,但调试消息仍然无法通过。这可能是什么问题?
答案1
UDP 是一种旨在及时传送数据包的协议,但代价是丢失数据包。只要数据包传送出现问题,数据包就会被丢弃。例如这个解释。