Centos

將 rsyslog 日誌寫入主目錄

  • September 6, 2017

我目前的工作

我編寫了一個 python 應用程序,它通過rsyslog寫入消息。我已將rsyslog配置為寫入到/var/log/my_custom_log.log我的條目正常的自定義日誌文件。

我的預設值syslog.conf是未修改的。我/etc/rsyslog.d/00-myrules.conf的如下:

:msg, contains, "Transmission" /var/log/transmission.log
& ~

我也不明白最後的 & ~ 是做什麼的,但是沒有它似乎就行不通。

我需要做什麼

我想要的只是能夠將日誌寫入/home/me/logs/my_tests.log. 當我測試我的應用程序時,我需要確保某些內容被寫入日誌一定次數。我之前所做的是將消息寫入主目錄中的純文字文件,檢查該文件是否正確,然後在每次測試時將其刪除。我現在需要做同樣的事情,但使用rsyslog。我正在以我的使用者身份執行我的測試。

我想要正常的日誌寫入/var/log/my_app_log.log,這很好。

我試過的

  1. 該使用者似乎遇到了與我相同的問題,但我不理解已接受的答案(我不明白 SElinux 與它有什麼關係,它如何影響任何事情,或者這些標籤是什麼或在哪裡他們正在談論),或者另一個(使用者提到出於安全原因不推薦做一些事情,我應該避免這樣做,但我不明白在哪裡執行這個命令,即使我想)。
  2. 這個使用者的問題原來是誰擁有該目錄的問題,但是如果我執行ps aux | grep "rsyslog",它會返回在root/usr/sbin/rsyslogd -n下執行的那個(如果我在這裡錯了,請糾正我)應該能夠寫入我家的子目錄目錄,無論誰擁有它。

編輯:經過進一步討論,我們認為在/var/log. 畢竟,這就是它的目的。

這篇文章的幫助下,我發現執行ls -Z揭示了 SELinux 上下文。正如海報所建議的那樣,我將上下文複製/var/logs到我家的日誌目錄中,我得到了想要的結果。

但是,我意識到這並不理想,正如第一個連結問題中接受的答案所描述的那樣,因為它不是防彈/防時間的。不幸的是,我對 SELinux 的了解還不夠,無法正確詳細說明這一點,並且所使用的方法適用於我的小型環境。

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