Я поддерживаю множество виртуальных хостов (более 60), размещенных на сервере Centos под управлением Apache. Virtualhosts создается с помощью Plesk, который создает отдельные файлы журналов для каждого домена, используя следующий шаблон /var/www/vhosts/<domain_name>/statistics/logs/{access,error}_log
.
Я хотел бы централизовать все эти журналы на другом сервере, чтобы анализировать их с помощью elasticsearch + logstash. В настоящее время у меня есть сценарий bash, который создает <domain>.conf
файл в /etc/rsyslog.d/
для каждого домена, содержащегося в /var/www/vhosts
dir со следующей конфигурацией:
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
Любая помощь приветствуется!
AFAIK rsyslog не поддерживает подстановочные знаки в именах файлов. nxlog делает. Кроме того, он может анализировать журналы apache и отправлять их в elasticsearch по http. Возможно, вы захотите взглянуть на это. (Отказ от ответственности: я связан с проектом.)