Prometheus 入门指南
欢迎来到 Prometheus!Prometheus 是一个监控平台,它通过从监控 Target(采集目标)采集指标 HTTP 端点的数据来收集指标。本指南将向你展示如何安装、配置并使用 Prometheus 监控我们创建的第一个资源。你将下载、安装并运行 Prometheus。同时,你还将下载并安装 Exporter(Exporter 会暴露主机和服务上的时间序列数据)。我们的第一个 Exporter 是 Prometheus 本身,它提供了内存使用、垃圾回收等主机级别的大量指标。
下载 Prometheus
访问下载页面可以为你的平台下载最新的 Prometheus。随后你需要进行解压:
Prometheus 服务器由名为prometheus
(在 Microsoft Windows 上为prometheus.exe
)的单个二进制文件组成。你可以通过传递--help
标志来运行二进制文件并查看关于其选项的帮助。
在启动 Prometheus 之前,我们需要对其进行配置。
配置 Prometheus
Prometheus 的配置是 YAML 格式的。在下载时,Prometheus 附带了一个名为prometheus.yml
的示例配置文件,该文件是一个不错的配置示例。
我们在示例文件中删除了大部分注释以使其更加简洁(注释是带有 #
的行)。
示例配置文件中有三个配置块:global
、rule_files
和scrape_configs
。
global
块控制 Prometheus 服务器的全局配置。在这里,我们有两个选项。第一个是scrape_interval
,控制 Prometheus 向 Target 采集的频率。你可以给单个 Target 覆盖此设置。在样例中,我们将全局采集频率设置为每15秒采集一次。evaluation_interval
选项控制 Prometheus 规则评估(rules evaluation)的频率。Prometheus 使用规则来创建新的时间序列,并生成告警(alert)。
rule_files
指定了我们想要 Prometheus 服务器加载的规则文件位置。在本示例中,我们没有配置规则。
最后的scrape_configs
块控制 Prometheus 要监控的资源。由于 Prometheus 自身也作为 HTTP 端点暴露数据,因此它可以采集自身的指标和监控自身的健康状况。在默认配置中,有一个单一的采集任务(job),称为prometheus
,它采集 Prometheus 服务器暴露的时间序列数据。该任务包含一个静态配置的 Target ,即localhost
上的9090
端口。Prometheus 期望在 Target 的/metrics
路径上能够采集到指标。最后,默认任务将通过URL:http://localhost:9090/metrics
进行采集。
返回的时间序列数据可以详细地说明 Prometheus 服务器的状态和性能。
有关配置选项的完整规范,请参阅配置文档。
启动 Prometheus
要使用新创建的配置文件启动 Prometheus,请切换到包含 Prometheus 二进制文件的目录,并运行:
此时,Prometheus 应该启动成功,你也应该能够浏览到有关 Prometheus 自身状态的页面:http://localhost:9090
。它大约需要花费 30 秒钟的时间从自身的 HTTP 端点采集数据。
你还可以在浏览器打开http://localhost:9090/metrics
验证 Prometheus 是否正在提供关于自身的指标。
使用表达式浏览器
让我们尝试查看 Prometheus 收集的有关自身的数据。为了使用 Prometheus 内置的表达式浏览器(expression browser),请打开http://localhost:9090/graph
并在“Graph”标签页内选择“Table”。
如http://localhost:9090/metrics
给出的内容所示,Prometheus 给出的关于自身的指标之一名为promhttp_metric_handler_requests_total
(Prometheus 服务器已经处理的/metrics
请求总数)。现在,输入这个表达式:
上述表达式应该返回不同的时间序列(以及每个时间序列记录的最新值),所有的序列都应该具有指标名称promhttp_metric_handler_requests_total
。它们有不同的标签,这些标签对应不同的请求状态。
如果我们只对 HTTP 代码为200
的请求感兴趣,我们可以使用下面的表达式查询相关信息:
要计算返回的时间序列数量,可以编写:
有关表达式语言的更多信息,请参考:表达式语言文档。
使用图形界面
要绘制表达式,打开http://localhost:9090/graph
并点击“Graph”标签页。
例如,输入以下表达式来绘制采集的 Prometheus 每秒返回代码200
的 HTTP 请求率:
你也可以试一下设置范围参数和其他设置。
监控其他 Target
仅从 Prometheus 收集指标并不能很好地体现 Prometheus 的强大能力。为了更好地了解 Prometheus 可以做些什么,我们建议你探索一下其他 Exporter 的文档。使用 Node Exporter 监控 Linux 或 macOS 主机指标教程是一个不错的开始。
总结
在这个指南中,我们安装了 Prometheus,配置了一个 Prometheus 实例来监控资源,并学习了如何在 Prometheus 的表达式浏览器中处理时间序列数据的一些基本知识。要继续学习 Prometheus,请查看概览以获取有关进一步学习的建议。
该文档基于 Prometheus 官方文档翻译而成。