对于搜索中需要重复使用的SPL语句,搜索宏功能支持将可复用的SPL语句封装为自定义命令,在其他搜索中可以直接使用,以简化SPL搜索语句。
搜索宏可以定义为搜索语句的任意部分,例如一段eval表达式或者一个搜索项。在一些场景下您也可以为搜索宏指定变量,以及变量有效性表达式以校验提交的变量是否有效。
例如,您可以定义搜索宏nginx_search
为 sourcetype="nginx" repo="nginx"
,在nginx相关搜索分析中可以复用这部分搜索,只需要在搜索语句中输入`nginx_search`
即可。
- 定义搜索宏
- 使用搜索宏
定义搜索宏
点击左侧菜单栏搜索分析-搜索宏进入搜索宏管理页面。
点击“+”创建搜索宏,进入配置搜索宏输入框,填写如下参数:
- 输入搜索宏的名称。以字母开头,仅包含字母、数字、下划线。当定义的搜索宏中包含变量时,需要在搜索宏名称中添加变量个数。例如,搜索宏
nginx_search
包含1个变量,需要命名为nginx_search(1)
。 - 输入描述(可选),搜索宏的自定义描述内容。
- 输入搜索语句,即在另一个搜索中引用搜索宏时实际扩展的SPL语句。如果搜索宏中包含了变量,则在搜索语句中必须将变量两边以“$”符标记。例如,
sourcetype="nginx" repo="$arg$"
,$arg$
是定义的搜索宏变量。 - 输入变量(可选)。多个参数以“,”分隔。参数名称只能包含字母数字字符、下划线。
- 输入验证表达式。当搜索宏中包含了变量,可以定义一个验证表达式以验证用户输入的变量有效性,验证表达式为计算结果为布尔值或字符串值的eval表达式。如果验证表达式计算结果为布尔值,则返回true时验证成功,返回false或null时验证失败。如果验证表达式不是布尔值,则返回null时验证成功,返回字符串时验证失败。
- 输入验证错误信息(可选)。 定义当调用搜索宏时,输入的搜索宏变量验证失败时显示的验证错误消息。
- 输入搜索宏的名称。以字母开头,仅包含字母、数字、下划线。当定义的搜索宏中包含变量时,需要在搜索宏名称中添加变量个数。例如,搜索宏
点击确认后保存搜索宏。
您可以在搜索宏列表中查看已配置好的搜索宏命令,在使用时通过使用宏名称调用搜索宏。搜索宏列表展示如下信息:
我们可以对搜索宏进行包括编辑、授权、复制、删除等操作。
- 点击编辑按钮,您可以对已创建好的搜素宏的描述、搜索语句、参数、验证表达式、验证错误信息进行修改。
- 点击授权按钮,您可以授予某个角色某个搜索宏的查看、编辑、授权、删除权限。
- 点击复制按钮,您可以复制已有的搜索宏。
- 点击删除按钮,您可以删除某个不需要的搜索宏。
使用搜索宏
在搜索中调用搜索宏时,您需要在搜索宏名称前后加上“ ` ”符号。在定义搜索宏时嵌套引用另一个搜索宏也使用同样的语法。例如,如果您有一个名为my_search_2(2)
的搜索宏,则在搜索中引用方法如下:
`my_search_2(309ccfd52708f308,7e513dbd51d74db5)`
注意:
引号内的搜索宏不会被展开,例如repo="`nginx`"。
如果搜索宏的变量包含引号,在搜索中使用搜索宏时需要转义引号。
根据您的不同需求,搜索宏支持如下3种不同配置方式,您可以在搜索宏示例中查看到具体创建与使用方式:
- 不包含参数的搜索宏。
- 包含参数的搜索宏,配置验证表达式及验证错误信息。
- 嵌套引用其他搜索宏的搜索宏。
文档反馈
(如有产品使用问题,请 提交工单)