Подключаемый модуль Logstash с идентификатором задачи в несколько строк - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь агрегировать события на основе идентификатора процесса.Идентификатор процесса не в последовательности и охватывает несколько строк.Ниже приведен один такой пример -

2019 Apr 23 14:01:44:870 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Main Process has started^M
2019 Apr 23 14:01:44:870 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Main Process has started^M
2019 Apr 23 14:01:44:878 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Ending ODS query Process to create enterprise message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Send Message Process has finished at  :  1556028104882 for flight 1206 departing on 2019-04-24 from EWR to CLT of type Leg Level Message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Send Message Process has finished at  :  1556028104882 for flight 1206 departing on 2019-04-24 from EWR to CLT of type Flight Level Message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Send Message Process has begun at  :  1556028104882 for flight 1196 departing on 2019-04-24 from CUN to ORD of type Leg Level Message^M
2019 Apr 23 14:01:44:883 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Send Message Process has begun at  :  1556028104882 for flight 1196 departing on 2019-04-24 from CUN to ORD of type Flight Level Message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Main Process is ending for flight 1206 departing on 2019-04-24^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Main Process is ending for flight 1206 departing on 2019-04-24^M

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

1 Ответ

0 голосов
/ 02 мая 2019

Я предлагаю вам проверить этот плагин , который отслеживает пару начальных / конечных событий и использует их временные метки для расчета истекшего времени между ними, поэтому на основе идентификатора, как вам нужно, он идентифицирует«начальное» событие и ожидает связанного с ним «конечного» события.Вот простой пример его использования.

Может быть полезно настроить этот плагин так, чтобы он делал то, что вам нужно, так как он уже обрабатывает тайм-ауты, ожидает события на основе определенного поля и т. Д.

Но вы также должны знать об этомОчки:

  • Зная, когда остановиться, до каких пор вам нужно накапливать события?
  • Можно ли накапливать потенциально много событий в памяти?
  • Когда истечет время ожидания?

Если вы принимаете много данных, Logstash не кажется мне подходящим для этой потребности.Подумайте об агрегации событий, используя другой инструмент, может быть, ежедневная работа Apache, которая агрегирует ваши события, используя эластичный поиск в качестве бэкэнда?

РЕДАКТИРОВАТЬ: я быстро проверил источник плагина и что яПод предложением подразумевается добавление всей необходимой информации к «унифицированному событию».

Допустим, вам нужно получить содержимое my_field из всех ваших событий.Вы можете обновить 167-ю строку:

return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))

ПОСЛЕДНИЕ РЕДАКТИРОВАТЬ: Этот плагин должен работать для вас https://www.elastic.co/guide/en/logstash/current/plugins-filters-aggregate.html

...