前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【CLS独家】一键开启索引“自动配置”,日志查询方便又准确

【CLS独家】一键开启索引“自动配置”,日志查询方便又准确

作者头像
日志服务CLS小助手
发布2024-01-15 18:09:22
1210
发布2024-01-15 18:09:22
举报
文章被收录于专栏:日志服务CLS日志服务CLS

腾讯云日志服务(Cloud Log Service,CLS)现已支持自动配置索引,可以自动识别日志字段并完成索引配置,无需手动配置。

提高效率的同时,避免了手动配置可能出现的人为错误,提高了索引配置准确性,降低了使用门槛和日志维护成本,可以有效解决日志查询过程中索引难以理解、配置和维护的问题。

日志服务配置索引难题

配置索引是使用日志服务查询日志的必要条件,但在实际使用中,其存在一些使用难点,特别是对于初次使用的用户来说尤为明显:

1. 难理解:配置索引时,用户需了解全文索引、键值索引、分词符等概念,这需要一定的学习过程门槛。

2. 难配置:由于日志结构的多样性,准确掌握所有日志结构和对应的字段是一项挑战,可能导致配置索引时遗漏部分字段。掌握所有可能的日志结构和字段是一项复杂的工作,手动配置时工作量大,容易出错,且易遗漏部分字段。

3. 难维护:应用更新可能导致日志结构变化,新增字段时,索引也需相应调整,提高了日志的维护成本。

为解决上述问题,CLS 在索引配置中推出了“自动配置”功能。

“自动配置”使用技巧

如上图,在索引配置中,开启“键值索引”后,再开启“自动配置”功能,即可完成索引配置。CLS 将自动识别日志中的字段,并将它们添加到键值索引中,用户无需手动添加日志字段。

例如以下原始日志:

代码语言:javascript
复制
10.135.46.111 - - [22/Jan/2019:19:19:30 +0800] "GET /my/course/1 HTTP/1.1" 127.0.0.1 200 782 9703 "http://127.0.0.1/course/explore?filter%5Btype%5D=all&filter%5Bprice%5D=all&filter%5BcurrentLevelId%5D=all&orderBy=studentNum" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0"  0.354 0.354

使用 LogListener 采集日志,并使用正则提取模式对日志进行结构化处理,可得到以下日志字段:

代码语言:javascript
复制
body_bytes_sent: 9703http_host: 127.0.0.1http_protocol: HTTP/1.1http_referer: http://127.0.0.1/course/explore?filter%5Btype%5D=all&filter%5Bprice%5D=all&filter%5BcurrentLevelId%5D=all&orderBy=studentNumhttp_user_agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0remote_addr: 10.135.46.111request_length: 782request_method: GETrequest_time: 0.354request_url: /my/course/1status: 200time_local: [22/Jan/2019:19:19:30 +0800]upstream_response_time: 0.354

?正则提取模式是一种模式匹配的方式,可以用来从日志中提取有用的信息。当使用LogListener收集日志,并使用正则表达式进行结构化处理后,可以得到一系列的日志字段,这些字段是经过处理后的、更易于理解和分析的日志数据。

如果不使用“自动配置”功能,需手动添加13个字段到键值索引中,过程非常繁琐。使用该功能后,则无需手动添加这些字段。CLS 会自动识别这些字段并确定其类型,完成相关配置,用户可直接使用这些字段进行日志检索和分析。

如果未来日志新增字段,“动态添加字段”功能也将自动添加新字段,无需修改索引配置。

JSON 格式日志“自动配置”使用技巧

当 JSON 日志字段层级深且结构较复杂时,易出现以下问题:

1. 字段数量过多:如果为所有的 JSON 子级字段添加索引,容易导致索引字段数量过多,超出底层限制,导致部分日志写入失败。

2. 字段类型不一致:JSON 日志中部分字段类型可能会频繁变化,有时是字符串,有时是对象),这种不一致性容易导致索引失败。 为避免这些问题,CLS 默认仅对 JSON 日志的第一级字段创建索引。如需为 JSON 中的子级字段创建索引,可手动配置进行调整。

例如以下原始日志共三个字段:

代码语言:javascript
复制
key1:textValuekey2:123key3:{"ip":"123.123.123.132","url":"class/132.html","detail":{"status_code":"500","id":13}}

自动添加的索引字段为:

字段名称

字段类型

分词符

包含中文

开启统计

key1

text

@&?|#()='",;:<>[]{}/ \n\t\r\\

包含

开启

key2

long

不涉及

不涉及

开启

key3

text

@&?|#()='",;:<>[]{}/ \n\t\r\\

包含

开启

如需为 key3 字段下的 ip 字段单独创建索引,可在索引配置中手动将 key3 字段修改为 key3.ip,动态添加字段功能将自动为 key3.ip 及其同级字段创建索引,最终的字段列表为:

字段名称

字段类型

分词符

包含中文

开启统计

key1

text

@&?|#()='",;:<>[]{}/ \n\t\r\\

包含

开启

key2

long

不涉及

不涉及

开启

key3.ip

text

@&?|#()='",;:<>[]{}/ \n\t\r\\

包含

开启

key3.url

text

@&?|#()='",;:<>[]{}/ \n\t\r\\

包含

开启

key3.detail

text

@&?|#()='",;:<>[]{}/ \n\t\r\\

包含

开启

结合上述功能逻辑,用户可以灵活控制需要为哪一层级的 JSON 字段创建索引。

操作手册:点击文末「阅读原文」获取

END

点击「阅读原文」领取操作手册

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-15,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 云原生日志服务CLS 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com