监控的定义
监控就是发现和报告,通过持续监控基础设施、应用和业务运行情况,讲问题和需要的监控内容反馈给不同的团队人员。
主要有 2 类型:
- 系统问题:软硬件相关问题(云基础服务),比如:程序异常、内存 FullGC 等,由于没有业务特征,监控策略适用于各个应用
- 业务问题:在特定业务场景下定义的问题,比如:客户无法登录、业务数据异常等,需要根据业务特征来定制监控策略,同时基于业务需求可以提供实时业务监控大盘
监控的目标
- 实时:要求对问题的发现和预警是实时的,缩短问题产生和发现的时延。了解项目背景、范围、相关业务域等,可以提供业务方所需要的业务监控信息和大盘;
- 准备:要求监控和预警是准确的,包括对监控问题的定义,对预警阈值,预警等级,责任人的配置,避免误报;
- 全面:预警信息是全面的,能够帮助排查和解决问题。
如何设计监控
- 定义监控问题(定义):定义问题类型、原因、特征、影响、解决方案和责任人;定义过程中,对于业务问题和监控需求,需要业务方和 PO 团队给出需求说明;
- 设计监控方案(设计):使用“实时”,“准确”和“全面”的监控目标来反复校正;
- 实时监控方案(实施):选择监控工具,并按照监控方案的指导进行监控部署和运行;
- 处理监控反馈(处理):在线上运行,收集监控反馈,根据告警信息进行问题处理;
- 评估监控结果(优化):review 监控效果,是否满足监控方案里面定义关于“实时”,“准确”和“全面”的目标,并针对不合理的地方进行迭代优化。
对于业务问题的监控,推荐通过日志输出和云服务产生监控指标和大盘,具体参考 Logging Standard。
定义监控问题
定义监控问题 7 要素:
- 问题名称
- 问题类型
- 问题原因
- 问题特征
- 问题影响
- 解决方法
- 负责人
监的根本是为了发现并定位问题
- 监控的体系化设计思路可以从发现到定位要做的工作开始;
- 要做到发现到定位之前,必须先了解,什么是问题,了解什么问题再进行分类
- 业务为重中之重,一切为了业务负责
问题名称 | 问题类型 | 问题原因 | 问题特征 | 问题影响 | 解决方法 | 负责人 |
---|---|---|---|---|---|---|
交易订单下跌超过xx% | 业务问题 | 系统本身异常或关键链路调用异常 | 1. 系统大量异常 2.关键链路调用QPS减少 | 无法下单 | 根据监控指定解决方法 1. 单集群问题住呗容灾切换 2. 关键链路问题定位问题点解决(回滚新发布,灰度暂停等) | 应用负责人 业务负责人 |
Java系统异常 | 系统问题 | 程序异常 | Java程序抛出异常信息,通过异常堆栈可排查快速定位原因 | 系统无法正常工作 | 根据日志排查和修复异常 | 应用负责人 |
制定监控策略
从问题排查角度
监控能力考量
- 关键指标的监控发现能力;
- 对集群个体、整体、直接依赖全方位的监控能力;
- 粗细结合的监控能力,粗粒度的监控,主要为了快速发现问题,通过细粒度监控能够快速定位问题。
监控策略设计步骤
- 关键监控项梳理:从重要到非重要排序,从汇总到明细排序;
- 关键监控项的报警抽离分级:临界点报警,业务预警做重点关注报警;
- 监控不点开发和设计:捕获关键异常,对于关键异常进行日志记录,并在记录进行分级;对直接依赖的运行耗时进行日志记录;对反映业务指标运行情况进行日志记录;正确的处理错误码,http 层错误码正确分类,业务错误码定义相应规范;
- 监控展现设计:业务大盘,定位于以终为始的快速发现问题;应用大盘,定位于从汇总的角度来看是否是应用本身的问题;系统大盘,定于于系统发生问题时使用;
- 调试和调整报警规则:活动引流;节假日;业务调整;业务自然高峰和低峰期,在业务低峰期,同比环比阈值变化特别大,所以在业务低峰期,预警可以不设置(当然和具体业务有关)。
通用监控范围
业务实时监控
应用和业务监控,业务实时监控是针对金融级大规模分布式系统的监控解决方案,以日志、REST 接口等作为数据采集来源,提供业务、应用等多种视角的监控能力,帮助用户快速发现问题、定位问题、分析问题、解决问题,为线上系统的可用率提供有效保障。
云服务监控
收集获取云资源的监控指标或用户自定义的监控指标,探测服务可用性,以及针对指标设置警报,全面了解云上资源使用情况、业务运行状况和健康度,并及时收到异常报警做出反应,保证应用程序顺畅运行。
监控应用场景
为了实时发现运维过程中出现各自资源故障,及时发现、快速定位、及时修复,保证业务高可用,监控内容需要涵盖各个维度;另外需要具备灵活告警规则,是相应人员能够及时准确获取业务系统的情况;同时需要大盘能够快速从不同视角观察业务系统概览。
- 基于资源的监控:可查询资源信息,并对资源(如:云服务器、数据库、负载均衡、中间件等)进行性能优化配置;
- 基于应用的监控:包括系统硬件(CPU、负载、硬盘和内存等)、应用业务指标(SQL 耗时监测、页面访问量、调用量、数据库访问量)模板化监控;
- 基于业务的监控:提供数据统计的监控产品类型,用于配置个性化的监控项,如:包括业务行为、业务维度、错误异常码、实例监控、流量、数据指标等。
业务监控
提供从业务视角衡量应用性能和稳定性的新方式,对业务的关键交易或链路进行全链路的监控。业务监控通过追踪并采集应用程序中的业务信息,实时展现业务级的指标,例如业务的响应时长、次数和错误率,解决了应用程序和业务表现之间无法映射关联的难题。
业务或 PO 负责人应用梳理业务描述,包括:
- 业务行为:用来描述业务的动作过程,通常是个动词,如:交易创建;
- 业务维度:用来描述业务属性的信息,如:交易创建的商户、来源、地域、机构等名词;
- 异常错误码:从异常或状态码的角度来看业务,状态如何体现、错误如何语义化表示等;
- 实例监控:通过单笔(一次)业务行为来看业务,其中的极限值、某一次是怎么样的。
基于上述的统计,确保日志中能够涵盖上述指标,按照不同的视角去监控业务健康度。
业务监控常见大盘和告警设置
大盘是将已配置好的数据源,集中在一个页面上以报表形式呈现,大盘只用于数据展现,没有预警功能;
常见报表类型:
- 最近 10 分钟表格
- 趋势图
- 当前分钟多 Key 竖铺表格
- 多分钟多 Key 竖铺表格
- 最近 10 分钟多 Key 表格
- 秒级表格
- 秒级多 Key 表格
- 常用业务表格
- 应用错误 Top
- Top 数据源系列表格
- 应用监控相关报表
- 数据归档报表
- Key 横竖 MAP 表格(高级)
- 数据展示支持多种函数运算
AWS 常见设置 - TBD
阿里云 常见设置 - TBD
业务监控案例 - TBD
真实的监控案例举例。
标签:Monitoring,应用,表格,业务,问题,监控,异常,Guide From: https://blog.csdn.net/xiao_1xu/article/details/141157810