如何使 Syslog-ng 服务器在从客户端接收的日志中显示设施和优先级?

How to make Syslog-ng server show facility, priority in the logs it receives from the client?

我正在从使用 syslogd 的客户端 (Freebsd) 向使用 Syslog-NG (Ubuntu 16.04) 的系统日志服务器发送系统日志。我正在将我在 local0 设施上收到的所有日志转发到系统日志服务器。

客户端显示的日志:

Aug 29 08:12:40 <local0.info> host-1 pidgin-process[38529]: 192.168.1.87

服务器中显示的日志:

Aug 29 08:12:40  host-1 pidgin-process[38529]: 192.168.1.87

正如您从服务器日志中看到的那样,消息中缺少设施和优先级。

syslog.conf 在客户端:

local0.*    /var/log/pidgin.log
local0.*    @192.168.1.122:514

syslog-ng.conf 在服务器中:

# Version and options info...

source s_local { system(); internal(); };

# Step1: Log source:
source s_network {
    udp(ip("0.0.0.0") port(514));
    };
# So on and so forth

在服务器端日志中,如何让 syslog-ng 像客户端日志一样在日志中显示设施、优先级?

您需要重写 specific format, you can find example here 中的日志。您可以找到本示例中如何使用宏来设置 destination(d_format_test)。这也显示了输出的样子。