Я хочу использовать запрос в splunk, извлечь список полей, а затем использовать эти поля результатов для дальнейшей фильтрации моего последующего запроса splunk. Как мне это сделать?
Фильтрация результатов splunk с использованием результатов другого запроса splunk
Ответы (3)
Команда FORMAT может быть особенно полезной для этого. Это слишком упрощенный пример, но он должен дать вам представление о том, как он используется:
Во-первых, создайте свой подпроект, который предоставит вам области, которые вам небезразличны. Вот рабочий пример:
|metadata type=hosts index=_internal | table host | format
Попробуйте выполнить этот поиск самостоятельно, чтобы увидеть, как выглядит результат.
Затем мы просто добавляем его как подпункт вашего реального поиска:
index=foo sourcetype=bar [|metadata type=hosts index=_internal | table host | format]
который предоставит вам события из index foo, панели sourcetype и каждого хоста из подпункта.
На самом деле это чрезвычайно мощная команда, так как вы можете использовать ее для динамической установки временных диапазонов, а также сложных логических фильтров.
Дополнительную документацию по FORMAT можно найти здесь
Более сложный пример того, что можно сделать с помощью FORMAT
Один из вариантов - перенаправить данные от первого поиска к следующему, а затем вы можете дополнительно отфильтровать результаты. Надеюсь, следующая упрощенная строка поиска даст вам представление о том, как это сделать ...
index=_internal | head 100 | fields host, sourcetype, source | search sourcetype="splunkd_access"
Для получения дополнительной информации я рекомендую прочитать Справочник по поиску Splunk.
В Splunk можно фильтровать / обрабатывать результаты первого запроса splunk, а затем дополнительно фильтровать / обрабатывать результаты, чтобы получить желаемый результат.
Это самая мощная функция Splunk, которой не хватает другим инструментам визуализации, таким как Kibana, Tableau.
Предположим, у вас есть данные в индексе foo
и вы извлекли такие поля, как имя, адрес.
Теперь имя / адрес может быть прямой парой ключ-значение, или вам нужно извлечь из события с помощью регулярного выражения или встроенной функции Splunk Извлечь поля.
Затем выполните дополнительный фильтр с такими значениями, как name = "John", тогда поиск Splunk будет выглядеть следующим образом:
index="foo" | table name, address | where name="John"