Filebeat: отправка разных журналов из filebeat в другой конвейер logstash. - PullRequest
0 голосов
/ 03 апреля 2019

I Требуется функциональность, позволяющая одному экземпляру filebeat отправлять данные в другой конвейер logstash.

Возможно ли это?

Я настроил одну службу logstash с двумя конвейерами, оба трубопровода отделяются отдельными портами.Допустим, Pipeline1 (порт 5044), Pipeline2 (порт 5045)

Теперь я хочу отправить данные в logstash с помощью filebeat.Итак, у меня есть два типа файла журнала, скажем, log1, log2.

Я хочу отправить log1 в Pipeline1 и log2 в Pipeline 2.

Я запускаю только один экземпляр filebeat, как яможет это сделать?

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

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

0 голосов
/ 03 апреля 2019

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

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

Например, события с тегом log1 будут отправлены на pipeline1, а события с тегом log2 будут отправлены на pipeline2.

Ваша конфигурация должна быть примерно такой в ​​Filebeat:

- type: log
  enabled: true
  paths:
    - "/path/to/your/logs/*.json"
  tags: ["logN"]

И тогда вам понадобится условие в ваших фильтрах logstash и выходные данные для каждого тега, который вы хотите:

filter {
    if "logN" in [tags] {
        filters
    }
}
output {
    if "logN" in [tags] {
        output
    }
}
...