У меня возникли трудности с настройкой fluentd для пересылки журналов доступа httpd для vhosts. У меня есть пять vhosts, и я хочу регистрировать доступ и ошибки для каждого отдельно, а во-вторых, иметь fluentd хвост этих файлов и пересылать журналы на сервер регистрации. Первая проблема не проблема, а вторая.Журналы fluentd для httpd vhosts не пересылаются на сервер регистрации
С помощью этого файла conf все протоколы httpd из всех vhosts записываются в один файл и корректно перенаправляются на сервер регистрации.
<source>
type tail
format apache2
tag apache.access
path /var/log/apache/access_log
pos_file /var/log/apache/access_log.pos
</source>
<match apache.access>
type forward
send_timeout 60s
recover_wait 10s
heartbeat_interval 1s
phi_threshold 16
hard_timeout 60s
<server>
name internal-1
host 192.168.0.245
port 24224
</server>
</match>
Однако, когда я изменить путь к лог-файл в HTTPd-vhosts.conf так:
CustomLog "/var/log/apache/internal-wiki/access_log" combined
и изменение TD-agent.conf к этому:
<source>
type tail
format apache2
tag internalwiki.access
path /var/log/apache/internal-wiki/access_log
pos_file /var/log/apache/internal-wiki/access_log.pos
</source>
<match internalwiki.access>
type forward
send_timeout 60s
recover_wait 10s
heartbeat_interval 1s
phi_threshold 16
hard_timeout 60s
<server>
name internal-1
host 192.168.0.245
port 24224
</server>
</match>
Журналы правильно записываются в CustomLog, но не пересылаются на сервер регистрации.
Выход TD-agent.log является
2015-11-09 12:23:44 +0900 [warn]: no patterns matched tag="internalwiki.access"
Если изменить тип соответствия на стандартный вывод и хвост TD-agent.log на локальной машине, это прекрасно.
тд-агент работает как корень на обоих серверах и завивке файловых 666 так TD-агент должен быть в состоянии читать access_log
порт 24224 на сервер протоколирования открыт, я проверил с Nmap, и Я могу использовать telnet для порта 24224 и видеть записи в td-agent.log на сервере регистрации, поэтому нет проблем с сетью.
Итак, что я делаю неправильно?
так что если вы оставите хвост и просто измените соответствие на stdout, это сработает? , если он жалуется на теги, затем попытайтесь установить тег соответствия на ** только для теста и посмотреть, с каким тегом отправляются сообщения. – dutzu
Да, stdout работает так, как ожидалось. Журналы доступа apache агрегируются в td-agent.log на локальном компьютере. Измененный шаблон совпадения на ** приводит к той же проблеме, журналы не перенаправляются на сервер регистрации. Таким образом, это предполагает некоторую проблему связи между двумя серверами. Тем не менее, они могут пинговать друг друга, порты открыты, и я могу telnet от веб-сервера до сервера регистрации на порте 24224, поэтому я не вижу, где препятствует связь. –