Filebeats, получить имя папки как часть тега

Скажем, у меня есть путь примерно так:

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

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

Пример:

/var/log/app/* -- создает журналы приложений.

/var/log/alpha/* -- создает альфа-журналы

/var/log//beta/* -- создает журналы бета-тестирования

/var/log/delta/* -- создает дельта-логи.

Можно ли сделать это с битами, или мне нужно обрабатывать это на стороне logstash, используя grok или рубиновый фильтр?


person A_Elric    schedule 13.06.2016    source источник


Ответы (1)


Есть как минимум 2 способа сделать это:

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

OR

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

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

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

person Will Barnwell    schedule 13.06.2016