Splunk - значения поиска + статическая строка поиска = вывод со счетчиком

Я хочу выполнить поиск, где мне нужно использовать статическую строку поиска + ввод из файла csv с именами пользователей:

  1. Поисковый запрос - index=someindex host=host*p* "STATIC_SEARCH_STRING"

  2. Значение из users.csv, где список выглядит следующим образом: Обратите внимание, что User / UserList НЕ является полем в моем Splunk: **UserList** User1 User2 User3 . . UserN

Я пробовал использовать несколько из них: | inputlookup users.csv | join [search index=someindex host=host*p* "STATIC_SEARCH_STRING"] | lookup users.csv UserList OUTPUT UserList as User| stats count by User

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

Когда я пытаюсь найти события для одного пользователя, например - index=someindex host=host*p* "User1" "STATIC_SEARCH_STRING". Я получаю сотни событий для этого пользователя.

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

Заранее спасибо!


person messi.torres28    schedule 17.04.2020    source источник
comment
Какую проблему вы пытаетесь решить с помощью этого запроса? Возможно, есть другой способ.   -  person RichG    schedule 17.04.2020
comment
@RichG Итак, я хочу убедиться, что ни у кого из пользователей нет проблем с доступом к приложению. Таким образом, мой запрос будет искать строку статического поиска + имя пользователя. [около 10 тыс. пользователей] Как только я получу это, я могу настроить для него оповещение, если у любого пользователя меньше, скажем, 10 событий, сгенерированных в конкретный момент времени.   -  person messi.torres28    schedule 17.04.2020
comment
Если в вашем индексе нет поля «пользователь», что связывает проиндексированные события с записями файла поиска?   -  person RichG    schedule 17.04.2020


Ответы (2)


index=someindex host=host*p* "STATIC_SEARCH_STRING" [ | inputlookup users.csv | fields UserList | rename UserList as query]

Здесь происходит под-поиск, который выполняет поиск входных данных в файле users.csv. Затем мы используем fields, чтобы гарантировать, что в данных есть только одно поле (UserList). Затем мы переименовываем это поле в query. Это специальное поле в подзапросах; когда дополнительный поиск возвращает поле query, оно раскрывается в выражение (field_value_1) OR (field_value_2) OR ....

Затем это выражение добавляется к исходной строке поиска, поэтому окончательный поиск, выполняемый Splunk, будет index=someindex host=host*p* "STATIC_SEARCH_STRING" ("alice") OR ("bob") OR ("charlie")

Этот подход описан на странице https://docs.splunk.com/Documentation/Splunk/8.0.3/Search/Changetheformatofsubsearchresults

Вы также можете посмотреть команду формата Splunk, https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Format, если вам нужно изменить формат выражения дополнительного поиска, например, добавив * вокруг каждого возвращаемого выражения.

person Simon Duff    schedule 18.04.2020
comment
Это сработало отлично. Большое спасибо! Кроме того, спасибо всем за то, что нашли время помочь мне с множеством моих проблем! - person messi.torres28; 18.04.2020

Я думаю, ты делаешь поиск наизнанку

Я думаю, что вам может понадобиться следующее:

index=ndx sourcetype=srctp host=host*p* User=*
| search 
    [| inputlookup users.csv ]
| stats count by User

Если я правильно понимаю ваш вопрос, вы хотите использовать значения в поиске в качестве фильтра данных (т. Е. Только там, где User находится в этом списке)

Если это так, то это и будет сделано.

Если вам нужно сделать так, чтобы имена полей совпадали, потому что таблица поиска имеет другое имя, измените подпоиск на следующее:

    [| inputlookup users.csv
     | rename lookup_field_name as User ]
person warren    schedule 17.04.2020
comment
Спасибо. Приведенный выше запрос, отправленный вами, дает 0 результатов. Я снова перепроверил, так ли это, но, как я уже сказал, для каждого из пользователей сгенерировано 100 событий. - person messi.torres28; 17.04.2020
comment
@ messi.torres28 - действительно нужны образцы данных о событиях, чтобы они могли помочь вам лучше, чем простое предположение :) - person warren; 17.04.2020