为什么我的带有绝对路径 LogFile 条目的 logwatch 配置不起作用?

为什么我的带有绝对路径 LogFile 条目的 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 

(目的是将四个指定的日志文件合并为一个组,供 lo​​gwatch 使用。)

我收到此错误:

*** 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命令解释为绝对路径。我已确认这些日志文件确实存在于这些路径中。至于“无法打开...”错误——我猜是因为缺少可用的 LogFile 命令,所以 logwatch 正在寻找默认配置。

那么:如何让 logwatch 正确地监视那些特定的日志文件?

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

答案1

LogFile下的配置文件中的条目指services的是在 下的相应配置文件中定义的日志文件组logfiles。有关配置日志文件组的信息,请参阅您链接到的文档的 A 部分...

# 这将是默认日志文件 # 目录(可能是 /var/log)中名为“messages”的日志文件。LogFile = messages

# 您也可以为该命令指定绝对路径,例如:LogFile = /var/log/messages

B 部分用于在配置文件中引用这些组services...

对于需要来自 /var/log/messages 的消息的服务过滤器,您可以添加以下行:

日志文件 = 消息

注意:这是不是因为日志文件的名称是“messages”,但这是因为已定义的 LogFile Group 的名称是“messages”。

错误/usr/share/logwatch/scripts/services/celery是因为您尚未创建服务过滤器可执行文件,如文档 C 部分所述。您应该创建它(使用示例脚本),并/etc/logwatch/scripts/services确保它是可执行的。我刚刚尝试过这个(CentOS 7.2 上的 logwatch 7.4.0,它按预期工作。

答案2

我认为 logwatch 的日志文件名中的 - 字符有问题。

如果我把其中任何一个放进去:

LogFile = test/test-1.log
LogFile = /var/log/test/test-1.log
LogFile = /var/log/test/test-*.log
LogFile = /var/log/test/*-1.log
LogFile = /var/log/test/*-*.log

我什么也没得到(没有输出,如果设置了调试,日志文件列表为空)。

另一方面,如果我说:

LogFile = /var/log/test/*.log

或者:

LogFile = test/*.log

我得到了预期的输出(当然基于 /var/log/test/test-1.log)。

这肯定是一些奇怪的日志文件列表创建问题(可能是错误)。绝对路径(带有 /var/log/)或不带该部分(没有该部分)并不重要。

Logwatch 是:logwatch-7.5.5-6.el9.noarch。

相关内容