Logwatch

為什麼我的帶有絕對路徑 LogFile 條目的 logwatch conf 不起作用?

  • January 19, 2016

logwatch文件說該LogFile命令可以處理絕對路徑。因此,我在 /etc/logwatch/conf/services 中有一個 celery.conf 文件,如下所示:

Title = "Watchdog Celery worker errors"
LogFile = /var/log/208-celery.log
LogFile = /var/log/234-celery.log
LogFile = /var/log/403-celery.log
LogFile = /var/log/dev-celery.log 

(目的是將四個指定的日誌文件組合成一個組用於 logwatch。)

我收到此錯誤:

*** Error: There is no logfile defined. Do you have a /etc/logwatch/conf/logfiles//var/log/208-celery.log.conf file ?
*** Error: There is no logfile defined. Do you have a /etc/logwatch/conf/logfiles//var/log/234-celery.log.conf file ?
*** Error: There is no logfile defined. Do you have a /etc/logwatch/conf/logfiles//var/log/403-celery.log.conf file ?
*** Error: There is no logfile defined. Do you have a /etc/logwatch/conf/logfiles//var/log/dev-celery.log.conf file ?
Can't open: /usr/share/logwatch/scripts/services/celery at /usr/sbin/logwatch line 1329.

LogFile由於某種原因,logwatch 似乎沒有將命令解釋為絕對路徑。我已經確認那些日誌文件肯定存在於這些路徑中。至於“無法打開…”錯誤——我的猜測是,由於缺少有效的 LogFile 命令,logwatch 正在尋找預設配置。

那麼:如何讓 logwatch 正確地觀看那些特定的日誌文件?

注意:我使用的是在 Ubuntu 12.04.4 LTS 上執行的 logwatch v7.4.0。

下配置文件中的LogFile條目services是指在相應配置文件下定義的日誌文件組logfiles。有關配置日誌文件組的資訊,請參閱您連結到的文件的 A 部分…

這將是預設日誌文件目錄(可能是 /var/log)中名為 ‘messages’ 的日誌文件。日誌文件 = 消息

你也可以給這個命令一個絕對路徑,像這樣:LogFile = /var/log/messages

servicesB 節用於在…下的配置文件中引用這些組

對於需要來自 /var/log/messages 消息的服務過濾器,您可以添加以下行:

日誌文件 = 消息

注意:這不是因為日誌文件的名稱是“消息”,而是因為已定義的日誌文件組的名稱是“消息”。

該錯誤/usr/share/logwatch/scripts/services/celery是因為您沒有按照文件 C 部分的說明創建服務過濾器執行檔。/etc/logwatch/scripts/services您應該在確保它是可執行的情況下創建它(使用範例腳本) 。我剛剛嘗試過這個(CentOS 7.2 上的 logwatch 7.4.0,它按預期工作。

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