一、监控系统简述
1.1 运维监控系统简介
为什么需要监控?大体可归纳为如下三方面:1;任何平台在运行过程中不可避免地会出现网络延迟、系统宕机、程序异常退出、网站访问失败等情况。2;应用在7*24小时运行过程中需要有探测其状态的机制。3;网站维护人员(统称:含开发、运维、运营等相关工作人员)需要量化API访问状态码及响应时间。
监控平台常规用以解决如下问题:监控告警,必要时在用户发现、反馈问题之前解决某些故障。指标量化(底层资源、应用程序、访问延迟等),评估及扩容。
1.2 监控系统分类
目前市面常见的监控系统有Prometheus、Zabbix、Nagios等。其大对应的应用场景为容器云平台、基础服务器集群、大型网络监控。
1.3 监控指标分类
一套监控体系常规需要实现的指标如下:
- 使用率:关注系统资源的使用情况。这里的资源主要包括但不限于CPU、内存、网络、磁盘等。100%的使用率通常是系统性能瓶颈的标志。
-
饱和度:系统承载量,例如CPU的平均运行排队长度,任何资源在某种程度上的饱和都可能导致系统性能的下降。
- 错误:错误数。例如HTTP 500错误数等显式失败。
1.4 监控分层介绍
由上而下分别分业务层监控、应用层监控、基础资源层监控。
- 业务层监控:指以业务访问视角进行需求性检测(每个业务层监控可理解为客户发起的请求)。
- 应用层监控:系统内部提供服务的应用程序。监控范围为应用存活探测、应用响应状态探测、应用程序饱和度探测(例如探测redis的内存使用率占比峰值的百分比)。
- 物理资源检测:主要体现在底层物理服务器CPU、内存、磁盘以及路由器、交换机等网络性能探测。
二、需求简述
XXX(以下简称甲方)为其平台设计一套监控体系,其大体包含业务层、应用层以及底层资源监控及告警。
分类 | 监控项 | 告警规划 |
---|---|---|
业务层 | 调用链监控 | |
接口响应时间/请求量 | ||
业务响应监控 | ||
外部接口探测 | ||
日志监控 | ||
应用层 | Redis | |
MySQL | ||
MongoDB | ||
MQ | ||
图片服务器 | ||
资源层 | CPU | |
内存 | ||
磁盘 | ||
网络 |
三、方案简介
根据甲方需求及平台系统及现有系统使用情况归纳分析。大体可将监控设计成四个模块。其中监控模块分:Zabbix/Nagios模块、日志收集、分布式调用链路模块、自研监控模块。
- Zabbix/Nagios模块:对底层物理资源、应用程序、http请求监控。
- 日志收集:对应用日志进行收集(对应用日志进行请求/响应需求进行埋点,通过开发ES插件统计访问时间等)。
- 分布式调用链路模块:对核心应用入口埋点,对调用链进行链路跟踪。
- 自研模块:开发监控平台实现对各个业务指标检测。
留言