点击蓝色“陈树义”关注我哟
Prometheus 是任何一个高级工程师必须要掌握的技能。那么如何从零部署一套 Prometheus 监控系统呢?本篇文章将从 Prometheus 的原理讲起,手把手带你用一个最简单的例子部署一套 Prometheus 监控系统。
基本原理
Prometheus 的基本架构如下图所示:
从上图可以看到,整个 Prometheus 可以分为四大部分,分别是:
Prometheus 服务器
Prometheus Server 是 Prometheus 组件中的核心部分,负责实现对监控数据的获取,存储以及查询。
NodeExporter 业务数据源
业务数据源通过 Pull/Push 两种方式推送数据到 Prometheus Server。
AlertManager 报警管理器
Prometheus 通过配置报警规则,如果符合报警规则,那么就将报警推送到 AlertManager,由其进行报警处理。
可视化监控界面
Prometheus 收集到数据之后,由 WebUI 界面进行可视化图标展示。目前我们可以通过自定义的 API 客户端进行调用数据展示,也可以直接使用 Grafana 解决方案来展示。
简单地说,Prometheus 的实现架构也并不复杂。其实就是收集数据、处理数据、可视化展示,再进行数据分析进行报警处理。 但其珍贵之处在于提供了一整套可行的解决方案,并且形成了一整个生态,能够极大地降低我们的研发成本。
快速入门
下面我们通过一个简单的例子来实现对服务器 CPU、内存等硬件信息的监控。
安装运行 Prometheus 服务端
Prometheus 服务端负责数据的收集,因此我们应该首先安装并运行 Prometheus Server。
从 https://prometheus.io/download/ 找到最新版本的 Prometheus Sevrer 软件包:
下载后解压,可以看到如下目录结构:
其中 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