Есть ли способ получить события до / после событий в Splunk или поток событий в реальном времени в отчете?

#grep #splunk #splunk-query

#grep #splunk #splunk-запрос

Вопрос:

В командной строке * nix вы можете видеть относительные строки до и после при использовании grep команды :

   grep "abc" -A 2 -B 3
 
  1. Мой вопрос: есть ли какой-либо способ в продукте Splunk enterprise видеть относительные строки при выполнении поиска?
  2. Splunk search поддерживает head и tail . Есть ли способ выполнить непрерывный поток на панели инструментов Splunk, аналогичный -f флагу tail в командной строке * nix ?.

Ответ №1:

Хотя Splunk когда-то называл себя «grep для центра обработки данных», это не реализация grep.

Когда события найдены, они обрабатываются по одному, поэтому нет реальной концепции относительных строк / событий.

Если вы не используете ни head ни tail , то вы получите все события (с учетом памяти и некоторых других ограничений).

Это то, что вы подразумеваете под «непрерывным потоком»? Если нет, что вы имеете в виду?

Возможно, поиск в реальном времени квалифицируется как «непрерывный»?

Комментарии:

1. Ответ на приведенный выше вопрос: когда я выполняю поиск по ключевому слову, скажем, «ошибка», splunk возвращает все совпадающие строки из моего журнала приложений. Но мне интересно узнать, что вызвало эту ошибку, поэтому я хочу просмотреть строки, напечатанные непосредственно перед ней. В каком-то случае хотелось узнать, какие строки регистрируются после строк, соответствующих тексту поиска.

2. При поиске «ошибка» Splunk возвращает только события, содержащие эту строку. Как будто других событий не существует. Чтобы найти события до или после этого, требуется получить время события ошибки и передать его в другой поиск, который ищет более ранние или более поздние события. Что-то вроде этого: index=foo [ search index=foo "error" | stats min(_time) as mintime, max(_time) as maxtime | eval earliest=relative_time(mintime, "-5s"), latest=relative_time(maxtime, " 5s") | fields earliest latest | format]