语法与规则

最近更新时间:2019-09-12 10:14:16

日志服务提供丰富的检索功能,您可以通过查询语法、检索规则实时查询日志,检索结果秒级返回,帮助您快速了解业务情况。

开始检索

日志检索是 CLS 所提供的非常重要的能力,您可以自定义查询条件秒级查询亿级别的日志数据,具体的操作步骤如下:

  1. 登录 日志服务控制台
  2. 控制台左侧选择【日志检索】,进入检索页面。
  3. 选择查询时间区间,日志集,日志主题。
  4. 输入关键词后单击【查询】,即可获得查询结果。

查询语法

检索支持以下查询语法:

语法 语义
key:value 键值搜索格式,需要开启配置 键值索引,其中 value 支持?*模糊搜索
A and B “与”逻辑,返回 A 与 B 的交集结果,若多个关键词,使用空格分割则默认为 and
A or B “或”逻辑,返回 A 或 B 的并集结果
not B “非”逻辑,返回不包含 B 的结果
A not B “减”逻辑,返回符合 A 但不符合 B 的结果,即 A-B
(A , B) 合并多个 query 为一个 query,主要用于控制运算优先级
A:B key-value 对的查询格式,若 key 或者 value 中包含空格、冒号等关键字符,需要用引号包括。例如 "error level":high
'a' 字符a将被视为普通字符,不会当作语法关键词处理
"A" A 中的所有关键词都将被视为普通字符,不会当作语法关键词处理
\ 转义字符,转义后的字符表示符号本身,例如转义引号\",转义冒号\:
* 模糊查询关键字,匹配零个、单个或多个任意字符,不支持开头*,例如:输入abc*,会返回以abc开头的所有命中日志
? 模糊查询关键字,特定位置匹配单个字符。例如,输入ab?c,会返回以ab为开头,以c为结尾字符,且两者之间且有一个字符的所有命中日志
> 大于,针对数值类型的字段
>= 大于等于,针对数值类型的字段
< 小于,针对数值类型的字段
<= 小于等于,针对数值类型的字段
= 等于,可以是数值类型的字段,也可以是文本类型(不支持模糊搜索,若要使用模糊搜索,参考键值搜索 key:value)
in 数值范围查询,中括号 [] 表示闭区间,() 表示开区间,例如,(0 100] 表示 >0 且 <=100
_source_ 查询某个 source 源的日志,例如 _source_:127.0.0.1
注意:

  • 运算符的优先级由高到低排序为: > " > () > and > not > or
  • 数值型必须设置成 double 或 long 类型后,才能进行范围检索,否则返回的结果会与预期不符。
  • 若 b 是文本,a=ba:b的区别在于前者是 a 全等于 b,后者是 a 包含 b(按分词逻辑处理,支持模糊搜索)。
  • 语法关键词不区分大小写。

检索规则

在进行日志检索时,检索时间范围、日志集、日志主题是三个不可缺少的查询条件。默认检索时间为当天有效日志数据,而日志集与日志主题需要您根据查询需求进行选择。搜索框内容允许为空,若为空,即视为无筛选条件,系统将返回所有有效的日志数据。

全文检索

对于开启全文索引的日志主题,系统会根据分词符将每条日志数据拆分为多个词组,以支持您根据特定的关键字来检索日志。

例如,想查询包含error关键字的日志数据,在搜索框里输入error进行查询即可。

键值检索

对于开启键值索引的日志主题,系统根据所指定的 kv 键值对进行日志数据管理,您可以通过指定特定的 key 字段来进行日志检索。

例如,想查询status字段为error的日志数据,在搜索框里输入status:error进行查询即可。

模糊关键字检索

日志服务提供模糊查询的能力,通过特殊的模糊关键字进行日志检索,具体说明如下:

元字符 描述
* 模糊查询关键字,匹配零个、单个或多个任意字符。例如,输入abc*,会返回以abc开头的所有命中日志
? 模糊查询关键字,特定位置匹配单个字符。例如,输入ab?c,会返回以ab为开头,以c为结尾字符,且两者之间且有一个字符的所有命中日志

跨主题检索

日志检索时的日志集为单选项,该日志集下面的日志主题为多选项,因此日志服务支持同一日志集进行跨日志主题检索,即可选择同一日志集下的多个日志主题同时进行检索,方便您定位分析问题。

注意事项

  1. 在进行日志检索时请确认相应的日志主题已开启检索,否则将无法检索到有效日志。
  2. 在进行键值检索时,请确认所查询的索引字段在日志主题的索引配置中已成功配置。
  3. 日志检索结果默认为倒序排列。