日志服务 CLS 是什么?
日志服务(Cloud Log Service,CLS)提供一站式的日志数据解决方案。您无需关注扩缩容等资源问题,五分钟快速便捷接入,即可享受日志的采集、存储、加工、检索分析、消费投递、生成仪表盘、告警等全方位稳定可靠服务。全面提升问题定位、指标监控的效率,大大降低日志运维门槛。
日志服务主要提供以下功能:
日志采集:便捷实时采集跨地域、多渠道、多平台、不同数据源的日志数据,轻松采集多种其他腾讯云产品日志。
日志存储:提供两种存储类型:实时存储和低频存储。
日志检索分析:使用关键词检索日志,帮助用户快速定位异常日志,同时支持使用 SQL 对日志进行统计分析,获取日志条数随时间变化趋势、错误日志比例等统计指标。
日志数据加工:日志过滤、清洗、脱敏、富化、分发、结构化。
日志投递与消费:投递到腾讯云存储、中间件,消费到流计算。
仪表盘:将检索分析结果快速生成自定义 Dashboard。
告警:异常日志秒级告警,支持通过电话、短信、邮件、微信、企业微信和自定义接口回调等方式通知用户。
日志服务如何定义一条日志?
日志(Log)是应用系统运行过程中产生的记录数据,如用户操作日志、接口访问日志、系统错误日志等。日志通常以文本的形式存储在应用系统所在的机器上,一条系统运行记录对应的日志可能为一行文本(单行日志),也可能为多行文本(多行日志)。
日志可以保存多长时间?
日志服务提供日志生命周期管理,在创建日志主题时可以指定日志的有效保存周期,支持保存1 - 3600天或永久保存,逾期后数据将会被清理且不会再产生存储费用。
日志集和日志主题的区别是什么?
日志主题(Topic)是日志数据在日志服务(Cloud Log Service,CLS)平台进行采集、存储、检索和分析的基本单元,采集到的海量日志以日志主题为单元进行管理,包括采集规则配置、保存时间配置、日志检索分析以及日志下载/消费/投递等。
日志集(Logset)是对日志主题的分类,一个日志集可包含多个日志主题。日志集本身不存储任何日志数据,仅方便用户管理日志主题。
单个日志主题最多可采集多少日志?
为应对海量日志采集需求,单个日志主题包含多个主题分区,每个主题分区写请求最大为500QPS,写流量最大为5MB/s。采集日志量较大时,建议开启 主题分区自动分裂 功能(默认开启),单个日志主题最大可拥有50个分区,此时单个日志主题的写请求最大为50 * 500 = 25000QPS,写流量最大为50 * 5 = 250MB/s。
此处的写请求及写流量并不能简单的等于日志条数及日志量,日志上传时会将多条日志打包为一个 日志组 并进行压缩,实际支持的日志条数及日志量将远大于上述限制。使用 Loglistener 时将自动进行日志打包及压缩,您无需关注具体的打包策略。
什么是索引和分词?
索引配置是使用日志服务(Cloud Log Service,CLS)进行检索分析的必要条件,只有开启索引才能对日志进行检索分析。创建索引实际上是将原始日志按指定的符号切分为多个片段(即分词),并对分词进行 倒排索引 的过程。
全文索引和键值索引有什么区别?
全文索引:全文索引将原始日志整体切分为多个分词进行索引构建,检索时直接通过关键词进行检索(即全文检索)。例如输入
error
表示检索包含 error
关键词的日志。键值索引:键值索引将原始日志按字段(即 key:value)分别切分为多个分词进行索引构建,检索时基于键值方式进行检索(即键值检索)。例如输入
level:error
表示检索 level
字段中包含 error
的日志。检索和分析有什么区别?
检索:根据指定的条件查找匹配的原始日志,例如使用
status:404
检索响应状态码为404的应用请求日志。分析:针对符合检索条件的日志使用 SQL 进行统计分析,例如使用
status:404 | select count(*) as logCounts
统计响应状态码为404的应用请求日志数量。日志检索分析性能如何?
检索性能:百亿级别日志,秒级返回结果。
分析性能:亿级别日志,秒级返回结果;百亿级别日志,1分钟内返回结果。该性能与分析使用的 SQL 复杂度有很大的关系,SQL 非常复杂时可能低于该性能指标。
从日志生成到可以检索到需要多久?
通过 Loglistener/Kafka 协议/API/SDK 等方式采集日志时,从日志生成到可以检索的时间均为秒级。
服务不在腾讯云上,可以使用日志服务吗?
服务器更换 IP 地址后,Loglistener 应该如何适配?
若服务器通过机器标识绑定机器组,用户无需变更 Loglistener 配置。若服务器 IP 需要频繁变更,建议用户使用机器标识配置机器组。详情请参见 机器组。
若服务器通过 IP 地址绑定机器组,用户需要完成以下配置变更:
1. 修改 Loglistener 安装目录下的 /etc/loglistener.conf 文件。此处安装目录以 /usr/local 为例:
vi /usr/local/loglistener-2.3.0/etc/loglistener.conf
2. 键盘按 i 键,进入编辑模式。
3. 修改配置文件中 group_ip 部分,填入变更后的 IP 地址。
4. 保存设置并退出编辑器,具体操作步骤:按 Esc 键,输入 :wq,按 Enter 键。
5. 执行如下命令,重启 Loglistener。
/etc/init.d/loglistenerd restart
6. 登录 日志服务控制台,在左侧导航栏中,单击机器组管理,修改该服务器绑定的机器组配置,使用新 IP 替换原机器 IP 地址,单击确定。
如何排查测试告警通知渠道报错或未收到测试消息?
情况1:页面显示“发送失败”
鼠标在“发送失败”上悬停可查看错误码及详细的失败原因,常见的错误码如下:
错误码 | 含义 | 排查方式 |
-1004 | 该通知渠道消息发送失败 | |
-1005 | 该通知渠道部分消息发送失败,例如部分用户未成功发送,或部分渠道未成功发送 | |
-1006 | 企业微信或自定义接口回调报错 | 根据详细的失败原因进一步排查,常见的错误包括: invalid URI for request:不是一个合法的 URL 地址。 i/o timeout:接口访问超时,请检查接口地址及能否通过公网直接访问。 callback custom error with status:xxx:接口响应报错,请检查接口地址及后端服务是否正常。 http status code is 400:接口 HTTP 状态码为 400 ssrf attack:回调接口地址需为公网可直接访问的地址,接口地址为腾讯云内网时可能出现该错误。 |
说明:
测试“自定义接口回调”告警渠道时,平台采用固定的请求参数调用该自定义接口,可能会存在请求参数不符合接口要求而导致通知发送失败的情况,此时测试通知渠道功能无实际意义,您可直接在告警策略中按接口要求配置合适的请求头和请求内容,详情参见 自定义回调接收告警通知。
情况2:页面显示“已发送”,但实际未收到测试消息
根据接收渠道,常见原因如下:
接收渠道 | 原因 |
邮件、短信、微信、电话 | 为避免重复通知干扰用户,一天内仅允许向同一用户使用同一渠道发送一次测试消息。 |
自定义接口回调(钉钉、飞书、Slack 等第三方平台地址) | 测试消息不符合钉钉、飞书、Slack API 接口要求,消息被忽略,此时测试通知渠道功能无实际意义,您可直接在告警策略中按钉钉及飞书 API 要求配置合适的请求头和请求内容来发送告警,详情可参见 管理通知渠道组。 |
自定义接口回调(其它地址) | CLS 以 HTTP 响应状态码来判断消息发送是否成功,请检查自定义接口是否存在 HTTP 响应状态码正常,但仍存在其他业务逻辑限制的情况。 |