监控篇 | Prometheus 认识
怎样才算是合格的运维工程师?系统监控是必备技能!
开 篇
什么是Prometheus?
Prometheus是由SoundCloud使用Go语言开发;
它是开源监控报警系统和时序列数据库(TSDB)。
它是Google BorgMon监控系统的开源版本。
2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。
Prometheus的特点
New Menu
多维度数据模型。
灵活的查询语言。
不依赖分布式存储,单个服务器节点是自主的。
通过基于HTTP的pull方式采集时序数据。
可以通过中间网关进行时序列数据推送。
通过服务发现或者静态配置来发现目标服务对象。
支持多种多样的图表和界面展示,比如Grafana等
Prometheus组件
New Menu
Prometheus生态系统由多个组件组成,它们中的一些是可选的。多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署。
Prometheus Server
主要负责数据采集和存储,提供PromQL查询语言的支持。
客户端SDK
官方提供的客户端类库有go、java、scala、python、ruby,其他还有很多第三方开发的类库,支持nodejs、php、erlang等。
Push Gateway
支持临时性Job主动推送指标的中间网关。
PromDash
使用Rails开发可视化的Dashboard,用于可视化指标数据。
Exporter
Exporter是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。
alertmanager
警告管理器,用来进行报警。
prometheus_cli
命令行工具。
其他辅助性工具
多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式。
没时间解释了,快长按左边二维码关注我们~~