点击蓝色“陈树义”关注我哟
Prometheus 是任何一个高级工程师必须要掌握的技能。那么如何从零部署一套 Prometheus 监控系统呢?本篇文章将从 Prometheus 的原理讲起,手把手带你用一个最简单的例子部署一套 Prometheus 监控系统。
基本原理
Prometheus 的基本架构如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/7c26bc3bbedacfedf7b0684e456daeb9.png)
从上图可以看到,整个 Prometheus 可以分为四大部分,分别是:
Prometheus 服务器
Prometheus Server 是 Prometheus 组件中的核心部分,负责实现对监控数据的获取,存储以及查询。
NodeExporter 业务数据源
业务数据源通过 Pull/Push 两种方式推送数据到 Prometheus Server。
AlertManager 报警管理器
Prometheus 通过配置报警规则,如果符合报警规则,那么就将报警推送到 AlertManager,由其进行报警处理。
可视化监控界面
Prometheus 收集到数据之后,由 WebUI 界面进行可视化图标展示。目前我们可以通过自定义的 API 客户端进行调用数据展示,也可以直接使用 Grafana 解决方案来展示。
简单地说,Prometheus 的实现架构也并不复杂。其实就是收集数据、处理数据、可视化展示,再进行数据分析进行报警处理。 但其珍贵之处在于提供了一整套可行的解决方案,并且形成了一整个生态,能够极大地降低我们的研发成本。
![](https://i-blog.csdnimg.cn/blog_migrate/4b05db39b18340abf1fb13c542bbb7da.png)
快速入门
下面我们通过一个简单的例子来实现对服务器 CPU、内存等硬件信息的监控。
安装运行 Prometheus 服务端
Prometheus 服务端负责数据的收集,因此我们应该首先安装并运行 Prometheus Server。
从 https://prometheus.io/download/ 找到最新版本的 Prometheus Sevrer 软件包:
![](https://i-blog.csdnimg.cn/blog_migrate/1e4a0d3d1a33c4f1e85cc67018b17237.png)
下载后解压,可以看到如下目录结构:
![](https://i-blog.csdnimg.cn/blog_migrate/eb0a3ed704e1d3ece6e3945dfe398d5e.png)
其中 data 目录是数据的存储路径,也可以通过运行时的 --storage.tsdb.path="data/"
命令另行指定。Prometheus.yml 是 Prometheus 的配置文件,prometheus 是运行的命令。
启动 prometheus 服务,其会默认加载当前路径下的 prometheus.yaml 文件。当然我们也可以手动指定配置文件地址:
./prometheus --config.file=prometheus.yml
正常的情况下,你可以看到以下输出内容:
level=info ts=2020-07-18T06:48:52.454Z cal