Nginx:Syslog 输出中的标签位置错误

Nginx:Syslog 输出中的标签位置错误

我正在尝试将 FreeBSD jail 中的多个 Nginx 服务器的日志输出到 jail 的主机。我使用的是 FreeBSD 10 syslog 和 Nginx 1.7.10。

在 Nginx 中(在本例中主机名是web),我设置了:

access_log syslog:server=127.0.0.1:514 syslog;

http://nginx.org/en/docs/syslog.html

在主持人的syslog.conf

+web
*.=info                                          /var/log/jails/web/nginx-access.log

在主持人的rc.conf

syslogd_flags="-a 10.0.0.1/24:* -v -v -C"

我的文件中的输出是

Mar 31 19:45:50 <local7.info> web web nginx: […]

我的问题是我想在 Nginx 中指定标签来区分多个服务器。

根据 FreeBSD 的 syslog.conf 文档

如果收到的消息与指定的设施相匹配并且属于指定的级别(或更高级别),并且日期之后的消息中的第一个字与程序匹配,则将采取操作字段中指定的操作。

https://www.freebsd.org/cgi/man.cgi?query=syslog.conf&sektion=5

但我的输出是hostname hostname tag / program

syslog.conf因此尝试在(如)中指定程序/标签!nginx不起作用。

有什么方法可以捕获 FreeBSD 系统日志上的标签吗?这是 Nginx 1.7.10 中的错误吗?

答案1

Nginx 使用 RFC 3164 来定义其日志记录。

此问题已关闭。(以及更改的链接) https://trac.nginx.org/nginx/ticket/677

相关内容