Функции отображения данных стека ELK - PullRequest
0 голосов
/ 24 сентября 2018

Так что мне интересно, есть ли в стеке ELK функция, которая может выполнять поиск и сопоставление данных из разных источников.

Например: у меня есть журнал для

'computer.log' -> {computer_id: 123456, internet_connected: 345612}
'phone.log' ->    {phone_id: 234561}
'internet.log' -> {internet_id: 345612, phone_push: 234561}

Таким образом, у нас есть 3 потока журналов, отправляемых в filebeat -> logstash - >asticsearch -> kibana

Когда нам нужно отследить, какой телефон подключен к компьютеру, я хочу выполнить поиск «computer_id: 123456» итогда все эти 3 журнала появляются в результате.Я знаю, что мы можем искать определенный индекс для данных в упругом поиске и анализировать необработанные журналы в logstash.Но мне интересно, как я могу отследить или выполнить сопоставление, если мы получим эти 3 журнала отдельно (в течение 5 мс).

Будет ли в logstash такая функция трассировки данных, или мне нужно написать программу для сопоставления с сопоставлением и вставить идентификатор преобразования в конкретный журнал перед передачей в logstash?

Я не знаю точное название этой функции, подскажите, пожалуйста, есть ли она в стеке ELK?

1 Ответ

0 голосов
/ 24 сентября 2018

Если бы internet.log шел последним с гарантированным промежутком не менее пары секунд, мы могли бы обогатить индекс, содержащий internet.log.

Я предлагаю следующее

  1. При индексацииinternet.log, добавьте document_id в качестве uuid - https://www.elastic.co/guide/en/logstash/current/plugins-filters-uuid.html и добавьте status - «необработанный»
  2. Добавьте еще один logstash
    • Ввод - Использование подключаемого модуля ввода эластичных запросов запрашивает internet.log со статусом необработанный
    • Фильтр 1 - Использование подключаемого модуля фильтра эластичного поиска запрашивает computer.log, чтобы получить computer_id и другие поля, если они есть, в событиях.
    • Фильтр 2 - Использование плагина фильтра Flexiblesearch запрашивает phone.log для получения полей, связанных с телефоном, в событиях.
    • Если Фильтр 1 и 2 успешно вернули данные, обновите статус как обработанный.
    • Вывод - переиндексация документа internet.log с тем же document_id (uuid)

Пример можно найти здесь - * https://www.elastic.co/guide/en/logstash/current/lookup-enrichment.html * https://www.elastic.co/guide/en/logstash/current/plugins-filters-elasticsearch.html

Теперь у вас есть все данные в одном индексе (index.log) для поиска и запроса.

...