腾讯云CLS日志服务告警与监控配置完全指南:从入门到生产级实践
一、腾讯云CLS告警监控体系概述
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志数据解决方案,支持日志与指标数据的采集、ETL、检索分析、可视化及告警的一体化可观测SaaS服务。CLS的监控告警功能支持对一个或多个日志主题设置告警策略,策略会周期性执行监控任务,当查询分析结果满足触发条件时自动发送告警通知,帮助运维团队及时发现异常。
CLS的告警体系具备几项核心优势:支持百亿级日志秒级分析和一分钟实时告警;告警策略执行语句的语法规则与检索分析一致,日志主题支持SQL并遵循SQL-92标准,可使用400余种SQL函数对日志进行统计分析;指标主题则兼容PromQL,支持灵活的指标运算与统计。此外,CLS的监控告警功能本身不收取额外费用,短信和语音通知渠道当前也免费提供。
需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联
二、告警配置前的准备工作
2.1 开通CLS服务
在配置告警之前,首先需要开通CLS服务。登录腾讯云控制台后,在产品与服务中找到日志服务或直接搜索CLS,进入产品页面后单击立即开通即可。新用户可享受一定的免费试用额度。
2.2 创建日志主题并采集数据
开通服务后,需要创建日志主题(Topic)来接收日志数据。在CLS控制台左侧导航栏单击日志主题,进入管理页面,选择地域后单击创建日志主题。日志主题是日志数据的收集、存储和查询单元,一个日志集(Logset)可以包含多个日志主题,每个日志主题对应一类服务或一种日志类型。
日志采集支持多种方式:通过CLS自带的LogListener客户端采集、API/SDK上报、或直接对接腾讯云云产品(如TKE、COS、MySQL、Kafka等)实现自动采集。LogListener是CLS提供的专用日志采集客户端,部署在日志源服务器上,可实现快速无侵入式地把日志数据采集到日志服务中。
2.3 配置索引
告警策略需要使用SQL语句进行查询分析,因此必须为日志主题配置索引。CLS提供了索引推荐配置功能,系统可自动识别日志字段并创建索引,包括后续新增字段,无需手动维护索引,大大降低了配置难度和错误风险。也可以在创建日志主题时手动配置索引字段,确保需要用于告警条件的字段都被正确索引。
需要特别注意的是,低频存储(STANDARD_IA)不支持配置告警策略,告警策略所使用的日志主题不能处于低频存储状态。
三、告警策略配置详解
3.1 进入告警策略管理页面
登录CLS控制台后,在左侧导航栏中选择监控告警 > 告警策略,进入告警策略管理页面。单击新建策略开始配置。
3.2 配置监控对象与监控任务
监控对象:选择目标日志主题作为监控对象,最多可同时选择同一地域下的20个日志主题。如果多个日志主题同时满足触发条件,会同时生成多条告警。
查询语句:在日志主题上执行的检索分析语句,语法规则与检索分析一致。查询语句需要包含分析语句(即SQL语句)。
示例1:统计错误日志数量
status:error | select count(*) as ErrCount示例2:计算特定域名的平均响应时间
domain:\"aaa.com\" | select avg(request_time) as Latency以上示例来自CLS官方文档。
查询时间范围:指定查询语句检索数据的时间范围,最长可设置为最近24小时。
监控周期:策略的执行周期,支持固定周期(如每5分钟)和固定时间(如每天12:00)两种模式。
3.3 配置触发条件
触发条件是告警策略的核心,当查询分析结果满足触发条件表达式时即触发告警。在条件表达式中,使用 $N.keyname 来引用查询语句的结果,其中 $N 表示当前告警策略中的第N条查询语句,keyname 表示结果中的对应字段名。
示例1:当错误日志数量超过10条时触发告警
$1.ErrCount > 10这里 $1 表示第一条查询语句,ErrCount 是查询结果中的字段名。
示例2:当域名响应时间平均超过5秒时触发告警
$2.Latency > 5这里 $2 表示第二条查询语句,Latency 是查询结果中的字段名。
按分组触发:开启按分组触发后,如果查询语句返回多个结果且都满足触发条件,系统会按分组字段对结果进行分组,为每个分组独立触发告警。例如,按域名分组统计平均响应时间,每个域名独立判断是否触发告警。
3.4 配置告警级别
CLS支持多级告警严重程度,包括信息(Info)、警告(Warning)和紧急(Critical)三个级别。不同触发条件可以触发不同严重级别的告警,例如紧急告警通过电话通知,警告告警通过短信通知,信息级告警不发送通知。这种分级机制有助于运维团队根据告警的紧急程度采取差异化的响应策略。
3.5 告警状态与历史
当触发条件首次满足时,告警进入未清除(Not Cleared)状态;当触发条件不再满足时,告警进入已清除(Cleared)状态。如果告警策略被编辑修改,尚未清除的告警会被置为无效(Invalid)状态。在CLS控制台的监控告警 > 告警历史中可以查看当前未清除的告警和历史的已清除告警记录。
四、通知渠道配置
4.1 通知渠道组
CLS告警支持丰富多样的通知渠道。在CLS控制台左侧导航栏中,选择监控告警 > 通知渠道组,进入通知渠道组管理页面进行配置。
用户通知渠道包含邮件、短信、微信、企业微信和电话五种告警渠道。默认所有告警策略开启短信与邮件两个渠道,接收告警信息需在访问管理控制台填写验证接收人联系方式,包括手机、邮箱和绑定微信。
接口回调支持将通知推送到企业微信群机器人、钉钉群机器人、飞书群机器人、Slack群应用和PagerDuty。此外还支持Teams、自定义接口回调等通知方式。配置自定义API回调时,在通知渠道页面填写自定义回调链接地址,并按需设置自定义请求内容。告警触发后,CLS会按照配置的请求格式调用自定义API。
4.2 通知内容模板
CLS支持自定义告警通知内容和格式。在左侧导航栏中选择监控告警 > 通知内容模板,进入管理页面后单击新建,可以自定义告警通知的标题、正文内容格式以及Webhook回调的请求体结构。通过通知内容模板,可以将告警的关键信息(如触发条件、查询结果、日志样本等)以结构化方式推送到通知渠道,提升告警的可读性和可操作性。
4.3 可观测平台通知模板集成
日志服务CLS现已支持通过腾讯云可观测平台通知模板发送告警,实现告警通知的一体化管理。在CLS告警策略配置中,选择可观测平台通知模板作为通知方式,即可复用已在可观测平台中创建的通知模板,与云产品监控、应用性能监控等告警共用通知策略,避免多处重复配置。依托可观测平台,还可使用值班表、电话通知轮询、告警消息投递到云函数等高级告警能力。
五、告警高级功能
5.1 沉默时间(静默期)设置
告警风暴是运维团队经常面临的困扰。CLS的告警策略支持自定义沉默时间,告警触发后若未处理,系统将在设定的沉默期内自动抑制重复告警。例如设置沉默期为10分钟,相同告警在10分钟内仅通知一次。
配置方法:在CLS控制台进入日志服务 > 告警管理 > 告警策略,选择目标策略后单击修改 > 高级设置,在静默期字段输入期望时长(如15分钟)。配置完成后,告警策略将按新规则执行。
CLS的告警策略遵循触发一次、静默N次的原则:告警首次触发后,系统在沉默期内不再重复发送;若告警条件持续满足,系统会在沉默期结束后再次触发通知。若告警长时间未解决,还可配置告警升级策略,如通知上级或接入工单系统。
5.2 动态阈值告警
传统的静态阈值告警在面对业务波动时容易产生误报或漏报。CLS支持动态阈值告警功能,基于机器学习算法自动识别日志数据的正常波动范围,智能检测指标异常并发送告警。动态阈值不需要用户手动设定指标阈值,系统会根据历史数据自动学习并动态调整告警边界,有效减少误报,特别适用于流量波动较大的业务场景。
5.3 多主题关联分析
CLS支持跨日志主题的检索与告警,例如同时监控TKE集群日志和NFS文件系统日志,实现多源日志的关联分析。通过SQL的JOIN、UNION、EXCEPT、INTERSECT等语法,可以关联分析同地域的多个日志主题或外部数据源(CSV文件、云数据库MySQL、自建MySQL)。这种多主题关联分析能力让告警不再局限于单一数据源,能够从更宏观的视角发现系统异常。
5.4 告警策略模板与批量创建
CLS为常见日志预置了告警策略模板,通过模板可快速或批量创建告警策略。在告警策略管理页面单击批量创建,填写相关信息即可一次性创建多个告警策略。目前支持容器服务TKE审计日志和事件日志的预置模板,后续还将支持更多云产品日志。
六、监控可视化配置
6.1 内置仪表盘
CLS提供了开箱即用的预置仪表盘,帮助用户快速了解日志数据的整体状况。在CLS控制台左侧导航栏中选择仪表盘 > 仪表盘列表,展开预置仪表盘即可查看。
主题用量监控仪表盘可查看当前地域所有主题的汇总指标,包括Top使用量日志集和Top使用量主题。LogListener可观测仪表盘则提供了采集延迟、采集速率、发送成功率、待采集积压、CPU/内存占用率等关键指标的可视化展示。
6.2 自定义仪表盘
除了预置仪表盘,CLS还支持创建自定义仪表盘。在仪表盘列表页面单击创建仪表盘,可以选择创建空白仪表盘或导入已有的CLS仪表盘JSON文件。
添加图表到仪表盘的步骤如下:
- 在CLS控制台左侧导航栏中选择日志检索,进入检索分析页面
- 编写查询分析语句并执行,切换到图表分析标签页
- 选择所需的图表类型(如折线图、柱状图、饼图、表格等)
- 单击添加到仪表盘,选择目标仪表盘并保存
CLS提供了丰富的图表类型,可以使用SQL灵活地从日志中提取系统和业务指标并以图表形式展示。
6.3 LogListener采集器可观测指标监控
LogListener可观测指标是CLS为LogListener采集器提供的运行时观测能力。LogListener在采集、解析、发送日志的过程中,会按固定周期上报一系列内置指标,涵盖采集链路完整性、发送质量、解析正确性、异常计数、采集器自身状态、可靠性容错以及系统资源使用等多个维度。这些指标会以指标主题的形式存储到CLS,可通过PromQL查询、配置仪表盘和告警策略,实时观测每台机器上LogListener的运行状态。
关键监控指标包括:
- 采集延迟:CLS内部处理延迟,反映从感知日志到上传完成的端到端延迟
- 采集速率:单位时间内LogListener输入插件读到的原始日志字节数
- 发送成功率:日志发送到CLS的请求中成功的占比
- 待采集积压:文件当前大小减去LogListener已读偏移量的差值
- LogListener CPU占用率与内存占用率
LogListener可观测指标能力要求LogListener版本为v3.6.1及以上。当满足条件的机器上报数据时,CLS会自动创建默认指标主题cls_collector_services_metric,默认保存7天,并生成预置的LogListener可观测仪表盘。
七、Python SDK配置告警示例
除了通过控制台配置告警,CLS还提供了丰富的API接口,可以通过编程方式管理告警策略。以下是通过Python SDK创建告警策略的示例代码:
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.cls.v20201016 import cls_client, models
# 配置认证信息
cred = credential.Credential(\"您的SecretId\", \"您的SecretKey\")
# 配置HTTP和客户端
httpProfile = HttpProfile()
httpProfile.endpoint = \"cls.tencentcloudapi.com\"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = cls_client.ClsClient(cred, \"ap-guangzhou\", clientProfile)
# 创建告警策略请求
req = models.CreateAlarmRequest()
# 告警策略基本信息
req.Name = \"API错误率告警\"
req.AlarmTargets = [{
\"LogsetId\": \"您的日志集ID\",
\"TopicId\": \"您的日志主题ID\",
\"Query\": \"status:500 | select count(*) as ErrorCount\",
\"Number\": 1,
\"StartTimeOffset\": -5,
\"EndTimeOffset\": 0
}]
# 触发条件
req.MonitorTime = {
\"Type\": \"period\",
\"Time\": 5 # 每5分钟执行一次
}
req.Condition = \"$1.ErrorCount > 10\"
req.TriggerCount = 1 # 连续触发次数
# 告警级别
req.AlarmLevel = 2 # 2表示Warning级别
# 通知配置
req.AlarmNoticeId = \"您的通知渠道组ID\"
# 发送请求
resp = client.CreateAlarm(req)
print(resp.to_json_string())通过SDK方式配置告警,可以实现告警策略的自动化管理和版本控制,特别适合大规模部署和基础设施即代码(IaC)的场景。
八、生产环境告警配置最佳实践
8.1 告警策略分层设计
建议按照告警的重要程度和响应时效进行分层设计。紧急级别告警配置电话+短信+邮件多渠道通知,沉默时间设为较短(如5分钟);警告级别告警配置短信+邮件通知,沉默时间适中(如15分钟);信息级别告警仅配置邮件通知或不通知,沉默时间可较长(如30分钟)。通过分层设计,确保真正紧急的问题能够得到最快速的响应。
8.2 合理设置触发条件与沉默时间
触发条件的阈值设置需要结合业务特点。建议先通过CLS的检索分析功能观察日志数据的正常范围,再设定合理的阈值。同时充分利用动态阈值功能,让系统自动适应业务波动。沉默时间不宜过短(避免告警风暴)也不宜过长(避免延误处理),一般建议5-30分钟。
8.3 多维度告警覆盖
除了基于日志内容的告警,还建议配置LogListener采集器状态告警,确保日志采集链路本身是健康的。可以基于文件读取错误数、文件权限错误数、网络错误数等异常计数指标配置告警策略,实现采集链路的实时故障感知。
8.4 告警通知的精细化管理
利用通知内容模板自定义告警消息格式,在告警通知中包含触发条件、具体数值、日志样本、发生时间等关键信息,帮助接收者快速判断问题严重程度和初步定位方向。对于不同的告警级别和接收人,配置差异化的通知渠道和内容。
8.5 定期审视与优化
告警配置不是一劳永逸的。建议定期通过告警历史查看告警的触发频率和准确率,对于频繁误报的告警策略及时调整阈值或触发条件,对于漏报的场景及时补充新的告警策略。随着业务的发展和日志数据的变化,告警策略也需要持续优化。
九、常见问题与解答
问1:告警策略配置完成后一直没有触发告警,可能是什么原因?
答:首先检查日志主题是否已正确配置索引,告警策略依赖索引进行查询。其次确认日志主题不在低频存储状态。然后检查查询语句是否在检索分析页面能正常返回结果,以及触发条件的表达式是否正确引用了查询结果字段。最后确认监控周期和查询时间范围设置是否合理。
问2:告警通知频繁发送造成骚扰,如何控制告警频率?
答:可以通过配置沉默时间(静默期)来控制重复告警的频率。在告警策略的高级设置中设置合理的静默期时长,相同告警在静默期内不会重复发送。此外,还可以利用告警分级机制,对不同严重程度的告警配置不同的通知策略。
问3:CLS告警支持哪些通知渠道?如何配置企业微信机器人告警?
答:CLS告警支持邮件、短信、微信、企业微信、电话、钉钉、飞书、Slack、PagerDuty、Teams以及自定义接口回调等多种通知渠道。配置企业微信机器人告警需要在通知渠道组中创建接口回调,填写企业微信机器人的Webhook地址,并在告警策略中关联该通知渠道组。
问4:如何实现不同严重级别的告警使用不同的通知方式?
答:在创建告警策略时,可以为不同的触发条件设置不同的告警级别(Info/Warning/Critical)。然后通过配置不同的通知渠道组来实现差异化通知,例如Critical级别配置电话+短信+邮件,Warning级别配置短信+邮件,Info级别仅配置邮件或不通知。
问5:告警监控和告警通知是否会产生额外费用?
答:CLS的监控告警功能本身不收取任何费用。短信和语音通知渠道目前也是免费提供的,如有收费计划会提前至少一个月通知用户。用户只需支付CLS日志服务的存储、索引等基础费用。
问6:如何监控LogListener采集器本身的运行状态?
答:CLS提供了LogListener可观测指标功能。当LogListener版本为v3.6.1及以上时,系统会自动上报采集器运行指标到CLS的指标主题中。用户可以通过预置的LogListener可观测仪表盘查看采集延迟、采集速率、发送成功率、待采集积压、CPU/内存占用率等关键指标,也可以基于这些指标配置告警策略,实现采集链路的实时监控。





