2015-11-09 7 views
0

У меня возникли трудности с настройкой 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 на сервере регистрации, поэтому нет проблем с сетью.

Итак, что я делаю неправильно?

+0

так что если вы оставите хвост и просто измените соответствие на stdout, это сработает? , если он жалуется на теги, затем попытайтесь установить тег соответствия на ** только для теста и посмотреть, с каким тегом отправляются сообщения. – dutzu

+0

Да, stdout работает так, как ожидалось. Журналы доступа apache агрегируются в td-agent.log на локальном компьютере. Измененный шаблон совпадения на ** приводит к той же проблеме, журналы не перенаправляются на сервер регистрации. Таким образом, это предполагает некоторую проблему связи между двумя серверами. Тем не менее, они могут пинговать друг друга, порты открыты, и я могу telnet от веб-сервера до сервера регистрации на порте 24224, поэтому я не вижу, где препятствует связь. –

ответ

0

Это была основная ошибка ... Веб-сервер был настроен правильно, но принимающего сервера не было.

Я не включил образцы источника и соответствия в td-agent.conf на сервере регистрации.

Добавление этого решения моих проблем.

<source> 
    type forward 
</source> 
<match *.access> 
    type stdout 
</match> 

Поэтому я буду отмечать это как разрешенное.

 Смежные вопросы

  • Нет связанных вопросов^_^