2016-09-09 2 views
1

У меня есть довольно архитектурный вопрос, касающийся логсташа.Преобразование данных и Logstash

У нас есть файлы журналов, созданные аппаратными устройствами, которые очень загадочны. Прежде чем отправлять JSON в elasticsearch, должно произойти какое-то преобразование и усиление. Например, я получаю массивы чисел, которые должны быть преобразованы в нечто читаемое. Некоторая трансформация значения enum.

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

В настоящее время ИМО есть 3 мнения для достижения этой цели:

  • использующего logstash фильтр-мутировать плагин
  • реализовать собственный logstash фильтр Plugin
  • использовать logstash как небольшая веб-сервер и сделать трансформации upfront

У вас есть опыт в этих путях? Что бы вы предпочли и почему?

BW Hubert

ответ

0

Во-первых, я согласен с вами. Вы будете манипулировать своими данными чем-то (фильтры логсташа, бит, ...) и переходить куда-нибудь (elasticsearch или другой логсташ).

На мой взгляд, логсташ слишком тяжелый для производственного сервера. Мы использовали это раньше, и он использует слишком много ресурсов. У Elasticsearch есть Beats, чтобы справиться с этим. (Я знаю, что речь идет не только об этой ситуации.) Вы можете просто использовать beats для сбора журналов из файла. В вашем случае существует крайняя проблема для использования уже существующих. Журналы загадочны или что угодно. Если вы уже можете зашифровать данные, вы можете написать собственный бит для более минимального решения. Я думаю, что это может быть проще, чем писать плагин logstash, но есть еще одна проблема, которая является Golang. Я не знаю о плагинах logstash, но ранее писал beat. Вы можете проверить отличный beats documentation, чтобы создать его.

После создания ритма для вашей системы вы можете пересылать свои журналы на logstash. Существует документ о this. Кроме того, вы можете проверить конфигурацию файлов в this repo для реального примера.

+0

@ hubert-ströbitzer ответ обновлен. – hkulekci