在DevOps和SRE流行的今天,在开发可靠性或实施DevOps实践时,企业决策的核心是统计数据。而企业数据信息中最重要的一环就是线上业务的监控信息,如果没有业务运行时间,网络负载和资源使用情况等关键性监控指标,企业将无法有效的开发或操作实践。而这些数据都有依靠各种各样的监控工具来收集和汇集。
当基于对客户影响的度量标准时,SLO之类的SRE实践最有用。确定监控什么以及如何进行监控是一个重要的决策。本文我们就来了解SRE时代下的监控和流行监控工具。
确定在系统体系结构中监控点的分布非常重要。根据监控实施的位置,监控工具将能够获取不同类型的数据。监控最常见分类及监控点分布如下:
资源监控也称为服务器监控或基础结构监控,它通过收集有关服务器运行方式的数据来获取基本信息。资源监控工具会监控最基本的主机内存使用率,CPU负载和磁盘空间等信息。在基于物理服务器的体系结构中,有关硬件运行状况的信息(比如CPU温度和组件正常运行时间)也有助于避免服务器故障。在基于云的环境中,虚拟服务器系统的汇聚信息更为有用。
网络监控用来监控下行和上行主机的网络数据。监控工具可捕获所有组件(如交换机,防火墙,服务器等)中的所有请求和响应数据包。网络监控可以简单只收集入口和出口总流量,也可以针对更详细的应用或者端口为基准来收集。
APP性能监控用来收集有关整体服务执行情况的数据。这些工具会将自己的请求发送到服务接口,并跟踪指标,例如响应的速度和完整性。目标是推动对APP性能问题的检测和诊断,以确保接口以预期的水平运行。
这涉及监控体系结构中第三方组件的运行状况和可用性。在微服务盛行的时代,服务可能取决于外部服务的正常运行。像APP性能监控一样,工具可以根据自己的请求检查这些服务的状态。
在整体解决方案中包括每种监控类型。优先考虑使用健壮的冗余监控工具,以确保不会遗漏潜在问题。同时,指标和警报应与服务绑定在一起,以确保与业务影响相关。
拥有可操作的数据不仅与数据本身有关;为了正确响应监控工具报告的内容,还需要以最有用的方式显示数据。以下是监控工具可以提供的事项:
告警:当指标超过特定阈值时触发告警;
事件日志:创建事件日志,根据参数突出显示;
趋势图:创建一段时间内的指标趋势图;
仪表板:一目了然地提供关键服务运行状况组件的仪表板;
指标数据库:创建可以查询的指标数据库。
在制定开发决策或对事件做出响应时,需要了解自己需要什么?需要什么监控指标?这些指标怎么可视化等。
下面我们推荐最受欢迎的SRE和DevOps监控工具,可供大家选择。
Prometheus是一种流行的开源监控工具,提供警报,查询,可视化和许多其他有用的功能。Prometheus有专门的开发社区提供了大量文档和说明,可以帮助我们快速入门。虫虫之前的文章也专门介绍过Prometheu,大家可以查看历史文章进行了解。
Zabbix 是最流行的开源分布式企业监控系统。zabbix自带各种模版可以监控各种服务器监控项、网络设备。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视和数据收集。zabbix是目前使用最广泛最流行的传统以物理服务器为架构的业务系统监控。
zabbix目前在SRE时代问题数据依赖于中心关系数据库(MySQL或者PostgreSQL),监控数据量不能自动清理,累积过大会拖慢系统运行速度。而且对云架构体系监控支持还不够。
Grafana是使用golang开发的开源的度量分析与监控可视化仪表盘系统。
Grafana支持时间序列数据和应用程序分析的可视化以仪表盘形式展示当前系统状态。Grafana常见监控系统数据源,也支持对日志汇聚数据源,支持对数据进行筛选,也可以对多个数据源组合显示为一个仪表盘。
Nagios提供了开源(Nagios Core)和商业化定制版本(Nagios XI)。Nagios提供了高度可定制的界面,并可以监控整个IT网络。支持通过配置向导来突出其易用性,以引导用户设置新的监控服务。
AppDynamics是专注于APM的监控平台。除了传统的APM监控外,提供的其他功能包括基于AI的视角,用于人工智能模拟客户和最终用户监控,以及集成收益分析的业务监控。自从2017年AppDynamics被思科收购以后除了基本APM外,在基础网络设置方面进行的监控
DataDog是一个针对云规模服务的监控平台。它在可视化,警报以及数据汇聚和分析方面具有强大的功能。它们使性能指标与业务影响相关联。
听云云平台是国内权威的APM平台之一,通过针对全平台的应用性能监控。听云平台,由听云App、听云Network、听云Server、听云Browser和听云Sys组成,提供针对手机应用、网络、浏览器、服务器的性能监控产品,可以实现应用性能全方位可视化,包括PC端、浏览器、移动客户端到服务器。
New Relic是一个监控平台,提供了几个也可以独立使用的组件:New Relic APM(应用程序性能监控),New Relic Browser和New Relic Infrastructure。New Relic提供了适用于iOS和Android的应用程序,为移动应用提供了更多监控选项。
Site24x7专门从事网站监控,提供诸如状态页和Web服务(例如AWS和Azure)运行状况诊断的工具。它们还提供综合Web事务监控,使可以模拟使用情况并收集指标。
SignalFx提供了广泛的微服务集成,可以看到服务运行状况的完整结构,帮助用户从单一模型到微服务模型构建架构。SignalFX可以通过多种方式收集所需的指标,包括收集的,自定义指标或使用第三方应用程序。对于自定义指标类型的用户,则可以直接通过Ruby,Python,JAVA或Node.js从应用程序发送数据。 使用第三方应用程序则可以选择使用现有工具之一,例如AWS cloudwatch,Docker,Elasticsearch,MySQL甚至New Relic。
PRTG Network Monitor是一体式完整网络运营监控系统,可以集成到体系结构的许多阶段和位置,可以在网络,单个服务器,特定应用程序以及两者之间的所有内容上提供监控。功能包括:停机监测,阻塞和使用监测,数据包嗅探,深入分析和简明的报告。PRTG Network Monitor有一个基于Web的用户友好的界面,允许用户快速配置网络设备和传感器。