promethus基本工作原理
什么是Prometheus?
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB) 。 Prometheus使用Go语言开发 , 是GoogleBorgMon监控系统的开源版本 。 2016年由Google发起Linux基金会旗下的原生云基金会(CloudNativeComputingFoundation),将Prometheus纳入其下第二大开源项目 。 Prometheus目前在开源社区相当活跃 。 Prometheus和Heapster(Heapster是K8S的一个子项目 , 用于获取集群的性能数据 。 )相比功能更完善、更全面 。 Prometheus性能也足够支撑上万台规模的集群 。
Prometheus的特点
多维度数据模型 。
灵活的查询语言 。
不依赖分布式存储 , 单个服务器节点是自主的 。
通过基于HTTP的pull方式采集时序数据 。
可以通过中间网关进行时序列数据推送 。
通过服务发现或者静态配置来发现目标服务对象 。
支持多种多样的图表和界面展示 , 比如Grafana等 。
架构图

文章图片

文章图片
基本原理
Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态 , 任意组件只要提供对应的HTTP接口就可以接入监控 。 不需要任何SDK或者其他的集成过程 。 这样做非常适合做虚拟化环境监控系统 , 比如VM、Docker、Kubernetes等 。 输出被监控组件信息的HTTP接口被叫做exporter 。 目前互联网公司常用的组件大部分都有exporter可以直接使用 , 比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等) 。
服务过程
PrometheusDaemon负责定时去目标上抓取metrics(指标)数据 , 每个抓取目标需要暴露一个http服务的接口给它定时抓取 。 Prometheus支持通过配置文件、文本文件、Zookeeper、Consul、DNSSRVLookup等方式指定抓取目标 。 Prometheus采用PULL的方式进行监控 , 即服务器可以直接通过目标PULL数据或者间接地通过中间网关来Push数据 。
Prometheus在本地存储抓取的所有数据 , 并通过一定规则进行清理和整理数据 , 并把得到的结果存储到新的时间序列中 。
Prometheus通过PromQL和其他API可视化地展示收集的数据 。 Prometheus支持很多方式的图表可视化 , 例如Grafana、自带的Promdash以及自身提供的模版引擎等等 。 Prometheus还提供HTTPAPI的查询方式 , 自定义所需要的输出 。
PushGateway支持Client主动推送metrics到PushGateway , 而Prometheus只是定时去Gateway上抓取数据 。
Alertmanager是独立于Prometheus的一个组件 , 可以支持Prometheus的查询语句 , 提供十分灵活的报警方式 。
三大套件
Server主要负责数据采集和存储 , 提供PromQL查询语言的支持 。
Alertmanager警告管理器 , 用来进行报警 。
【promethus基本工作原理】PushGateway支持临时性Job主动推送指标的中间网关 。
推荐阅读
- 法律点赞全国人大常委会工作:铸法律重器
- 社会保险关于社保待遇,政府工作报告传递出5个好消息
- 为什么工作场所是工厂,发工资却是中介,这有什么区别?
- 新华网国内首条海底高铁隧道完成海上钻探工作
- 外交部王毅:向各国医护工作者致以崇高敬意 至暗时刻终将过去,光明已在前方
- 赵皖平代表:做好脱贫攻坚与乡村振兴衔接工作
- 碎片商店史诗更换,第三款天狼星基本锁定,962点券留给曜稳了
- 夏天的基本款怎么穿?日本插画师随手一画,8套搭配灵感穿出高级
- 职场上不如意时,谨记这4句话,工作就能风生水起!
- 波士顿动力的机器狗新工作上岗,竟是放羊
