Ubuntu

Rsyslog 無法從 perforce 目錄讀取 imfile

  • June 11, 2019

我在 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

引用自:https://serverfault.com/questions/970967