Язык поисковых запросов в Graylog
Синтаксис языка поисковых запросов в Graylog
Синтаксис поиска очень близок к синтаксису Lucene. По умолчанию все поля сообщения включены в поиск, если вы не указали поле сообщения, в котором проводить поиск.
Сообщения, содержащие термин ssh:
ssh
Сообщения, содержащие термин ssh или login:
ssh login
Сообщения, содержащие точную фразу ssh login:
"ssh login"
Сообщения, в которых поле type содержит ssh:
type:ssh
Сообщения, в которых поле type включает в себя ssh или login:
type:(ssh login)
Сообщения, в которых поле type содержит точную фразу ssh login:
type:"ssh login"
Сообщения с полем type:
_exists_:type
Сообщения, которые не имеют поля type:
NOT _exists_:type
Сообщения, которые соответствуют регулярному выражению ethernet[0-9]+
в поле type
type:/ethernet[0-9]+/
По умолчанию все термины или фразы в поисковом запросе связаны между собой по логическому типу OR (ИЛИ), поэтому возвращаются все сообщения, имеющие хотя бы одно попадание. Можно использовать использовать Булевы операторы и группы для поиска:
"ssh login" AND source:example.org
("ssh login" AND (source:example.org
OR source:another.example.org))
OR _exists_:always_find_me
Вы также можете использовать оператор NOT:
"ssh login" AND NOT source:example.org
NOT example.org
Обратите внимание, что AND, OR и NOT чувствительны к регистру и должны вводиться только в верхнем регистре.
Подстановочные знаки (wildcards)
Используйте ?, чтобы заменить один символ, или *, чтобы заменить ноль или более символов:
source:*.org
source:exam?le.org
source:exam?le.*
Обратите внимание, что ведущие символы подстановки (то есть использование символа подстановки с начала поискового запроса) отключены во избежание чрезмерного потребления памяти! Их можно включить в конфигурационном файле Graylog:
allow_leading_wildcard_searches = true
Также обратите внимание, что message
, full_message
и source
- единственные поля, которые анализируются по умолчанию. Хотя поиск по шаблону (с использованием *
и ?
) работает со всеми индексированными полями, анализируемые поля будут вести себя немного иначе.р>
Нечеткость
Вы можете искать похожие термины:
ssh logni~
source:exmaple.org~
В этом примере используется расстояние Дамерау–Левенштейна со значением расстояния по умолчанию равным 2 и будет соответствовать «ssh login» и «example.org» (намеренно написано с ошибкой в запросе).
Вы можете изменить расстояние следующим образом:
source:exmaple.org~1
Вы также можете использовать оператор нечеткости, чтобы выполнить поиск близости, где термины в фразе могут иметь разные/нечеткие расстояния друг от друга и не должны быть в определенном порядке:
"foo bar"~5
Числовые поля поддерживают диапазонные запросы (range queries). Диапазоны в квадратных скобках проводят поиск включительно (то есть производят поиск включая указанные крайние значения), диапазоны в фигурных скобках проводят поиск исключительно (то есть производят поиск не включая указанные крайние значения) и могут даже быть объединенным:
http_response_code:[500 TO 504]
http_response_code:{400 TO 404}
bytes:{0 TO 64]
http_response_code:[0 TO 64}
Вы также можете выполнять поиск с одной стороны без ограничений:
http_response_code:>400
http_response_code:<400
http_response_code:>=400
http_response_code:<=400
Также возможно комбинировать операторы неограниченного диапазона:
http_response_code:(>=400 AND <500)
Экранирование (escaping)
Следующие символы должны быть экранированы обратным слэшем:
&& || : \ / + - ! ( ) { } [ ] ^ " ~ * ?
Пример:р>
resource:\/posts\/45326
Комментарии
Отправить комментарий