Prometheus监控教程:初识Prometheus

转载:https://blog.csdn.net/guting18893110463/article/details/129655698?spm=1001.2014.3001.5502

本章作为Prometheus监控教程的开篇,我们会带读者了解Prometheus的前世今生,Prometheus是如何从众多的监控平台中脱颖而出成为下一代监控系统的首选。同时通过一个简单的例子带领读者快速了解Prometheus是如何工作的,从而了解Prometheus中的一些概念以及架构模式。

一、Prometheus简介

Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。

2016年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。

Prometheus作为新一代的云原生监控系统,目前已经有超过650+位贡献者参与到Prometheus的研发工作上,并且超过120+项的第三方集成。

二、Prometheus的特点

1. 多维度数据模型

2. 灵活的查询语言

3. 不依赖分布式存储,单个服务器节点是自主的

4. 以HTTP方式,通过pull模型拉去时间序列数据

5. 也通过中间网关支持push模型

6. 通过服务发现或者静态配置,来发现目标服务对象

7. 支持多种多样的图表和界面展示,grafana也支持它

三、Prometheus的组件

Prometheus生态包括了很多组件,它们中的一些是可选的:

1. 主服务Prometheus Server负责抓取和存储时间序列数据

2. 客户库负责检测应用程序代码

3. 支持短生命周期的PUSH网关

4. 基于Rails/SQL仪表盘构建器的GUI

5. 多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式

6. 警告管理器

7. 命令行查询工具

8. 其他各种支撑工具

多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署。

四、Prometheus的架构图

下面这张图说明了Prometheus的整体架构,以及生态中的一些组件作用:

Prometheus服务,可以直接通过目标拉取数据,或者间接地通过中间网关拉取数据。它在本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中,PromQL和其他API可视化地展示收集的数据。

五、Prometheus的适用场景

Prometheus在记录纯数字时间序列方面表现非常好。它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。

Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。它的搭建过程对硬件和服务没有很强的依赖关系。

六、Prometheus的不适用场景

Prometheus,它的价值在于可靠性,甚至在很恶劣的环境下,你都可以随时访问它和查看系统服务各种指标的统计信息。如果你对统计数据需要100%的精确,它并不适用,例如:它不适用于实时计费系统。
————————————————
版权声明:本文为CSDN博主「IT运维先森」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guting18893110463/article/details/129655698

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章