2016-06-13 3 views
0

Допустим, у меня есть путь что-то вроде этого:Filebeats, получить имя папки как часть тега

paths: 
    - /var/log/webapp/*.log* 
    - /var/log/webapp/*app*.log* 
    document_type: webapp 

Как бы я изменить это имя типа документа на основе от имени папки в/вар/журнал/*/автоматически, чтобы быть тем, что находится в *?

Пример:

/вар/Журнал/приложение/* - производит журналы приложений

/вар/Журнал/альфа/* --produces альфа журналы

/вар/Журнал // бета/* - производит бета-журналы

/var/log/delta/* - производит дельта-журналы.

Возможно ли это сделать с битами, или мне нужно обрабатывать это на стороне логштейна с помощью grok или рубинового фильтра?

ответ

1

Есть по крайней мере 2 способа вы могли бы сделать это:

Первое, это просто создавать различные старателей в конфигурации Filebeat, которые специфичны для папки типа журнала. Это официально рекомендованный способ сделать это.

ИЛИ

Если вы хотите использовать один широкий старатель и избежать встроенного решения вашей проблемы, используйте logstash. Filebeat дает вам поле, которое имеет путь к исходному файлу, я думаю, его называют file. Вы можете обращали внимание на это нравится:

file => "/var/log/%{WORD:log_type}/%{GREEDYDATA}" 

Вопрос, который я испытал здесь в том, что тип установлен Filebeat кажется устойчив к изменениям на Logstash, не знаю, как это работает, но это, конечно, головная боль, когда я попробовал ,