原文:https://prometheus.io/docs/introduction/first_steps/
欢迎来到Prometheus! Prometheus是通过收集从被监控的目标上的HTTP endpoints来抓取指标的监控平台
本指南将向您展示如何Prometheus的安装、配置和监控我们的第一个资源。 您将下载,安装并运行Prometheus。 您还将下载并安装exporter,该工具可在主机和服务上显示时间序列数据。 我们的第一个exporter将是Prometheus本身,它提供有关内存使用,垃圾回收等的各种主机级别指标。
下载Prometheus
为您的平台下载最新版本的Prometheus,然后解压缩:
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Prometheus server是一个称为prometheus(或Microsoft Windows上的prometheus.exe)的二进制文件。 我们可以运行二进制文件,并通过传递--help标志来查看有关其选项的帮助。
./prometheus --help
usage: prometheus [<flags>]
The Prometheus monitoring server
. . .
在启动Prometheus之前,让我们对其进行配置。
配置Prometheus
Prometheus配置文件为YAML格式。 Prometheus下载随附一个名为prometheus.yml的文件中的示例配置,是开始的好地方。
我们删除了示例文件中的大多数注释,以使其更加简洁(注释是带有#前缀的行)。
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
示例配置文件中包含三个配置块:global,rule_files和scrape_configs。
- global块控制Prometheus server的全局配置。我们有两个选项。首先,scrape_interval控制Prometheus多久抓取一次目标。您可以为单个目标覆盖此参数。在这种情况下,全局设置是每15秒抓取一次。
- Evaluation_interval选项控制Prometheus多久评估一次规则。 Prometheus使用规则来创建新的时间序列并生成警报。
- rule_files块指定我们要Prometheus server加载规则的位置。目前,我们还没有任何规则。
最后的scrape_configs块控制Prometheus监视哪些资源。由于Prometheus还将有关自身的数据公开为HTTP端点,因此它可以抓取并监视自身的运行状况。在默认配置中,有一个称为prometheus的job,它会抓取Prometheus server公开的时间序列数据。该job在端口9090上包含一个静态配置的目标localhost。Prometheus希望指标可用于/metrics路径上的目标。因此,此默认job是通过以下网址进行抓取:http://localhost:9090/metrics
返回的时间序列数据将详细说明Prometheus server的状态和性能。
有关配置选项的完整说明,请参阅配置文档。
启动Prometheus
要使用我们新创建的配置文件启动Prometheus,请将目录切换到包含Prometheus二进制文件的目录并运行:
./prometheus --config.file=prometheus.yml
Prometheus应该启动了。 您还应该能够在http://localhost:9090上浏览到有关其自身的状态页。 给它大约30秒的时间,以从其自己的HTTP指标终结点收集有关自身的数据。
您还可以通过导航到自己的指标终结点:http://localhost:9090/metrics来验证Prometheus是否正在提供有关其自身的指标。
使用表达式浏览器
让我们尝试查看Prometheus收集的有关自身的一些数据。 要使用Prometheus的内置表达式浏览器,请导航至http://localhost:9090/graph,然后在“Graph”选项卡中选择“Console”视图。
正如您可以从http://localhost:9090/metrics收集的那样,Prometheus导出的有关其自身的一个指标称为promhttp_metric_handler_requests_total(Prometheus服务器已处理的/ metrics请求总数)。 继续并将其输入到表达式控制台中:
promhttp_metric_handler_requests_total
这将返回多个不同的时间序列(以及每个时间序列的最新值),所有时间序列的度量标准名称均为promhttp_metric_handler_requests_total,但标签不同。 这些标签指定不同的请求状态。
如果我们只对导致HTTP代码200的请求感兴趣,则可以使用此查询来检索该信息:
promhttp_metric_handler_requests_total{code="200"}
要计算返回的时间序列数,您可以编写:
count(promhttp_metric_handler_requests_total)
有关表达语言的更多信息,请参见表达语言文档。
使用绘图界面
要绘制图形表达式,请导航至 http://localhost:9090/graph并使用“Graph”选项卡。
例如,输入以下表达式以图形化显示在自抓取的Prometheus中发生的每秒HTTP请求速率返回状态代码200:
rate(promhttp_metric_handler_requests_total{code="200"}[1m])
您可以尝试使用图形范围参数和其他设置。
监控其他目标
仅从Prometheus收集指标并不能很好地说明Prometheus的功能。 为了更好地了解Prometheus可以做什么,我们建议您浏览有关其他exporter的文档。 使用节点exporter监控Linux或macOS主机指标的指南是一个不错的起点。
摘要
在本指南中,您安装了Prometheus,配置了Prometheus实例以监视资源,并了解了在Prometheus表达式浏览器中使用时间序列数据的一些基础知识。 要继续学习Prometheus,请查看“概览”以获取有关接下来要探索的内容的一些想法。