使用 rsyslog 进行集中式 Apache 日志记录

使用 rsyslog 进行集中式 Apache 日志记录

我在运行 Apache 的 Centos 服务器上维护了许多虚拟主机(超过 60 个)。虚拟主机使用 Plesk 创建,它使用以下模式为每个域创建单独的日志文件/var/www/vhosts/<domain_name>/statistics/logs/{access,error}_log

我想将所有这些日志集中在另一台服务器上,以便使用 elasticsearch + logstash 解析它们。目前我有一个 bash 脚本,它为目录中包含的每个域创建一个<domain>.conf文件,配置如下:/etc/rsyslog.d//var/www/vhosts

InputFileName /var/www/vhosts/<domain_name>/statistics/logs/access_log
$InputFileTag apache-access:
$InputFileStateFile state-apache-access
$InputRunFileMonitor

有没有办法创建一个 .conf 文件,将所有日志发送到我的中央日志服务器?比如$InputFileName /var/www/vhosts/*/statistics/logs/access_log

任何帮助都将不胜感激!

答案1

据我所知,rsyslog 不支持文件名中的通配符。日志确实如此。此外,它还可以解析 apache 日志并通过 http 将其发送到 elasticsearch。您可能想看看它。(免责声明:我与该项目有关联。)

相关内容