通过 rsyslog 和可能的 catchall 过滤器接收 Apache 访问和错误日​​志

通过 rsyslog 和可能的 catchall 过滤器接收 Apache 访问和错误日​​志

我是 rsyslog 新手,一直在尝试弄清楚为什么我没有收到任何在客户端配置为通过 rsyslog 发送的 Apache 和 mysql 日志。我目前从除 Apache 和 mysql 之外的所有主机接收所有其他类型的日志。我假设服务器端的过滤器指令有问题。以下是我为 mysql 和 apache 配置的指令的副本。

$template PerHostApacheError,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/error.log"
$template PerHostApacheAccess,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/%msg:R,ERE,1,ZERO:imp:([a-zA-Z0-9\-]+)\.--end%-access.log"
$template PerHostMySqld,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mysql.log"

我的问题是,服务器端的上述指令看起来正确吗?如果不正确,它们应该是什么样子。文档并没有真正展示如何使用它的示例,而是展示了每个指令的作用。此外,是否有一个选项可以捕获所有未定义指令的消息 - 例如,将未通过指令定义的所有其他消息记录到每个主机的 catchall.log 文件中。类似于:

$template PerHostCatchAll,"/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/catchall.log

我在这里先向您的帮助表示感谢。

相关内容