Фильтр для каждого вывода на нескольких хостах в выходном плагине logstash

Я хотел бы отправлять журналы на несколько хостов в выходном плагине logstash. Есть ли способ фильтровать журналы для каждого вывода отдельно с помощью плагина фильтра?

заранее спасибо


person Charith sattiva    schedule 26.03.2021    source источник
comment
Да, вы можете, вам нужно использовать условные операторы на основе некоторой информации, представленной в одном или нескольких ваших полях, это описано в документация.   -  person leandrojmp    schedule 26.03.2021
comment
Спасибо за ваш ответ. Могу ли я добавить плагин вывода внутри плагина фильтра?   -  person Charith sattiva    schedule 26.03.2021
comment
Вы не можете, logstash имеет три основных блока: input, filter и output, вы можете использовать плагины вывода только внутри блока output. Почему вы хотите использовать плагин output внутри блока filter? Для этого нет причин.   -  person leandrojmp    schedule 26.03.2021
comment
@Charith sattiva Удалось ли вам выполнить мой ответ/предложенный подход? Если да, я был бы очень признателен, если бы вы приняли / проголосовали за мой ответ.   -  person apt-get_install_skill    schedule 21.04.2021


Ответы (1)


Да, вы можете отправлять события на несколько или разные хосты elasticsearch на основе некоторых критериев.

Вы бы сделали это следующим образом:

Пример конвейера

input{
  # some input plugin, e.g. "beats"
}

filter{
  # some filter(s), e.g. "mutate", "grok", "date"
}

output{
  # send event to an elasticsearch host based on the value of field "foo"
  if [foo] == "bar"{
    elasticsearch{
      hosts => ["http://bar.com:9200"]
      ...
    }
  }
  else if [foo] == "bazz"{
    elasticsearch{
      hosts => ["http://bazz.com:9200"]
      ...
    }
  }
  else{
    elasticsearch{
      hosts => ["http://foo.bar.bazz.com:9200"]
      ...
    }
  }
}

Надеюсь, я смог вам помочь!

person apt-get_install_skill    schedule 26.03.2021