logwatch 文档说LogFile命令可以处理绝对path。 因此,我在/ 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.
看起来logwatch由于某种原因没有将LogFile命令解释为绝对path。 我已经确认这些日志文件肯定存在于这些path中。 至于“不能打开…”的错误 – 我的猜测是,由于缺less工作LogFile命令,logwatch正在寻找一个默认的configuration。
那么:我如何获得logwatch来正确观察这些特定的日志文件呢?
注意:我正在使用在Ubuntu 12.04.4 LTS上运行的logwatch v7.4.0。
services下的configuration文件中的LogFile条目是指在日志文件下的相应configuration文件中定义的日志文件组。 有关configuration日志文件组的信息,请参阅链接文档的A部分。
#这将是默认日志文件目录(可能是/ var / log)中名为“messages”的日志文件。 LogFile =消息
#你也可以给这个命令一个绝对path,像这样:LogFile = / var / log / messages
而B节在servicesconfiguration文件中引用这些组…
对于需要/ var / log / messages中的消息的服务filter,您可以添加以下行:
LogFile =消息
注:这不是因为日志文件的名称是“消息”,而是因为定义的LogFile组的名称是“消息”。
错误/usr/share/logwatch/scripts/services/celery是因为您尚未创build服务筛选器可执行文件,如文档C部分所述。 您应该在/etc/logwatch/scripts/services下创build它(使用示例脚本),确保它是可执行的。 我刚刚尝试过(CentOS 7.2上的logwatch 7.4.0,它按预期工作。