Grep любит соседние строки из ElasticSearch

Приложение, которое я отлаживаю, создает файлы журналов, в которых многие вызовы API регистрируются как два события:

timestamp1 request_ip-->{$URL}
timestamp2 response_ip<--{$DATA}

Недавно я начал заливать журналы в ElasticSearch с помощью LogStash (с Kibana в качестве веб-фронта).

Есть ли способ сделать поиск, который включает близлежащие строки? Предположим, что запрос и ответ всегда следуют друг за другом, если это помогает.

С grep я бы сделал:

grep -A 1 "-->{$URL}"

Как сделать то же самое с существующим развертыванием LogStash+ElasticSearch?


person OmerGertel    schedule 10.04.2013    source источник
comment
может быть, что-то с диапазоном временных меток?   -  person Phil    schedule 12.04.2013
comment
Пожалуйста, дайте мне знать, если вы нашли решение своей проблемы, я заинтересован в наличии функций grep -A -B в elasticsearch.   -  person Basil Musa    schedule 25.06.2019


Ответы (1)


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

person Vishal Biyani    schedule 18.04.2013
comment
Я использую многострочный с большим успехом для некоторых вещей, но он работает только на последовательных строках. Я полагаю, мне придется добавить опцию для клиента (Kibana) для поддержки своего рода подзапроса. - person OmerGertel; 21.04.2013