Logwatch
為什麼我的帶有絕對路徑 LogFile 條目的 logwatch conf 不起作用?
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
services
B 節用於在…下的配置文件中引用這些組對於需要來自 /var/log/messages 消息的服務過濾器,您可以添加以下行:
日誌文件 = 消息
注意:這不是因為日誌文件的名稱是“消息”,而是因為已定義的日誌文件組的名稱是“消息”。
該錯誤
/usr/share/logwatch/scripts/services/celery
是因為您沒有按照文件 C 部分的說明創建服務過濾器執行檔。/etc/logwatch/scripts/services
您應該在確保它是可執行的情況下創建它(使用範例腳本) 。我剛剛嘗試過這個(CentOS 7.2 上的 logwatch 7.4.0,它按預期工作。