持续交付系列---服务监控(开篇)

为什么需要服务监控?

随着公司业务的发展,我们所提供的产品规模越来越大,功能越来越多、架构越来越复杂。而到了这个时候,我们往往对产品的交付质量和项目的持续稳定运行的要求越来越高,虽然我们通过各种开发框架、开发模型、持续交付、DevOps等等,各种方法和手段来提高我们产品的质量,而且可以在一定程度上满足我们的需求。但是我们知道,对于任何一种产品来说,把它制造出来的时间和它运行的时间,这两者相差太多了。

简单来说,就是需要我们时刻的掌握到产品的运行过程中所产生的数据,这些数据包括硬件设备、系统性能、软件运行、趋势数据等等,根据我们对产品业务的熟悉程度,设定一定的指标,当出现某些指标异常的时候,我们就采取一定的手段进行处理,从而保证产品项目软件的持续运营下去。而这个动作就是我们平常所说的"监控"。

了解产品生命周期

任何一个产品从无到右,都至少要经历如下几个阶段:调研阶段、设计阶段、开发阶段、测试阶段、运营阶段
在这里插入图片描述
生产案例

1.2012.10 Google的项目软件升级失败,导致全球Gmail业务中断18分钟。
2.2014.06Facebook项目软件配置更新,导致软件中断31分钟。
3.2014.12 Dropbox对底层操作系统升级,导致公司项目中断3小时。
4.2017.02 gitlab公司数据库更新操作失误,导致产品中断18小时,数据丢失6小时。
5.2017.06 苹果公司业务更新操作失误,导致业务中断36+小时。
6.2018.07 腾讯云业务维护操作失误,导致业务中断数小时,部分数据完全丢失。
7.2018.01 kubernetes公司某项目更新失误,导致中断19小时。 宕机事件,有条不紊的出现在世界的各个角落

监控方式

对于当前的业务项目来说,常见的实现监控功能的方式很多,使用率较高的有以下四种:

软件层面:

agent: 专用的软件的一种应用机制。
ssh: 系统常见的一种应用通信机制,但是并非所有。
SNMP: 简单网络管理协议(Simple Network Management Protocol),是工作在各种网络设备中的一种机制。

硬件层面:

IPMI: 智慧平台管理接口(Intelligent Platform Management Interface)是一种工业标准用于采集硬件设备的各种物理健康状态数据,如温度、电压、风扇工作状态、电源状态等。

监控的流程

持续交付系列---服务监控(开篇)_第1张图片
以上我们知道,我们要完成一次完整的监控至少需要有以下几方面来组成:
1 数据采集:根据业务的特性,采取多种方式,进行对一些针对性的数据进行采集
2 数据整理:对上报后的数据源进行收集、清晰、整理
3 实时分析:对某些重要的核心的业务数据,进行实时分析。
4 离线分析:对普通的数据、非紧急的业务数据进行存储,后续进行响应的分析。
5 结果输出:将实时分析和离线分析后的数据结果展现出来,供决策参考。
6 问题决策:根据当前业务情况,人工或者自动方式对输出的结构进行分析,并判定下一步的行动(警告或修复),同时将其决策记录保存下来,以便为后序决策提供依据。

监控工具(介绍)

监控命令

持续交付系列---服务监控(开篇)_第2张图片

开源软件

对于监控方向的开源软件多如牛毛,我们在这里按照简单到复杂的思路方式,来查看比较常见的5中监控解决方案。

Smokeping
在这里插入图片描述

smokeping是一款监控网络状态和稳定性的开源软件,它向目标发送测试数据包,基于对数据包的数据管理结合rrdtool工具,图形化地展示网络的稳定性,常用于IDC数据机房的网络状况监控,如延时,丢包率,是否BGP多线等。
网站:https://oss.oetiker.ch/smokeping/

Cacti
持续交付系列---服务监控(开篇)_第3张图片

Cacti是一套基于PHP、MySQL、SNMP及RRDTool等软件的网络流量监测解决方案。它基于snmp采集数据,根据内置是属性,结合RRDtool绘画漂亮图形。提供了非常强大的数据和用户管理功能,实用起来很简单。·
网站:https://www.cacti.net/

Nagios
在这里插入图片描述

Nagios是一款开源的企业级监控系统,能够基于多种方式(尤其是插件)对各种硬件和软件进行监控,结合内部的监控角色体系,形成了一个强大的管理中心,尤其是它能根据业务的某些指标进行高质量的报警动作。适合用户群为复杂IT环境的企业,尤其是中小型企业。
网站:https://www.nagios.org/

Zabbix
在这里插入图片描述

Zabbix是一套整合了Cacti和Nagios优点的的企业级开源运维平台,简单易用,基于多样的数据采集方式,高度定制的图形展示,结合高质量的分级报警机制,由于其灵活的插件化设计和分布式架构,可以满足中小型企业的任何需求,目前国内使用的频率相当的高。
网站:https://www.zabbix.org

Prometheus
在这里插入图片描述

Prometheus是当今最强大的开源云监控工具之一,它提供了本地可视化引擎,还提供了集成第三方工具的定制功能,并提供一个API,用于将数据提供给外部软件使用。它是中大型企业和云原生环境非常好的监控解决方案。
网站:https://prometheus.io/

等等

第三方软件

这一节,我们来简单介绍一下常见的第三方监控解决方案。

监控宝
持续交付系列---服务监控(开篇)_第4张图片

监控宝是云智慧为用户提供IT性能监控(IT Performance Monitoring)的SaaS产品,包含网站监控、服务器监控、中间件监控、数据库监控、应用监控、API监控和页面性能监控等功能。监控宝通过遍布全球的300多个分布式监测节点,对网络进行稳定性和可用性的主动监控和实时分析。
官方网站:http://www.jiankongbao.com

听云
在这里插入图片描述

听云是帮助客户实时监控定位从崩溃报错、慢交互到网络环境出错等多维度复杂的性能问题。听云致力于用户视角的IT管理创新服务,为不同行业提供最终用户端到端的完整应用链的性能管理解决方案,帮助客户不断优化系统性能及用户体验,提高用户满意度和企业竞争力。
官方网站:http://www.tingyun.com

阿里云监控
在这里插入图片描述

阿里云监控是一款阿里云平台专用的监控产品。
官方网站:https://aliyun.com

华为云监控
在这里插入图片描述

华为云监控是一款华为云平台专用的监控产品。
官方网站:https://www.huaweicloud.com/

你可能感兴趣的:(linux,运维)