Rsyslog 無法從 perforce 目錄讀取 imfile
我在 Ubuntu 伺服器中遇到了一個問題,其中 Rsyslog 無法從 Perforce 日誌目錄中讀取任何文件。
我測試了 imfile 模組的 Rsyslog 配置工作正常,因為它能夠從包括 /home 在內的其他目錄讀取。
我還將 syslog 使用者添加到 perforce 組,反之亦然,但它仍然無法正常工作。
我發現但顯然不適合生產的一種解決方法是執行以下操作:
tail -f /perforce/logs/log.csv >> /home/monitoredlogfile
一些有用的資訊:
drwxr----- 2 perforce perforce 4096 Jun 11 14:01 logs
id syslog uid=104(syslog) gid=108(syslog) groups=108(syslog),4(adm),1010(perforce)
id perforce uid=1010(perforce) gid=1010(perforce) groups=1010(perforce),108(syslog)
知道可能出了什麼問題嗎?
您的 perforce 組只能讀取您需要將“x”添加到該文件夾以允許該組訪問該文件夾的 repo /perforce/logs。
還要確保您的 /perforce 文件夾具有相同的權限。即使您的 /perforce/logs 具有 rwxrwxrwx 作為權限,如果您的 /perforce 只是 rwx—— 那麼該組將永遠無法訪問它。
如果您不想使用應用程序權限,則可以使用 ACL 來授予 syslog 使用者對您文件夾的訪問權限
$ sudo setfacl -m u:syslog:rx -R /perforce/logs/ $ sudo getfacl /perforce/logs/
小心:一旦我用 Kubernetes 嘗試過(允許訪問 syslog 到 /var/lib/docker/containers),但它破壞了新的 pod(它們有 DNS 解析問題)。我別無選擇,只能以 root 身份執行 rsyslog 而不是 syslog