持续交付系列---服务监控(开篇)
为什么需要服务监控?
随着公司业务的发展,我们所提供的产品规模越来越大,功能越来越多、架构越来越复杂。而到了这个时候,我们往往对产品的交付质量和项目的持续稳定运行的要求越来越高,虽然我们通过各种开发框架、开发模型、持续交付、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 数据采集:根据业务的特性,采取多种方式,进行对一些针对性的数据进行采集
2 数据整理:对上报后的数据源进行收集、清晰、整理
3 实时分析:对某些重要的核心的业务数据,进行实时分析。
4 离线分析:对普通的数据、非紧急的业务数据进行存储,后续进行响应的分析。
5 结果输出:将实时分析和离线分析后的数据结果展现出来,供决策参考。
6 问题决策:根据当前业务情况,人工或者自动方式对输出的结构进行分析,并判定下一步的行动(警告或修复),同时将其决策记录保存下来,以便为后序决策提供依据。
监控工具(介绍)
监控命令
开源软件
对于监控方向的开源软件多如牛毛,我们在这里按照简单到复杂的思路方式,来查看比较常见的5中监控解决方案。
Smokeping
smokeping是一款监控网络状态和稳定性的开源软件,它向目标发送测试数据包,基于对数据包的数据管理结合rrdtool工具,图形化地展示网络的稳定性,常用于IDC数据机房的网络状况监控,如延时,丢包率,是否BGP多线等。
网站:https://oss.oetiker.ch/smokeping/
Cacti
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/
等等
第三方软件
这一节,我们来简单介绍一下常见的第三方监控解决方案。
监控宝
监控宝是云智慧为用户提供IT性能监控(IT Performance Monitoring)的SaaS产品,包含网站监控、服务器监控、中间件监控、数据库监控、应用监控、API监控和页面性能监控等功能。监控宝通过遍布全球的300多个分布式监测节点,对网络进行稳定性和可用性的主动监控和实时分析。
官方网站:http://www.jiankongbao.com
听云
听云是帮助客户实时监控定位从崩溃报错、慢交互到网络环境出错等多维度复杂的性能问题。听云致力于用户视角的IT管理创新服务,为不同行业提供最终用户端到端的完整应用链的性能管理解决方案,帮助客户不断优化系统性能及用户体验,提高用户满意度和企业竞争力。
官方网站:http://www.tingyun.com
阿里云监控
阿里云监控是一款阿里云平台专用的监控产品。
官方网站:https://aliyun.com
华为云监控
华为云监控是一款华为云平台专用的监控产品。
官方网站:https://www.huaweicloud.com/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!