索引是一种数据存储结构,能减少日志数据的查询耗时。通过对日志配置相应索引后,可以对索引字段的数据进行相应的查询与分析。索引需配置合适的字段类型才能分析出您所需要的结果。
注意
默认情况下,编辑索引配置后(新增、编辑、删除字段,修改配置项等操作),将在1-2分钟后生效,并仅对新写入的日志生效,已有日志数据不会更新。当前不支持对历史日志重建索引。
不同的索引配置,会产生不同的查询和分析结果,请根据您的需求,合理创建索引。全文索引和字段索引互不影响。
日志服务默认已为部分内置保留字段创建字段索引,请参见保留的内置索引。
索引字段类型
目前支持两种数据类型配置,如下:
字段类型 | 说明 |
---|---|
text | 字符串,大小写敏感。 |
double | 浮点型,可存储整数和浮点数。 |
配置索引字段操作
-
登录云日志服务控制台,在右侧日志项目模块,点击目标日志项目名称。
-
选择目标日志单元,点击【日志检索】进入检索页面,再点击右上角的【索引配置】,打开索引配置界面。
-
点击【添加】按钮,输入字段名称入与字段类型,其中字段名称需要与采集规则中的分割 key 一致。
-
如果日志格式为JSON,您可点击【批量添加字段】按钮,批量添加界面可自动获取最新的一条日志,并自动解析JSON的字段名称和类型。
-
配置完成后点击确定,索引将在1-2分钟后生效,且仅对新数据生效。
索引配置参数说明如下:
参数 | 说明 |
---|---|
字段名称 | 采集的日志字段名称,仅支持数字、字母、下划线、连字符(-)、点(.),且不能以__开头,64个字符内 |
字段类型 | 字段的数据类型。目前支持 double - 浮点型,text - 字符串。其中double也可存储整型数据。 |
别名 | 预留字段,后续用于日志仪表盘等场景展示更易读的名称。 |
注意
创建索引字段时数量最多限制为100个。
配置的索引字段名称需要与采集规则中的分割 key 一致,否则配置的该索引字段无效。
编辑索引配置后(新增、编辑、删除字段,修改配置项等操作),将在1-2分钟后生效,并仅对新写入的日志生效,已有日志数据不会更新。当前不支持对历史日志重建索引。
示例说明
分别以单行日志与JSON日志为例,介绍应该如何配置索引。
单行日志
以下为单行日志示例:
36.111.30.4 GET /app/user/login 200
若配置采集规则时以空格作为分隔符,则日志将被解析成四个字段,并将四个字段制定对应的key为ip、method、url、status,采集后的日志将如下所示:
ip:36.111.30.4
method: GET
url: /app/user/login
status: 200
按照这种场景,可使用以下配置对相应字段进行索引,索引保存后大约1-2分钟后生效,并只对新写入的数据生效。
JSON日志
以下为JSON日志样例:
{
"ip": "36.111.30.4",
"methos": "GET",
"url": "/app/user/login",
"status": 200,
"other": {
"source": "app"
}
}
若配置的采集规则的分割模式为JSON模式,则可以在索引配置中定义批量添加字段如下:
注意:JSON索引配置的层数最多为5层(即类似 k1.k2.k3.k4.k5),超过5层深度的索引字段将会被丢弃。
保留的内置索引
所有日志默认自带保留的内置索引字段,内置字段声明前缀以英文双下划线开头(即 __),您不可创建与内置索引字段名称冲突的索引字段,且字段名称不能以以英文双下划线开头(即 __)。内置索引字段说明如下:
保留字段 | 字段类型 | 说明 |
---|---|---|
ts | 整型 | 日志采集时间,用于查询时间区间的过滤。 |
message | 字符串 | 日志原文 |
__tag__fileName | 字符串 | 采集器的日志文件路径,采集器为日志自动填加该字段。 |
__tag__topic | 字符串 | 日志主题,主要用于同一个日志单元多个场景的数据区分,目前填充为采集规则的名称。 |
__tag__XXX | - | 其他场景如容器中,会默认带__tag__podIp 等字段。 |