定制开发小程序Prometheus(普罗米修斯)监控架构简介

定制开发小程序最近在了解一些云原生定制开发小程序相关的内容,定制开发小程序其中就涉及到Prometheus定制开发小程序这一个监控,定制开发小程序下面就简要介绍一下这定制开发小程序一个监控框架。

1. 架构图

下面是官方给出的架构图:

可以看到,是基于pull-push即拉取和推送模型,(其实这样的说法太抽象了,简而言之就是获取监控指标metrics和发出告警信息alert以及进行可视化

2. 各个组件介绍

下面是对于里面主要的组件的介绍:

  • 用于采集和存取时间序列数据的 Prometheus server
  • 用于监测应用的客户端库 (client lib,在客户端这里,图中没有标出)
  • 用于支持短期的作业(Short-lived jobs)的 push gateway(下面有Short-lived jobs和push gateway的定义)
  • 诸如 HAProxy,StatsD,Graphite 等服务的专用 exporter (下面有他的定义)
  • 用于处理告警的 alertmanager
  • PromQL是Prometheus内置了一个强大的数据查询语言。
  • Grafana是可视化的工具。
  • docker镜像是有Prometheus的,所以Prometheus能够在K8s上迅速的部署
  • Exporters/Jobs:Prometheus的数据采集组件,负责收集目标对象(host, container…)的性能数据,并通过HTTP接口提供给Prometheus Server。支持数据库、硬件、消息中间件、存储系统、http服务器、jmx等。
  • Short-lived jobs:瞬时任务的场景,无法通过pull方式拉取,需要使用push方式,与PushGateway搭配使用
  • PushGateway:应对部分push场景的组件可选组件,这部分监控数据先推送到Push Gateway上,然后再由Prometheus Server端拉取 。用于存在时间较短,可能在Prometheus来拉取之前就消失了的 jobs

由于Prometheus基于Golang编写,所以是原生支持go的。
此外还有以下特点:

  1. 定义了开放指标数据标准:支持pull和push两种方式的数据采集,以基于HTTP的Pull方式采集时序数据,只有实现了prometheus监控数据格式才可以被prometheus采集;以Push方式向中间网关(Gateway)推送时序数据,能更灵活地应对各种监控场景。
  1. 支持通过静态文件配置和动态发现机制发现监控对象,自动完成数据采集。prometheus目前已经支持Kubernetes、Consul等多种服务发现机制,可以减少运维人员的手动配置环节。

所以,如果你是在k8s(Kubernetes)上面部署Prometheus监控,**可以通过对外暴露服务(service的方式,利用Prometheus进行监控。**可以参考资料一最后一节的内容。

3. 官方给出的特点

下面是官方文档上说的Prometheus的特点:

  • 具有由指标名称和键/值对标识的时间序列数据的多维数据模型
  • PromQL,一种灵活的查询语言
  • 不依赖分布式存储(指的是普罗米修斯监控应用本身,不是说它不支持对分布式场景进行监控)
  • 时间序列收集通过HTTP上的拉取模型(就是前面的 pull)进行
  • 通过中间网关(就是前面的gateway)支持推送时间序列(就是前面的 push
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持模式
    也就是实际上Prometheus本身并不做直接监控,只是做了一个监控整合,把监控信息获取,数据分析,告警,前端界面等整合到一起了。

参考资料

  1. https://hulining.gitbook.io/prometheus/introduction/overview 这是一个对于Prometheus的入门的介绍,如果有时间,很推荐跟着教程完整的走一遍
  2. https://www.modb.pro/db/45956
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发