/usr/share/nginx 上出现额外的日志

/usr/share/nginx 上出现额外的日志

我们有一个远程 syslog 服务器,用于存储所有虚拟机的日志。一切运行正常,但在某些装有 nginx 的机器上,目录中出现了一个日志文件,其中包含已发送到远程 syslog 服务器的所有内容/usr/share/nginx

我检查了 rsyslog 配置以及 nginx 配置,但我不知道问题出在哪里。我删除了那个日志文件/usr/share/nginx,几天后它又出现了。

django-03 mario:~$ ls -larth /usr/share/nginx/
total 1,5G
drwxr-xr-x   2 root     root   23 dic  5  2018 html
drwxr-xr-x 150 root     root 4,0K abr 23 13:34 ..
drwxr-xr-x   3 root     root  148 sep  6 06:26 .
-rw-r--r--   1 www-data root 247M oct 17 09:31 syslog:server=someserver.vps:10514,tag=nginxerror
-rw-r--r--   1 www-data root 1,2G oct 17 09:33 syslog:server=someserver.vps:10514,tag=nginxaccess

这是 rsyslog 配置。

###############
#### RULES ####
###############                 
... Rest of the file ...
.
.
.

*.* @@someserver.vps:10514

正如您所看到的,rsyslog 正在将所有内容发送到 someserver.vps:10514 并且运行正常。

这是 nginx 配置,我们将日志双向发送到远程服务器和本地机器/var/log/syslog

... Rest of the file ...
.
.
.
        ##
        # Logging Settings
        ##
        log_format vhosts '$host $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

        access_log /var/log/nginx/access.log vhosts;
        error_log /var/log/nginx/error.log;
        access_log syslog:server=someserver.vps:10514,tag=nginxaccess vhosts;
        error_log syslog:server=someserver.vps:10514,tag=nginxerror;


        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

正如您所看到的,所有日志中/usr/share/nginx/都出现了 的名称someserver.vps。它的大小约为 1.2G,我们不知道为什么会出现在那里。

答案1

来自文档:

从 1.7.1 版本开始可以记录到 syslog。

如果您的版本较旧,nginx 会将 syslog 指令视为文字文件名。

在这种情况下,这一行:

access_log syslog:server=someserver.vps:10514,tag=nginxaccess vhosts;

配置 nginx 将访问日志写入名为 的文件syslog:server=someserver.vps:10514,tag=nginxaccess。没有绝对路径,因此它会在守护进程主目录中创建。

答案2

似乎 nginx 无法解析 someserver.vps 地址(几天前我们遇到了一些 dns 问题),并且正如您所说,nginx 将 syslog 作为文字文件名处理,并在守护进程主目录中创建。

由于 rsyslog 配置,我们可以在远程 syslog 服务器上接收日志。这就是让我困惑的地方。

非常感谢您的帮助

相关内容