后SRE时代监控系统选型

在DevOps和SRE流行的今天,在开发可靠性或实施DevOps实践时,企业决策的核心是统计数据 。而企业数据信息中最重要的一环就是线上业务的监控信息,如果没有业务运行时间,网络负载和资源使用情况等关键性监控指标,企业将无法有效的开发或操作实践 。而这些数据都有依靠各种各样的监控工具来收集和汇集 。
当基于对客户影响的度量标准时,SLO之类的SRE实践最有用 。确定监控什么以及如何进行监控是一个重要的决策 。本文我们就来了解SRE时代下的监控和流行监控工具 。
监控分类确定在系统体系结构中监控点的分布非常重要 。根据监控实施的位置,监控工具将能够获取不同类型的数据 。监控最常见分类及监控点分布如下:
资源监控资源监控也称为服务器监控或基础结构监控,它通过收集有关服务器运行方式的数据来获取基本信息 。资源监控工具会监控最基本的主机内存使用率,CPU负载和磁盘空间等信息 。在基于物理服务器的体系结构中,有关硬件运行状况的信息(比如CPU温度和组件正常运行时间)也有助于避免服务器故障 。在基于云的环境中,虚拟服务器系统的汇聚信息更为有用 。
网络监控网络监控用来监控下行和上行主机的网络数据 。监控工具可捕获所有组件(如交换机,防火墙,服务器等)中的所有请求和响应数据包 。网络监控可以简单只收集入口和出口总流量,也可以针对更详细的应用或者端口为基准来收集 。
App性能监控APP性能监控用来收集有关整体服务执行情况的数据 。这些工具会将自己的请求发送到服务接口,并跟踪指标,例如响应的速度和完整性 。目标是推动对APP性能问题的检测和诊断,以确保接口以预期的水平运行 。
第三方组件监控这涉及监控体系结构中第三方组件的运行状况和可用性 。在微服务盛行的时代,服务可能取决于外部服务的正常运行 。像APP性能监控一样,工具可以根据自己的请求检查这些服务的状态 。
在整体解决方案中包括每种监控类型 。优先考虑使用健壮的冗余监控工具,以确保不会遗漏潜在问题 。同时,指标和警报应与服务绑定在一起,以确保与业务影响相关 。
监控指标拥有可操作的数据不仅与数据本身有关;为了正确响应监控工具报告的内容,还需要以最有用的方式显示数据 。以下是监控工具可以提供的事项:
告警:当指标超过特定阈值时触发告警;
事件日志:创建事件日志,根据参数突出显示;
趋势图:创建一段时间内的指标趋势图;
仪表板:一目了然地提供关键服务运行状况组件的仪表板;
指标数据库:创建可以查询的指标数据库 。
在制定开发决策或对事件做出响应时,需要了解自己需要什么?需要什么监控指标?这些指标怎么可视化等 。
监控工具推荐下面我们推荐最受欢迎的SRE和DevOps监控工具,可供大家选择 。
Prometheus

后SRE时代监控系统选型

文章插图
 
Prometheus是一种流行的开源监控工具,提供警报,查询,可视化和许多其他有用的功能 。Prometheus有专门的开发社区提供了大量文档和说明,可以帮助我们快速入门 。虫虫之前的文章也专门介绍过Prometheu,大家可以查看历史文章进行了解 。
Zabbix
后SRE时代监控系统选型

文章插图
 
Zabbix 是最流行的开源分布式企业监控系统 。zabbix自带各种模版可以监控各种服务器监控项、网络设备 。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视和数据收集 。zabbix是目前使用最广泛最流行的传统以物理服务器为架构的业务系统监控 。
zabbix目前在SRE时代问题数据依赖于中心关系数据库(MySQL或者PostgreSQL),监控数据量不能自动清理,累积过大会拖慢系统运行速度 。而且对云架构体系监控支持还不够 。
GrafanaGrafana是使用golang开发的开源的度量分析与监控可视化仪表盘系统 。
后SRE时代监控系统选型

文章插图
 
Grafana支持时间序列数据和应用程序分析的可视化以仪表盘形式展示当前系统状态 。Grafana常见监控系统数据源,也支持对日志汇聚数据源,支持对数据进行筛选,也可以对多个数据源组合显示为一个仪表盘 。
NagIOSNagios提供了开源(Nagios Core)和商业化定制版本(Nagios XI) 。Nagios提供了高度可定制的界面,并可以监控整个IT网络 。支持通过配置向导来突出其易用性,以引导用户设置新的监控服务 。


推荐阅读