我听说,Prometheus与技术中台更配哦

前言

  随着容器技术这几年的迅速发展,Kubernetes已经逐渐成为云生态圈CNCF(Cloud Native Computing Foundation)当之无愧的老大。而Prometheus稳坐CNCF基金会的“第二把交椅”,已然成为Kubernetes群集监控系统的必要组成部分。

  现在有越来越多的企业,有意向或正在由传统技术基础架构向云环境迁移。在开源监控系统方面,企业有Zabbix、Prometheus等系统可以选择。不可否认,Zabbix的产品成熟度很高,同时也与时俱进,且仍然占据整个市场的很大比例,但它随着云生态的发展暴露出一些问题。
  与之相对的,Prometheus不仅更加适配云生态,而且具有了很多无可比拟的特性,如具备多维的数据模型,支持灵活的查询及聚合语句,不依赖分布式存储运行,各节点自治等。在使用场景上,它既适用于以服务器为中心的监控,也适用于高动态的面向服务架构的监控。在部署方式上, Prometheus不仅支持云环境部署,同时也支持非云环境部署。现在它已经成为企业部署开源监控系统中的重要选择。
  技术中台采用Prometheus作为其监控系统,对其下管控的各节点机及服务进行监控。那么,Prometheus到底有哪些优势呢?又是如何与技术中台结合的呢?
  本文将带着这些问题,带您深入剖析Prometheus监控系统,并带您领略其在技术中台发出的光彩。

  1. 应用监控的三板斧?

  我们先考虑一个问题:为什么企业需要一套应用监控系统?
  可以想象,如果一个互联网企业,不知道网站运行时的服务器的CPU、内存、存储空间等实时指标,也不知道涉及业务访问的应用相应时间(RT)、吞吐量(TPS)、并发用户数或每秒查询率(QPS)指标,还不知道中间件、应用服务调用状态,甚至不知道用户访问时应用的健康状态是否正常,那无异于在刀尖上跳舞。
  所以我们可以说,一套好的监控系统可以帮助企业在出现系统故障时及时通知和快速定位问题,是保障互联网企业应用健康稳定运行的系统中不可或缺的重要组成。
  在一套完整的监控系统中,需要考虑监控手段、监控指标、获取监控数据的方法等与监控相关的具体实现方式。每一项技术实现方式均有其独特的功能特点。
  监控手段的选择:黑盒监控vs白盒监控
  从监控手段上说,监控分为黑盒监控和白盒监控两种模式。
  所谓黑盒监控,即注重业务表现,从外部探测应用系统发现哪些功能故障,通过模拟访问请求的方式快速发现故障。
  所谓白盒监控,即注重问题产生的原因,从内部系统检测运行指标,比如用“埋点”等方式将应用访问时的错误率等信息暴露出来,以便在出现故障和即将出现故障时,可以快速定位故障原因。
  监控指标的选择:USE原则vs RED原则
  监控系统中可监控的指标众多,指导监控系统选择指标的原则主要有两个,分别是USE原则和RED原则。
  USE原则侧重以下监控指标:
  利用率(Utilization):资源被有效利用起来提供服务的平均时间占比;
  饱和度(Saturation):资源拥挤的程度,比如工作队列的长度;
  错误率(Errors):错误的数量,单位时间内访问错误数的比率。
  而RED原则,侧重以下监控指标:
  每秒请求数量(Rate):服务每秒请求数量;
  每秒错误数量(Errors):应用服务每秒错误数量;
  服务响应时间(Duration):服务完成相应请求的时间数。
  获取监控的选择:pull vs push
  获取监控数据的方法很重要,这直接决定了监控系统架构的特点。在实际中,监控系统需要在功能实现、数据获取速度、稳定性、安全性等层面做架构设计,并在各关键功能点上做出最大平衡。
  一般来说,监控数据可以分为Pull方法和Push方法。
  Pull方法:服务端主动拉取监控指标数据。优势能够完成水平监控,对于被监控端无感知,架构复杂性相对小,降低耦合。缺点是直接暴露监控数据存在一定的安全风险。
  Push方法:被监控端主动上传监控指标数据。优势不需要服务端发起,可以实时接受监控数据,缺点是如果上传监控数据并发过大,会造成服务端阻塞。

  1. Prometheus技术架构特点

  Prometheus的技术架构

  在架构上,Prometheus监控系统由以下组件组成。
  Prometheus Server: 服务端,用于收集监控数据,包含时间序列数据库TSDB;
  Push Gateway: 客户端使用push的方式上报监控数据到Push Gateway,Prometheus会定期从Push Gateway拉取数据;
  Exporters: 用于暴露监控信息metrics 给 Prometheus Server;
  Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去除重复数据和分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件、企业微信、webhook 等;
  Grafana:设置数据源为prmetheus将监控数据做前端展示。
  Prometheus的功能特点
  在功能上,与其他监控系统相比,Prometheus有如下重要的不同之处:
  1)Prometheus的数据库使用的是时序型数据库TSDB,而一些其他监控系统使用的是关系型数据库MySQL.如果监控集群规模很大,传统关系型数据库可能存在性能瓶颈,同时扩展难度也随之增加;
  2)在监控指标聚合上,Prometheus使用的是时序类数据库的查询语言PromQL,可以非常灵活的完成监控数据聚合等操作;
  3)Prometheus整个生态非常热火,官网上提供多种类型的exporter,用于负责监控指标采集工作,同时也可以根据不同的业务场景自行编写exporter,监控指标采集的灵活度非常高;
  4)Prometheus与Kubernetes结合度很高。通过标准的kubernetes API可以将Pod中的metric监控数据暴露出来。这样,Prometheus就可以通过访问对应Kubernetes API接口,收集群集中Pod、Node、Service等监控信息。
  将Prometheus与kubernetes结合
  在Kubernetes集群中,Prometheus获取Metrics数据的方式大概有两类:
  1) 检测获取node节点的监控信息
  一般会在node节点上安装node_exporter,该Pod的种类会是以DaemonSet的方式运行,保证每台Node节点有对应的node_exporter运行,Prometheus会收集每一台Node上的CPU、内存、磁盘、网络带宽等监控信息。
  2) 检测kubernetes集群中运行的Pod、Service等种类的监控信息
  这类metrics信息主要来自于cAdvisor所提供,可以监控到Pod的CPU负载、所使用内存和网络开销等信息。
  其中监控数据可以结合Metrics Server通过kubernetes API将监控数据暴露出来。这样,用户就可以通过标准的API接口访问Pod、Service等监控信息。

  1. Prometheus在开发者中心的落地与实践

  在开发者中心部署Prometheus
  在开发者中心将主机接入资源池的时候,部署脚本会自动安装Prometheus、node_exporter、cAdvisor等组件。因此,直接按提示执行开发者中心提供的脚本,就可以监控每一台Node节点的主机资源情况和每个应用Pod上的资源使用情况。

  查看主机监控
  在开发者中心将节点机接入资源池后,就可以依次点击菜单“容器服务”、“资源池”、“查看监控”、“资源池监控”,在页面中就可以查看接入主机的CPU使用率、TCP连接数、磁盘IO使用情况、根分区容量、网络负载等信息。

  查看应用监控
  在开发者中心部署好业务应用后,依次点击“容器服务”、“资源池”、“查看监控”、“应用监控”,在页面中即可查看接入应用程序的CPU负载、内存负载、网络负载等信息。

  实现应用自动水平扩展功能
  点击 “应用管理”菜单,进入部署应用的详情页面后,可以在“自动扩缩”中配置应用的最大、最小实例数。开发者中心会根据设置的CPU、内存百分比,获取MetricsServer中的监控信息,实现Kubernetes的HPA自动水平扩展功能,在业务访问量突增时,自动完成应用集群的扩展操作。

  1. 总结与展望

  Prometheus在云环境中地位越来越重要,其系统监控功能强大而完善。与Kubernetes的搭配也对企业实现对业务的监控等功能有重要意义。现在的用友开发者中心已经在采用Kubernetes容器调度系统的基础上,将Promethesus与自身完美融合,实现了对节点机、业务应用Pod等各项Metric指标的采集和监控,并用于报警和自动扩容缩容等场景。
  但是我们知道,“行百里者半九十”,我们要走的路仍然很远。比如对自定义Metric指标的检测,并根据企业中应用场景来完成自动容缩;比如收集当网站的RPS(Requests Per Second)指标,当RPS到达极限值时对业务Pod的自动扩容等。
  在用友云提出的“大技术中台”战略中,业务数据的监控与收集是其中重要环节之一。让我们为技术中台目标继续努力前进。
  套用一句广告语做总结:“我听说,Prometheus与技术中台更配哦!”

原文地址:https://blog.51cto.com/14084875/2414307

时间: 2024-10-28 10:21:05

我听说,Prometheus与技术中台更配哦的相关文章

OSChina 周四乱弹 —— 听说圣诞节和单身狗更配哦

周四,剩单快乐! 周三又是个不寻常的日子,西方节日总是充斥着各种故事 昨天由@叶秀兰  童鞋引发了众多 OSCer 对@红薯  和 @永和  之间爱恨情仇的各种纠结故事,这里小小编整理了一个全集,供大家欣赏,希望能给大家带来一些些灵感-(永和和红薯不得不说的爱恨情仇:http://my.oschina.net/xxiaobian/blog/360230) 也会激发 N 多 OSCer 的情怀! @blindcat  :1厨1卫1人住,1菜1汤1人吃,1枕1被1人睡,1来1去1人过,1衣1袜1人洗

全力支撑用友云产品 打造技术中台标杆项目

前言 随着云计算技术的不断发展,容器和Kubernetes已经成为云原生应用的基石,容器的周边生态也日益成熟,微服务.服务网格.DevOps等技术相继涌现. 容器的出现,推动了软件开发.测试.部署.运维和运营模式的创新.容器云平台的建立承载了企业的IT基础设施和基础技术服务,为企业应用的创新和发展提供了强有力的支撑,同时促进了与产业链生态环境中上下游系统的高效对接与协同创新. Kubernetes作为容器云的编排工具,目前已经成为行业的事实标准,完美地解决了调度,负载均衡,集群管理等功能. 开发

从自主可控金融级数据库看腾讯“智能+”技术中台之路

作为"互联网+"和"智能+"的主要技术供应商,腾讯在2017年11月的全球合作伙伴大会上提出了"云化"已经成为重要的创新模式,各行各业都将进入"互联网+"的下一站--"智能+"阶段.在此过程中,腾讯云将充分发挥"连接器"的作用,用"智能"连接各行各业. 3月12日,腾讯云全新发布自主可控金融业务支撑平台,该平台融合了可支撑数百万虚机的专有云平台TCE.服务过380亿账

基于Kubernetes的技术中台让云原生C位出道

一. 认识云原生与Kubernetes 随着云原生技术的飞速发展,新概念层出不穷,例如DevOps.微服务.容器.弹性云等,直有"乱花渐欲迷人眼"之势.云计算从业者们反复谈及"云原生"这个概念,但对其定义与理解却各有不同. 云原生(Cloud Native)的概念,最早由Pivotal的MattStine根据其多年的架构和咨询经验于2013年首次提出.2015年7月,隶属于 Linux 基金会的云原生计算基金会CNCF(Cloud Native Computing

听说下雨天,子序列和孤单的你更配哦~

一.\(DP\)的意义以及线性动规简介 动态规划自古以来是\(DALAO\)凌虐萌新的分水岭,但有些OIer认为并没有这么重要--会打暴力,大不了记忆化.但是其实,动态规划学得好不好,可以彰显出一个\(OIer\)的基本素养--能否富有逻辑地思考一些问题,以及更重要的--能否将数学.算筹学(决策学).数据结构合并成一个整体并且将其合理运用\(qwq\). 而我们首先要了解的,便是综合难度在所有动规题里最为简单的线性动规了.线性动规既是一切动规的基础,同时也可以广泛解决生活中的各项问题--比如在我

互联网创业要学会实战技术,更要学会勾引用户

本来想要分享关于互联网创业实战模式的内容,今天公司会议有同事就这个问题说了一系列建议,如果把这套模式公开的话,不利于整个团队未来的课程走向,针对于用户的话,讲得清楚,等于免费提供干货,可是免费提供的内容,别人不会珍惜,送给别人,别人还嫌你,所以对于自媒体专门分享干货的内容调整了一下,因为要分享就要分享实用的,而且是用户需要的,只能通过嵌入一篇篇文章去分享,不做系统的文章分享. 其实网络上不管什么文章,哪怕去抄袭的那也需要花费时间去找素材和整理啊,就算是抄袭的那也是有一定价值的,相反过来很多原创的

rest-assured : Restful API 测试利器 - 真正的黑盒单元测试(跟Spring-Boot更配哦)

这里先贴一下IBM上的介绍 http://www.ibm.com/developerworks/cn/java/j-lo-rest-assured/index.html Java 程序员常常借助于 JUnit 来测试自己的 REST API,不,应该这样说,Java 程序员常常借助于 JUnit 来测试 REST API 的实现!从某种角度来说,这是一种“白盒测试”,Java 程序员清楚地知道正在测试的是哪个类.哪个方法,而不是从用户的角度出发,测试的是哪个 REST API. 不废话,直接给S

进阶-中小型网络构建-二层VLAN技术详解配实验步骤

为什么讲 VLAN ? 在传统的交换网络中,为了隔离冲突域,我们引入了交换机. 交换机的每一个端口都是一个不同的隔离域. 但是交换机无法隔离广播域, 所以,如果网络中有一个恶意的主机发送广播的恶意流量, 那么处于同一个交换网路中的所有设备都会受到影响. 此时,如果我们想进行故障主机的定位或者控制恶意广播流量的 影响范围,是非常困难的. 为了解决这个问题,我们的方案是:隔离广播域. 即将一个大的广播域,通过"技术"分割成很多不同的小广播域. 那么恶意的广播流量,仅仅会被控制在一个有限的范

阿里云MVP:开发者的超能力,用技术创造更好世界

2019年3月,第8期阿里云MVP(最有价值专家)完成终审,截至目前,全球已有27个国家和地区.近500位云计算专家和优秀开发者成为阿里云MVP.阿里云MVP是阿里云授予中国乃至全球行业数字化转型技术实践领军者的称号,他们懂技术.爱分享,愿意赋能更多开发者,让技术普惠更多企业.在他们的身上,你能看到这个时×××发者激动人心的创新创造,更能看到站在各行各业技术前沿的实践者们,努力建设一个更美好的数字中国. 数字转型:技术让生活更美好 2018年12月28日,25岁的黄胜蓝接到了阿里云MVP认证通过