Перейти к основному содержимому
Версия: 4.3

Макросы

Описание

Макросы поиска – это многократно используемые части запроса Smart Monitor Language, которые можно использовать в других поисковых запросах.

Структура

к сведению

В названии макроса могут использоваться только буквы, цифры, тире и нижнее подчеркивание.

Макросы содержат следующие параметры:

Название поляОписаниеОбязательный параметр
НазваниеНазвание макросаДа
Поисковый запросТекст поискового запроса, на который будет заменен данный макрос. Если используются аргументы, они должны быть заключены в символы доллара, например $arg1$Да
АргументыСтрока с названиями аргументов, разделенных запятымиНет
Название макроса с аргументами

Если в макросе указаны аргументы, в конце названия должно указываться их количество в круглых скобках. Например: my_macro(2)

Примеры использования

Запрос данных из индекса sysmon_operational за последнюю неделю

ПараметрЗначение
Названиеsource_sysmon(1)
Поисковый запросsource sysmon_operational-* earliest="now-7d" latest="now" qsize=$qsize$
Аргументыqsize
Вызов макроса в запросе

Для вызова макроса в запросе его название необходимо заключить в символы апострофа '`'. Если у макроса есть аргументы, их надо указать в скобках через запятую. Если нужно передать запятую в аргументе, ее необходимо экранировать при помощи обратного слэша.

Пример запроса:

`source_sysmon(1000)`
| stats count by host.hostname

После обработки запрос будет преобразован в следующий вид:

source sysmon_operational-* earliest="now-7d" latest="now" qsize=1000
| stats count by host.hostname

Вызов команды stats с функцией и by полями

ПараметрЗначение
Названиеstats_rename_macros(3)
Определениеstats $func$ by $field$ | rename '$func$' as $newfield$
Аргументыfunc,field,newfield

В данном макросе первым параметром передается функция команды stats, вторым передаются by поля и третьим название нового поля.

Экранирование запятой

При помощи экранирования запятой в данный макрос можно передать несколько by полей.

Пример запроса:

`source_sysmon(1000)`
| `stats_rename_macros(values(event.code), host.hostname \, winlog.task, vals)`

После обработки запрос будет преобразован в следующий вид:

source sysmon_operational-* earliest="now-7d" latest="now" qsize=1000
| stats values(event.code) by host.hostname , winlog.task | rename 'values(event.code)' as vals