我试图在FreeBSD jails中将多个Nginx服务器的日志输出到jails的主机上。 我使用的是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中指定标签来区分几个服务器。
根据syslog.conf的FreeBSD文档
如果接收到的消息与指定的设备相匹配并且是指定级别(或更高级别),并且消息中的第一个字符与该程序匹配,则会执行操作字段中指定的操作。
https://www.freebsd.org/cgi/man.cgi?query=syslog.conf&sektion=5
但我的输出是hostname hostname hostname hostname tag / program 。
所以试图在syslog.conf指定程序/标签(如!nginx )不起作用。
有没有办法在FreeBSD的syslog上捕获标签? 这是Nginx 1.7.10中的一个错误吗?
Nginx使用RFC 3164来定义它的日志logging。
这个问题有closures票。 (和一个改变的链接) https://trac.nginx.org/nginx/ticket/677