前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维千问——浅谈如何做后端服务的业务监控?

运维千问——浅谈如何做后端服务的业务监控?

原创
作者头像
金鹏
发布2023-09-29 00:10:40
5690
发布2023-09-29 00:10:40
举报
文章被收录于专栏:SDLC技术探究SDLC技术探究

我们都知道服务器层面的基础监控已经是玲琅满目,可以说是层出不穷,比如各大云厂商自带的基础设施的监控,基本能满足我们的需求。即使你是使用了多云的业务部署架构,那也可以轻易办到,比如使用open-falcon或者夜莺等开源监控系统,再比如比较流行的grafana+prometheus,Zabbix等国外监控系统,使用分布式架构采用默认指标就可以满足我们的需求,但是针对于业务监控,可能有些公司有自己的想法,也可能捉襟见肘。这篇文章我们可以一起从运维的角度探讨,如何做后端业务指标的监控,当然本文仅仅是一种参考思路,不作为上线依据。

一 什么是业务监控

个人理解的业务监控,是指针对业务层的异常指标开展的搜集/汇聚/存储/分析/告警/可视化等一系列流程系统化的过程。当然,业务监控具备实时性,数据量大等特点。通过业务监控可以帮助公司提升业务质量和服务质量,细节一点可以说是帮住业务开发者及时的发现/跟踪/预测问题,帮助业务完善业务逻辑,用户数据分析等。所以做业务监控要明确要监控什么,哪些指标是有意义的,以及如何去实现。

二 如何做业务监控

因为是涉及到搜集/汇聚/存储/分析/告警/可视化等一系列流程系的系统化,我们也不防拆开看。

2.1 搜集业务数据

这个很好说,就是通过日志打点搜集,或者服务埋点推送的方式搜集数据。一般而言通过日志埋点,需要要求研发人员将业务日志按照一定的规则打印,这个实现方法也很简单,公司总体出一份统一格式的日志SDK,按照格式打印。然后使用filebeat等工具格式化采集,或者自研工具采集。再将数据推送到kafka等消息通道缓存,kafka上游自然也存在消费者去消费托送的日志格式化数据。

还有一种方法是业务服务自己推送数据到kafka等,一般是不推荐这样处理,因为其对服务性能有一定的消耗,尤其是业务量比较大的服务。

图1 搜集业务数据
图1 搜集业务数据

2.2 汇聚与存储

汇聚一词一般我们可以想象是从溪流汇聚成江河,江河汇聚成大海,数据的汇聚也是一个意思。因为我们可能有成百上千个服务,分布在不同的主机或者容器,然后还有可能存在多节点,多云的场景;那么我们怎么汇聚所有的数据到中心节点呢?从服务侧搜集过来的数据我们其实多称为元数据,这个数据是未经过加工处理的,当推送到当前节点的kafka集群之后,其上游消费者来消费,上游消费者一般是在元数据节点之外,可以在中心节点,也可以在中心节点与元数据节点之间,这个要看具体的业务架构情况而定。因为消费来的数据一般是用来存储和分析使用,所以个人建议可以给上游消费服务下发汇聚策略,比如计算一分钟内的流量,求和,最大值,最小值,方差等,用于消减数据体量,分担计算压力。当然如果你的需求是保留元数据也是可以不做策略处理。

由于监控数据都是实时的,所以少不了使用时序数据库存储,一般业界比较流行的有 TencentDB

/influxDB/TDengine/OpenTSDB等,各有千秋,可以根据需要选用。

图2 聚合与存储
图2 聚合与存储

2.3 可视化和告警

数据有了,那么接下来可以对数据做一些展示和告警处理。当然前提条件是分析数据。当然这里也是基础的分析,比如环比数据,同比数据,增幅,降幅等等。这些常用的数据分析一般都有固定的算法支撑,我们需要做的是明确你的指标符合那种场景,即那种场景经过分析后能够快速帮你达到目的。这些分析后的数据可以是基于预先制定的分析策略实施,也可以裸奔的。最后将分析后的数据展示于面板,并适用于告警策略。

数据的可视化,一般公司都会有基础业务指标的展示,按照年月日时等,还可以查看环比同比等。另外公司也会有一些炫酷的dashbord,这些投放于大屏公领导观测,以制定有效决策。最重要的是告警,告警策略最好具有普适性和自动化性,普适性是指针对所有指标都可以使用于某个规则,自动化性是指,在添加告警规则时能够根据服务的特性自动化实施一系列指标,而非人为的一个个操作。另外建议告警链接到工单系统,推送给责任人,谁制造麻烦谁解决,解决方案等也可以记录在工单系统。

图3 数据分析及监控
图3 数据分析及监控

三 一些需要考虑的点

  1. 针对多节点如何做到数据高保真?
  2. 如何避免告警风暴?一般可以做数据聚合,根据label做。
  3. 针对数据分析可以使用Flink等实时流计算工具

四 写在最后

本人这里也是做一些推测性的分析和思路,因为业务场景的不同,还需要根据具体的场景来制定监控方案。最后祝愿大家业务越来越稳定,有问题欢迎评论区留言,大家一起学习提升。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 什么是业务监控
  • 二 如何做业务监控
    • 2.1 搜集业务数据
      • 2.2 汇聚与存储
        • 2.3 可视化和告警
        • 三 一些需要考虑的点
        • 四 写在最后
        相关产品与服务
        应用性能监控
        应用性能监控(Application Performance Management,APM)是一款应用性能管理平台,基于实时多语言应用探针全量采集技术,为您提供分布式性能分析和故障自检能力。APM 协助您在复杂的业务系统里快速定位性能问题,降低 MTTR(平均故障恢复时间),实时了解并追踪应用性能,提升用户体验。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档