Nginx
出現在 /usr/share/nginx 上的額外日誌
我們有一個遠端系統日誌伺服器,我們在其中儲存所有虛擬機的日誌。一切工作正常,除了在某些使用 nginx 的機器上,包含已發送到遠端 syslog 伺服器的所有內容的日誌文件出現在 directory 上
/usr/share/nginx
。我已經檢查了 rsyslog conf 以及 nginx conf,但我不知道問題出在哪裡。我刪除了那個日誌文件,
/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.7.1 版開始可以記錄到 syslog。
如果您的版本較舊,nginx 會將 syslog 指令視為文字文件名。
在這種情況下,這一行:
access_log syslog:server=someserver.vps:10514,tag=nginxaccess vhosts;
配置 nginx 以將訪問日誌寫入名為
syslog:server=someserver.vps:10514,tag=nginxaccess
. 沒有絕對路徑,所以它是在守護程序主目錄中創建的。
似乎 nginx 無法解析 someserver.vps 地址(幾天前我們遇到了一些 dns 問題),並且正如您所說,nginx 將 syslog 視為文字文件名,並在守護程序主目錄上創建。
由於 rsyslog 配置,我們在遠端 syslog 伺服器上接收日誌。這就是讓我感到困惑的地方。
非常感謝您的幫助