Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CLS 监控告警:实时保障线上服务高可用性

CLS 监控告警:实时保障线上服务高可用性

原创
作者头像
日志服务CLS小助手
发布于 2022-07-27 03:33:01
发布于 2022-07-27 03:33:01
1K0
举报
文章被收录于专栏:日志服务CLS日志服务CLS

作者:kingszhang

导语

日志服务CLS是腾讯云提供的一站式日志服务平台,提供了日志采集、存储、检索、图表分析、数据加工、日志投递、监控告警、仪表盘可视化等多项服务,协助用户解决业务运维、运营及审计等多种场景问题。

可观测性的意义

【服务的可用性】

对于任何一个线上服务来说,可用性都是一个重要的质量指标,用户能否用产品完成任务?效率如何?主观感受怎样?这实际上是从用户角度所看到的产品质量,是产品竞争力的核心,是产品可靠性、维修性和维修保障性的综合反映

99%的高可用意味着一年中服务只有3.56天不可用,而99.9%的高可用意味着一年中服务最多8小时不可用,99.99%的高可用则意味着一年中服务最多只有52分钟不可用。

更多线上服务,尤其是数据服务,其要求的可用性是5个9到6个9之间,也就是一年最多有5分钟不可用,那么如何完成这个巨大的挑战,如何巧妙地利用技术体系低成本做到这一点呢?

【微服务的问题排查】

对于很多比较老的线上服务,如果突然出现了线上问题,我们是可以登录机器查看日志的,但也面临着如下的棘手问题:

  • 如果访问量稍微大一点,日志很多怎么办?
  • 如果线上某个业务出了问题,如何通过日志一分钟内定位问题原因?
  • 如果服务调用链长,涉及很多服务,如何进行链路追踪?
  • 还有一个灵魂拷问,你怎么知道你的服务当前是否健康?怎么知道你的服务中的某个业务模块是否健康?

因此线上服务急需一种能力,能实时监控系统的状态,在系统发生异常时开发者能收到警告,而不是等待业务方反馈;当系统发生错误时,能帮助开发者更快更精准更快速地定位问题,也就是一种业务可观测型建设

微服务系统需要做到3-5-10,即系统发生问题时,3分钟定位问题原因,5分钟修复,10分钟上线。可观测性体系,要能主动发现99%以上的微服务问题,长期建设高质量高可靠性的系统。

业务日志监控体系

目前越来越多的用户选择将业务日志全部上报到腾讯云日志服务CLS内(包含全链路traceId),然后基于日志服务,制作各种业务监控大盘和获取告警信息。研发可以通过这套体系,获取全面的关于业务系统健康状况的信息。

在什么地方打印日志?

做好日志的打印是非常困难的,开发者必须明白哪些日志必须打印,而哪些日志是可以省略的。这里介绍几个非常非常重要的日志,这些日志都是必须要打印的。

以六边形架构为例,尽可能在所有的出站适配器和入站适配器的出入口处打印日志

用另外一张图更清晰的展示如下:

为什么打印这些日志?

【服务入口为什么打印日志】

  • 第一,对每一个请求都进行记录,当日志上报以后,可以根据请求的数量对系统的负载进行更好的监控;
  • 第二,对每一个响应都进行记录,当响应异常时,日志系统可以帮助开发者及时发现问题,而不必等待业务方的反馈;
  • 第三,一旦服务真正出现问题,可以通过服务入口处的日志在任何地方(开发环境/测试环境/线上环境)复现问题的场景。

【依赖的三方服务为什么需要打印日志】

  • 第一,任何第三方服务都是不可信任的,开发者必须面向失败编程,完整的记录三方服务的请求与响应,而不是依赖三方服务自己的日志信息;
  • 第二,当自己的服务出现问题而根据日志确实无法定位时(很极端的情况),就需要及时复现问题场景,但是如果复现是第三方服务响应的信息不一样,那复现必定是不成功的,但如果提前记录了第三方服务的响应,在开发环境复现时,就可以及时mock数据。

日志需要打印哪些值?

对于服务入口处和第三方依赖的日志,需要打印响应时间、返回状态码、当前操作人、调用的方法名、服务名、调用方IP、被调方IP、行号、日志级别、全链路ID、服务环境等等信息;对于普通的日志,主要注意全链路ID即可。

特别需要注意的是,全链路唯一ID必须在所有的请求中进行透传,一旦丢失,将会引起很多不必要的麻烦。

上报后的日志展示如下:

腾讯云日志服务CLS能力演示

面对业务日志的庞大监控诉求,腾讯云日志服务CLS拥有「百亿级日志,秒级分析」、「一分钟实时告警」等产品能力,提供日志一站式服务,轻松解决运维、运营等场景难题。

下面就让我们一起来看看CLS的核心功能演示。

日志检索功能

CLS的检索和分析可以使用Lucene和SQL语法,针对每一个字段进行搜索。也可以使用全文检索,这都是最基本的功能。我们对日志进行格式化之后,每个字段都可以单独检索,可以说是目前最灵活最为强大的和方便的检索工具之一

同时支持丰富的算数操作符:

详情请见:概述及语法规则

日志分析功能

日志服务最强大之处在于对于搜索出来的日志结果,可以使用SQL语句进行分析,CLS也可以做OLAP分析引擎使用。

如下图所示,分析了最近15分钟各个方法的平均耗时:

还可以切换成不同图表等来进行展示,并且可以保存为监控大盘:

支持众多的分析函数:

详情请见:检索分析

日志监控

上面说到,我们可以使用SQL语句配置一些图表,这些图表可以配置为一个专题的仪表盘,比如部分业务数据接出情况统计的看板:

制作仪表盘非常简单,只需要使用SQL和一些函数,会写SQL就会配置仪表盘。

我们可以针对每个接口的成功失败、错误码、接口QPS等制作看板。也可以上报tomcat、trpc框架,甚至用Nginx日志来做分析和指标看板。

监控告警

1. 配置告警

对于上述日志的分析结果,可以针对于某个指标配置监控和告警。

下图是选择了ERROR级别的日志,在近15分钟中进行聚合,如果聚合结构大于0,则触发告警。

下图是告警效果:

其中,告警策略是策略名称,触发条件是此接口一分钟内报错数量大于15就告警。当前数据是当前的报错数量。

下方的多维分析会展示出具体的报错原因和全链路ID,可以快速查看报错信息;也可以点击查询日志的链接,快速查看报错的详细信息。

如图,点击后可以查看详细的堆栈信息和全链路日志,快速定位问题。

2. 业务使用的场景举例

场景一

某次用户的服务突然发出告警,一分钟内失败数量达到40个以上。开发同学点击告警链接,然后使用SQL语句后快速分析得出报错集中在一台机器IP上,查看机器信息发现是宿主机故障,因此快速停止了该机器后,告警也随之解除。

如下图所示:

只花费1分钟,就定位到问题原因然后解决了问题。可以看到,如果没有日志服务,挨个上机器查看犹如大海捞针,可能一上午也无法定位具体原因!

场景二:

某用户业务告警突然发出电话告警。我们通过全链路日志快速分析后,得出问题原因是OLAP数据库性能瓶颈急需扩容,扩容后业务恢复了正常。从定位问题原因到解决问题只花费了不到10分钟

CLS在全链路场景的应用

在CLS中,只要拥有一个traceId,就可以借此一次性查询所有日志。

下图是一个全链路日志,它由多个服务产生,并最终聚合到CLS日志平台。CLS全链路日志主要用于日志的查看和聚合。

结语

在成本允许的前提下,除了业务监控,后续还可以增加JVM的监控, GC的监控,内存监控,Trpc线程池的监控。容器层还可以增加内存监控、CPU监控、网络IO监控。

业务监控和告警已经可以覆盖大部分场景了,剩下的这些在极特殊场景下才会发挥作用,如做全链路压测或性能压测时才可能需要查看线程监控信息。

对于分布式服务,保证服务质量需要关注的点有很多(如下图),一般的业务只需要做好其中几个点就可以保障服务的质量了。

很多质量问题都可以在开发上线阶段发现并且解决,下面附上一个开发注意的测试要点:

在需求上线后,对于新增的接口和业务,做好监控和告警,对于数据报表服务来说,如果上线后出现RT增加或者失败率增加的现象,需要及时排查,必要时回滚然后再查清原因。

在未来,CLS会继续打磨日志服务细节,不断精进监控告警能力,帮助用户在日志运维、运营、合规审计等业务方面实现跨越式发展,为线上服务的高可用性保驾护航,造福更多运维团队与开发团队。


以上就是将CLS监控告警相关功能的应用实践,感谢阅读!

一站式日志数据解决方案平台
一站式日志数据解决方案平台

加入「腾讯云日志服务CLS技术交流群」,掌握最新动态,获取更多资讯!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【日志服务CLS】一键开启腾讯电子签的高效运维之旅
电子签业务快速起量,服务日志的倍速增长使得我们在性能优化、问题定位时需投入大量的精力维护原有的ELK架构。
日志服务CLS小助手
2021/12/20
1K0
【日志服务CLS】免费体验Demo日志:一键开启,CLS全功能开箱即用
在一些测试场景,或者新用户试用学习的场景下,正常的数据因门槛过高、数据敏感性、没有数据源等原因无法接入和使用,造成用户无法获取接近真实使用场景的体验。
日志服务CLS小助手
2021/12/08
1.3K0
【CLS数据淘金第四期】网络流日志-云联网日志分析
云联网(Cloud Connect Network,CCN)云联网覆盖全球 20+ 地域,提供云上私有网络间(VPC)、VPC 与本地数据中心间(IDC)内网互联的服务,具备全网多点互联、路由自学习、链路选优及故障快速收敛等能力。
日志服务CLS小助手
2022/11/14
8470
【日志服务CLS】腾讯云日志服务CLS尝鲜
腾讯云产品有很多的分类,一般有一级大类和二级分类,其中,日志服务CLS是作为大类“存储”中的“数据处理与分析”类别下。如果我们想体验CLS服务,可以从下图的这个入口进入,地址:传送门。
liuzhen007
2021/05/16
7K2
【日志服务CLS】腾讯云日志服务CLS尝鲜
千万级日活量,斗鱼如何基于日志实现秒级监控告警?
「斗鱼」作为品类中的头部平台,斗鱼直播APP的日活用户量超千万量级,高峰时段有上万名主播同时在线开播。
日志服务CLS小助手
2022/02/23
1.7K0
业务上云使用腾讯云日志服务方案
日志服务(Cloud Log Service,下文简称CLS服务)是腾讯云提供的一站式日志数据解决方案,可以快速便捷的接入,享受日志采集、日志存储到日志内容搜索、统计分析等全方位稳定可靠的日志服务。下文讲解业务接入腾讯云日志服务方案。
覃春善
2020/11/04
5.3K1
【日志服务CLS】CLS+CLB整合初体验
很早之前就使用过腾讯云版本的日志服务cls。个人的应用场景主要是想采集clb负载均衡的日志。但是早些时候腾讯云的负载均衡clb只能挂载单个ssl证书,早期域名比较混乱,不想使用多个的clb服务。个人采用了自建的kubernetes服务。采用了腾讯云cls +tcp的方式代理应用,tls证书作为secret的方式交由kubernetes管理。这样就不能在clb层收集日志了(到现在也是这样仅支持http https方式收集日志,不能使用tcp方式收集)。因此仅仅是试用了一下就放弃了。
对你无可奈何
2021/04/12
2.2K1
「腾讯会议」:面对业务指数级增长如何高效运维?
在我们深入使用CLS 的过程中,CLS的性能和数据加工的简便性给我们留下了深刻印象。原来需要自建Kafka和Flink才能完成的需求现在CLS两分钟就可以搞定了!
日志服务CLS小助手
2022/01/23
1.4K1
谁说“安全”和“便捷”不可兼得?CLS 首发 DataSight 独立控制台
腾讯云日志服务(Cloud Log Service,CLS)提供从日志采集、存储、检索分析、数据加工、消费投递、可视化及告警等一站式 SaaS 服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
云存储
2023/08/03
2050
谁说“安全”和“便捷”不可兼得?CLS 首发 DataSight 独立控制台
10倍流量突增,智能门店行业引领者—「非码」如何灵活运维?
非码是行业领先的智能门店提供商,服务于行业内众多一线品牌,对服务稳定性、问题处理及时性都有极高的要求,日志是运维环节中重要的一环。
日志服务CLS小助手
2022/01/17
7940
CDN访问日志质量性能监控与运营统计分析最佳实践
CDN是非常重要的互联网基础设施,用户可以通过CDN,快速的访问网络中各种图片,视频等资源。在访问过程中,CDN会产生大量的日志数据,通过对CDN访问日志的分析,可以挖掘出大量有用的信息用于CDN质量和性能的分析,错误诊断,客户端分布, 用户行为分析。
日志服务CLS小助手
2021/11/19
1.2K0
【日志服务CLS】全新Grafana数据源,一键安装,功能升级
Grafana是一个开源的可视化工具,同时也是一个时序性统计和分析监控平台,提供了多种数据源的对接,拥有丰富的图表和美观的布局展示,功能齐全的仪表盘和图形编辑器。
日志服务CLS小助手
2022/04/01
9460
测试右移-后台服务监控告警实践
前段时间,公司上线了一个“大屏”项目,用于对接展示一些业务平台的数据。但是在上线后使用过程中,产品或业务经常反馈前台页面没有数据。出现这种情况后,开发人员会去排查问题,解决后再通知产品或业务人员解决修复情况。虽然研发每次都能在较短的时间内响应并解决问题,但运行一段时间后又会反复出现,也给用户造成了极其不好的使用体验。而本文则是基于“测试右移”思想,开展的一次后台服务监控告警的实践记录总结,整个实践过程可以分为:
大刚测试开发实战
2022/11/14
7360
测试右移-后台服务监控告警实践
分享一些很实用的系统监控告警工具
说到监控告警,没有企业开发经验的同学非常容易忽视它,甚至会有同学觉得没有必要,大不了出了 Bug 再修就是了。
程序员鱼皮
2024/08/01
3020
分享一些很实用的系统监控告警工具
日志服务Grafana可视化实践——从自建ELK到使用CLS
互联网时代的公司业务种类繁多,在这些业务每日工作的背后,是各类日志系统承担日志记录和检索排障的工作。 在业务上云的大趋势之下,越来越多的团队开始选择使用腾讯云日志服务CLS来解决他们的日志采集与存储、排障检索、数据分析、告警监控、可视化展示的系列诉求。很多公司团队已经开始将日志服务从自建的ELK转移到CLS,通过LogListener采集日志并上传,使用CLS的检索分析功能。
日志服务CLS小助手
2022/03/31
2.4K1
定心丸之没有监控的系统就是半废 No.157
上次写了一篇文章。对业务系统的监控 No.118 。讲的是我们在开发完成之后还需要做些什么事情,我们的系统有哪些方面是需要监控的,很多小伙伴对于怎么落地其实还有一定的疑惑,今天细细说一下。
大蕉
2019/08/27
4750
简单易用的监控告警系统 | HertzBeat 在 Rainbond 上的使用分享
在现有的监控告警体系中 Prometheus + AlertManger + Grafana 一直是主流,但对于中小团队或个人来说,这种体系显的较为复杂。而 HertzBeat 能让中小团队或个人很快速的搭建监控告警系统,并通过简单的配置实现应用、数据库、操作系统的监控与告警等。
Rainbond开源
2022/12/21
1.1K0
【日志服务CLS】容器服务TKE审计日志运维场景体验
以前,排查这些问题,对客户来说并不容易。生产环境中的Kubernetes集群通常是一个相当复杂的系统,底层是各种异构的主机、网络、存储等云基础设施,上层承载着大量的应用负载,中间运行着各种原生(例如:Scheduler、Kubelet)和第三方(例如:各种Operator)的组件,负责对基础设施和应用进行管理和调度; 此外不同角色的人员频繁地在集群上进行部署应用、添加节点等各种操作。
日志服务CLS小助手
2021/12/03
1.5K0
那些年听烂了的名词之“高可用“
本文想来和大家聊聊那些年我们听烂了的名词之 ‘高可用’ ,那么第一个问题就是: “如何构建一个高可用系统呢?”
大忽悠爱学习
2024/01/09
7740
那些年听烂了的名词之“高可用“
【腾讯云应用性能观测x日志服务】:链路日志关联,加速故障定位
顾自然 腾讯云监控产品经理,硕士毕业于墨尔本大学。目前主要负责腾讯云业务层监控相关产品策划工作,对应用监控和运维领域有深刻理解。 前言 随着微服务架构的逐渐流行,在熵增且庞杂的系统中准确的定位一个请求的完整生命周期,逐渐成为了研发同学面对的最大的痛点之一,以研发同学自测过程为例,开发同学往往希望在发起测试的 Http/RPC 请求后,能够通过一个简单的方式获取整个测试请求的上下文信息。这其中通常包括相关的上下游链路、各个服务内部请求的方法堆栈,以及链路上打印的日志等数据,对于指标-链路-日志的一体化监控的需
腾讯云可观测平台
2022/03/24
1.4K0
推荐阅读
相关推荐
【日志服务CLS】一键开启腾讯电子签的高效运维之旅
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档