日志服务
检索方式 | 说明 |
检索方式 | 说明 |
全文检索 | 输入检索条件时,直接输入关键词,无需指定日志字段名,日志服务会根据指定的分词符切分原始日志,当分词后的日志中包含符合检索条件的词即匹配。检索语句格式如下: keywords1 [ [ and | or | not ] keywords2 ] ... 其中,keywords 为需要检索的关键词,支持与运算符结合使用。例如,404 AND 500 表示查询包含 404 和 500 关键字的所有日志。 说明
|
键值检索 (Key:Value) | 输入检索条件时,需要指定字段名称和字段值,如果日志内指定字段的值符合指定的检索条件即匹配。检索语句格式: key1 [ : | > | >= | < | <= | = ] value1 [ [ and | or | not ] key2 [ : | > | >= | < | <= | = ] value2 ]... 其中,key 为索引字段。例如,status:500 表示检索 status 为 500 的访问日志。 说明
|
检索精度 | 说明 | 示例 |
检索精度 | 说明 | 示例 |
精确查询 | 检索时指定完整的关键词,即通过完整的关键词进行匹配。
|
|
模糊查询 | 检索条件中仅指定关键词的部分字符,即在关键字中加上通配符星号(*)或问号(?),日志服务会匹配符合条件的 100 个词,并返回满足检索条件且包含这 100 词中的日志。
|
|
操作符 | 说明 | 示例 |
操作符 | 说明 | 示例 |
AND | 与逻辑操作符,表示取多个搜索结果的交集,指定多个逻辑操作时请使用半角括号()明确逻辑操作优先级。 | __path__:\/var\/log\/* AND error |
OR | 或逻辑操作符,表示取多个搜索结果的并集。指定多个逻辑操作时请使用半角括号()明确逻辑操作优先级。 | error OR warning |
NOT | 非逻辑操作符,表示搜索结果不包含 NOT 之后的关键词。指定多个逻辑操作时请使用半角括号()明确逻辑操作优先级。 | ERROR AND NOT __path__:\/var\/log\/* |
TO | 范围逻辑操作符,TO 前后应加空格。 如果开始值大于结束值,则会自动替换。即 age:[20 TO 1] 与 age:[1 TO 20] 等价。 | age:[1 TO 20] |
'' | 单引号,单引号中的字符串包含预设的分词符时,被分词符拆分后的各个关键字之间为 AND 关系。 使用单引号'包裹的星号*和问号?表示通配符。 | 'today is friday' |
"" | 双引号,双引号中的字符串包含预设的分词符时,被分词符拆分后的各个关键字之间为 AND 关系。 使用双引号"包裹的星号*和问号?不表示通配符,仅代表普通字符。 | __hostname__:"Jone Doe" |
: | 冒号,表示键值检索,返回包含指定 Key 和 Value 的日志。 | level:info |
* | 通配符,表示模糊查询。通配符*可以匹配零个、单个、多个字符。 使用双引号("")包裹星号(*)或问号(?)后,星号(*)或问号(?)仅表示普通字符,不具备模糊匹配功能。例如:
| level:erro* |
? | 通配符,表示模糊查询。通配符?可以匹配单个字符。 使用双引号("")包裹星号(*)或问号(?)后,星号(*)或问号(?)仅表示普通字符,不具备模糊匹配功能。例如:
| level:erro? |
() | 分组操作符,用于控制多个逻辑运算之间的优先级。 | ((__source__:192.168.10.10 AND __path__:\/var\/log\/*) NOT error) |
= | 等号,表示查询指定 value 的日志。 | age=18 |
!= | 不等号,表示查询不包含指定 value 的日志。 | age!=18 |
> | 范围操作符,表示在数值类型的字段中,查询 value 大于某个数值的日志。 | age>18 |
>= | 范围操作符,表示在数值类型的字段中,查询 value 大于等于某个数值的日志。 | age>=18 |
< | 范围操作符,表示在数值类型的字段中,查询 value 小于某个数值的日志。 | age<18 |
<= | 范围操作符,表示在数值类型的字段中,查询 value 小于等于某个数值的日志。 | age<=18 |
[] | 范围操作符,范围中包含边界值。 | age:[20 TO 30] |
{} | 范围操作符,范围中不包含边界值。 | age:{20 TO 30} |
\ | 转义符。如果查询的关键词中包含保留字符,则需要通过转义符进行转义后再检索。转义后的字符代表字符本身,而不是代表关键字。 需要转义的字符包括 + - = & | > < ! ( ) { } [ ] ^ " ~ * ? : \ / 。 说明
| __path__:\/images\/log |
场景 | 语句 |
场景 | 语句 |
查询包含关键词 ERROR 的日志。 | ERROR |
查询包含 level 字段的日志。 | level:* |
查询不包含 level 字段的日志。 | NOT level:* |
查询 level 字段值不为空的日志。 | NOT level:"" |
查询 level 字段值为空的日志。 | level:"" |
查询 level 字段值不为null的日志。 | NOT level:"null" |
查询来源为指定 IP 的某台机器或某些机器的日志。 | __source__:192.168.10.10 或 __source__:192.168.10.* |
查询日志采集路径为特定名字的某个文件或某些文件的日志。 | __path__:"/var/log/access.log"或__path__:\/var\/log\/*.log |
查询状态码为 4xx 的访问日志。 | status:[400 TO 500} |
查询状态码大于 400,即访问失败的日志。 | status:>400 |
在 GET 请求的访问日志中,查询请求失败的日志。 | method:GET AND status:>400 |
查询异常日志,即级别非 INFO 的日志。 | NOT level:INFO |
查询 ERROR 或 WARNING 级别的日志。 | level:ERROR OR level:WARNING |
查询指定机器上的异常日志,即来源为指定 IP 地址、级别非 INFO 的日志。 | __source__:192.168.10.10 NOT level:INFO |
来源为指定 IP 地址、级别为 ERROR 或 WARNING 的日志。 | __source__:192.168.10.10 AND (level:ERROR OR level:WARNING) |
查询指定机器上指定文件中的异常日志,即来源为指定 IP 地址、路径为指定文件、级别非 INFO 的日志。 | (__source__:192.168.10.10 AND __path__:\/var\/log\/access.log) NOT level:INFO |
通过预留字段 __pod_name__ 查询指定 Pod 名称的日志。 | __pod_name__:nginx |
查询 Pod 名称为 application,且请求延时大于 3s 的日志。 | __pod_name__:application AND request_time:>3 |
查询包含字段名为 ProjectID,字段值以 6d 开头,以 67 结尾的日志。 | ProjectID:6d*67 |
查询包含关键词 not 的日志。 | "not" 说明 not 默认为日志服务检索运算符,当 not 为普通的检索字符串时,需使用双引号("")包裹。 |
场景 | 检索语句 |
场景 | 检索语句 |
查询 region 字段的值中包含guilin的日志。 | region:guilin |
查询 region 字段的值中包含cn、guilin的日志。 | region:"cn guilin" |
查询包含以 gu 开头的词的日志。 | gu* |
场景 | 检索语句 |
场景 | 检索语句 |
查询 URL 字段的值中包含 ShardId=7 的日志。 | URL:#"ShardId=7" |
预留字段 | 说明 | 示例 |
预留字段 | 说明 | 示例 |
__source__ | 筛选来源为指定 IP 地址的日志。支持通过通配符进行模糊查询。 | __source__:127.0.0.* |
__path__ | 筛选来源为指定路径下文件的日志。支持通过通配符进行模糊查询。 | __path__:\/var\/log\/messages |
__time__ | 通过日志中的 __time__ 字段筛选日志,支持范围查询。 | __time__:[1524952304123 TO 1724958207123] |
分类 | 场景 | 检索语句和结果 |
分类 | 场景 | 检索语句和结果 |
基础模糊查询 | 查询包含以 Consume 开头的关键字的相关日志。 |
|
基于 SQL LIKE 语法的模糊检索 | 查询 host 字段中包含字符串 ivolces 的日志。 |
|
分类 | 场景 | 检索语句和结果 |
分类 | 场景 | 检索语句和结果 |
基础精确查询 | 查询包含关键词 ConsumeLogs 的相关日志。 |
|
| 查询 URL 字段中包含 ConsumeLogs 的日志。 |
|
| 查询 ConsumeLogs?ShardId=5 的相关日志。 | 在本示例中,问号(?)、等号(=)为分词符,因此日志服务会将 ConsumeLogs?ShardId=5 拆分 ConsumeLogs、ShardId、5 并进行查询。如果您需要精准匹配短语 ConsumeLogs?ShardId=5,可参考下面的短语查询和 SQL LIKE 查询。
|
短语查询 | 精准查询短语 ConsumeLogs?ShardId=5 相关的日志。 | 精准匹配ConsumeLogs?ShardId=5,可以使用短语查询或者基于 SQL LIKE 语法的精确检索。
|
基于 SQL LIKE 语法的精确检索 | 精准查询 URL 字段中包含 ConsumeLogs?ShardId=5 的相关日志。 |
|