Подскажите по разделению на два типа лога в разные индексы через filebeat -> logstash -> elastic

Добрый день. Я только начинающий в настройке.
Есть два типа логов. Собственно лог1 и лог2. Мне нужно, чтобы по ним было создано два типа индекса. И обрабатывались они по разным фильтрам.
В Filebeat сделал такие настройки:
type: log
enabled: true
paths:
- C:\Logs*.test1.log
fields:
logs: true
encoding: windows-1251

  • type: log
    enabled: true
    • C:\Logs*.test2.log
      fields:
      prf: true
      encoding: windows-1251

В Logstash в фильтре указал:
filter {
if [field] == "prf" {
Фильтрация для prf (логи *.test2.log)

else if [field] == "logs" {
Фильтрация для logs (*.test1.log)

В ouputs Logstash прописал:
output {
elasticsearch {
hosts => "localhost:9200"
index => "{fields}-%{+dd.MM.YYYY}"

Но индекс в итоге вижу только один =(

Но в итоге у меня эта фильтрация не проходит и всё пилится в message. Где и что некорректно настроил? Как разделить два файла на два индекса и как их фильтровать по разному?

Вроде разобрался почти. Сделал в фильтре
if "prf" in [tags]

А в Filebeats добавил тэги. Единственное непонятное осталось, как разделить по индексам.
Т.к. стандартно у меня у обоих логов в tags добавляется beats_input_codec_plain_applied:
logs, beats_input_codec_plain_applied
prf, beats_input_codec_plain_applied
И поэтому в Outputs не могу проставить в имя индекса %{Tags}, т.к. есть спецсимволы.

А можно про эту часть поподробнее?

Разве поля в filebeat так задаются?

Я вот так задавал значение поля:
image
А далее, на основании значения поля application_name раскидывал логи по разным индексам.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.