操作场景
索引配置是使用日志服务(Cloud Log Service,CLS)进行检索分析的必要条件,只有开启索引才能对日志进行检索分析。而且不同的索引规则也会产生不同的日志检索分析效果,本文档会详细介绍索引的配置规则及原理。
功能介绍
类别 | 描述 |
全文索引 | 全文索引将日志全文整体切分为多个分词进行索引构建,检索时直接通过关键词进行检索(即全文检索),例如使用 error 检索所有出现过 error 的日志。 |
键值索引 | 键值索引将原始日志按字段(即 key:value)分别切分为多个分词进行索引构建,检索时基于键值方式进行检索(即键值检索),例如使用 level:error AND timeCost:>1000 检索日志级别(level)为 error 且耗时(timeCost)大于 1000ms 的日志。 |
注意
索引关闭时采集的日志数据无法被检索,从开启索引到支持日志检索分析存在约一分钟延迟。
索引规则编辑(包括新增/编辑/删除字段、调整分词符配置等在内的所有操作)后仅对新写入的日志生效,已有数据不会更新。
下划线开头为系统保留用法,若您的日志中包含下划线开头的字段, 开启全文索引后,将会在字段前加上@符号。
前提条件
使用 Loglistener 采集日志时,如果采集配置中提取模式为单行全文或多行全文,日志原文存储在
__CONTENT__
字段中,仅支持配置全文索引。如需为其中的部分内容配置键值索引或开启统计,需在采集配置中进行 日志结构化 处理,使用除单行全文和多行全文以外的日志采集提取模式。低频存储 仅支持全文索引,不支持键值索引。
全文索引
配置项 | 功能描述 |
全文分词符 | 对原始日志进行分词的字符集合,仅支持英文符号,控制台默认分词符为 @&?|#()='",;:<>[]{}/ \\n\\t\\r\\\\ 。 |
大小写敏感 | 检索时是否对大小写敏感。例如日志为 Error,若大小写敏感,则使用 error 无法检索到该条日志。 |
是否包含中文 | 日志中包含中文且需要对中文进行检索时可开启该功能。例如日志为“用户登录接口超时”,若未开启该功能,搜索 "超时" 无法检索到该日志,只有完整地搜索"用户登录接口超时" 才能检索到该日志,开启该功能后便可通过搜索“超时”检索到该日志。 |
键值索引
配置项 | 功能描述 |
字段名称 | 仅支持字母、数字、下划线和-./@,且不能以下划线开头。 |
字段类型 | 字段的数据类型,包括 text、long、double 三种类型。 text 类型支持使用通配符进行模糊检索,不支持范围比较。 long、double 类型支持范围比较,不支持模糊检索。 |
分词符 | 对字段值进行分词的字符集合,仅支持英文符号,控制台默认分词符为 @&?|#()='",;:<>[]{}/ \\n\\t\\r\\\\ 。 |
包含中文 | 字段中包含中文且需要对中文进行检索时可开启该功能。例如日志为“message:用户登录接口超时”,若未开启该功能,使用 message:"超时" 无法检索到该日志,只有使用message:"用户登录接口超时" 才能检索到该日志,开启该功能后便可使用message:"超时" 检索该日志。 |
开启统计 | 开启后可对该字段使用 SQL 进行统计分析,text 类型字段开启统计时,如果值过长,仅前32766个字符参与统计运算。 开启统计不会额外产生费用,建议您开启。 |
大小写敏感 | 检索时是否对大小写敏感例如日志为“level:Error”,若大小写敏感,则使用 level:error 无法检索到该条日志。 |
说明:
已开启全文索引时,键值索引不产生任何额外索引流量/存储费用,建议您尽量多地为字段开启键值索引,以获得更好的检索分析体验。
内置保留字段 | 说明 | 键值索引配置 |
__FILENAME__ | 日志采集的文件名,可以利用该字段检索特定文件下的日志,例如 __FILENAME__:"/var/log/access.log" 检索 /var/log/access.log 文件的日志。 | text 类型、无分词符、不包含中文、已开启统计 |
__SOURCE__ | 日志采集的源 IP,可以利用该字段检索特定机器下的日志,例如 __SOURCE__:192.168.10.10 检索192.168.10.10 机器的日志。 | text 类型、无分词符、不包含中文、已开启统计 |
__HOSTNAME__ | 日志来源机器名称,可以利用该字段检索特定机器下的日志,例如 __HOSTNAME__:localhost 检索 localhost 机器的日志。注意:需使用2.7.4及以上版本的 Loglistener 才会采集该字段。 | text 类型、无分词符、不包含中文、已开启统计 |
__TIMESTAMP__ | 日志时间戳(毫秒级别 Unix 时间戳),按时间范围检索日志时,将自动使用该时间对日志进行检索,无需再检索语句中指定。在控制台显示为“日志时间”。 | long 类型,已开启统计 |
__INDEX_STATUS__ | 使用 __INDEX_STATUS__:* 可以查询所有索引创建异常的日志。 | text 类型、无分词符、不包含中文、已开启统计 |
高级设置
为满足部分特殊使用场景,索引配置提供如下高级设置。实际使用过程中,建议您采用推荐配置。通过控制台新建索引配置时,也会默认采用推荐配置。
配置项 | 含义 | 推荐配置 |
内置保留字段包含至全文索引 | 包含:全文索引包含 __FILENAME__ 、__HOSTNAME__ 及__SOURCE__ 这三个内置字段,同时支持全文检索及键值检索,例如"/var/log/access.log" 、__FILENAME__:"/var/log/access.log" 。不包含:全文索引不包含上述三个内置字段,只能使用键值检索,例如 __FILENAME__:"/var/log/access.log" 。 | 包含 |
元数据字段包含至全文索引 | 包含:全文索引包含所有元数据字段(前缀为 __TAG__ 的字段),可直接使用全文检索的方式检索相关日志字段,例如ap-beijing 。不包含:全文索引不包含任何元数据字段,只能使用键值检索的方式检索相关日志字段,例如 __TAG__.region:ap-beijing 。低频日志主题不支持键值检索,此时将无法检索这些字段。仅包含开启键值索引元数据字段:全文索引包含开启了键值索引的元数据字段,不包含未开启键值索引的元数据字段,低频日志主题无该选项。 | 包含 |
日志创建索引异常存储规则 | 日志创建索引过程中如果出现异常,CLS 为了确保日志不丢失,会将原始日志存储在 __RAWLOG__ 中。如果此时仅部分字段创建索引失败,可将失败的部分存储在指定字段中(默认为 RAWLOG_FALL_PART),详见 创建索引出现异常是什么意思?。 | 启用 |
操作步骤
编辑索引配置
1. 登录 日志服务控制台。
2. 在左侧导航栏中,单击日志主题,进入日志主题列表页面。
3. 单击需要配置索引的日志主题 ID/名称,进入日志主题管理页面。
4. 选择索引配置页签, 单击编辑,进入编辑索引配置页面。


导入索引配置
1. 登录 日志服务控制台。
2. 在左侧导航栏中,单击日志主题,进入日志主题列表页面。
3. 单击需要配置索引的日志主题 ID/名称,进入日志主题管理页面。
4. 选择索引配置页签,单击导入配置规则。


5. 在对话框中,选择需要导入的日志主题索引配置,单击确定,将选中的日志主题的索引配置填写至当前日志主题的索引配置中。
6. 确认无误后,单击确定,即可保存当前日志主题索引配置。
费用说明
规格与限制
常见问题
创建索引出现异常是什么意思?__RAWLOG__及__INDEX_STATUS__是什么?
日志创建索引过程中,如果原始日志格式异常或索引配置与原始日志不匹配,可能会导致日志创建索引异常,此时 CLS 为了确保日志不丢失,会将原始日志存储在
__RAWLOG__
中,作为兜底的异常处理方式。__INDEX_STATUS__
则为创建索引异常的原因。__RAWLOG__
仅支持全文检索(需开启全文索引),不支持键值检索、键值索引及统计分析。__INDEX_STATUS__
支持全文检索及键值检索,使用__INDEX_STATUS__:*
可以查询所有索引创建异常的日志。说明:
产生异常的日志,开启全文索引后,仍按照原始日志全文计算索引流量、索引存储及对应费用,不产生额外费用。
创建索引异常包含两类情况:
1. 日志中所有的字段均未按照索引配置成功创建索引,此时日志中仅具备
__RAWLOG__
字段,只能使用全文检索。
2. 日志中部分字段未成功创建索引,部分字段成功创建索引,此时日志中既具备
__RAWLOG__
字段,又具备创建索引成功的部分字段。
在“索引配置-高级设置”中还可以将异常部分的字段存储在指定字段中(默认为 RAWLOG_FALL_PART,支持配置键值索引及统计分析)。


CLS 会不断优化索引配置对原始日志的兼容性,尽量避免日志出现上述异常情况。随着产品迭代升级,具体的异常处理规则可能会发生变化。