FIRST STEPS WITH PROMETHEUS
欢迎来到普罗米修斯! Prometheus是一个监控平台,通过在这些目标上抓取指标HTTP端点来收集受监控目标的指标。 本指南将向您展示如何使用Prometheus安装,配置和监控我们的第一个资源。 您将下载,安装并运行Prometheus。 您还将下载并安装导出器,这些工具可在主机和服务上显示时间序列数据。 我们的第一个出口商将是节点出口商,它公开了CPU,内存和磁盘等主机级度量。
下载 Prometheus
为您的平台下载最新版本的Prometheus,然后解压缩它:
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Prometheus服务器是一个名为prometheus的单一二进制文件(或Microsoft Windows上的prometheus.exe)。 我们可以运行二进制文件并通过传递--help标志来查看其选项的帮助。
./prometheus --help
usage: prometheus [<flags>]
The Prometheus monitoring server
. . .
在启动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。
全局块控制普罗米修斯服务器的全局配置。 我们有两种选择。 第一个scrape_interval控制普罗米修斯多久刮一次目标。 您可以覆盖个别目标。 在这种情况下,全局设置是每15秒刮一次。 evaluation_interval选项控制普罗米修斯会多久评估一次规则。 普罗米修斯使用规则创建新的时间序列并生成警报。
rule_files块指定我们希望Prometheus服务器加载的任何规则的位置。 现在我们没有规则。
最后一块scrape_configs控制着普罗米修斯监视的资源。 由于普罗米修斯还将自己的数据作为HTTP端点公开,因此它可以抓取并监控自己的健康状况。 在默认配置中,有一个称为prometheus的作业,用于删除Prometheus服务器公开的时间序列数据。 作业包含一个静态配置的目标,端口9090上的本地主机。Prometheus希望指标可以在/度量标准路径上的目标上使用。 所以这个默认的作业是通过URL:http:// localhost:9090/metrics来抓取的。
返回的时间序列数据将详细说明普罗米修斯服务器的状态和性能。
有关配置选项的完整规范,请参阅配置文档。
启动 Prometheus
要使用我们新创建的配置文件启动Prometheus,请切换到包含Prometheus二进制文件的目录并运行:
./prometheus --config.file=prometheus.yml
普罗米修斯应该启动了。 您还应该能够通过http:// localhost:9090浏览到自己的状态页面。 从它自己的HTTP度量端点收集关于它自己的数据约30秒。
您还可以通过导航到自己的度量标准端点来验证Prometheus是否提供有关自身的度量标准:http://localhost:9090/metrics。
使用表达式浏览
让我们试着看一下普罗米修斯收集的一些数据。 要使用普罗米修斯的内置表达式浏览器,请导航到http://localhost:9090/graph 并在“图形”选项卡中选择“控制台”视图。
正如您可以从http:// localhost:9090/metrics收集的信息一样,Prometheus导出的一个度量标准名为http_requests_total(Prometheus服务器的HTTP请求总数)。 继续并将其输入到表达式控制台中:
http_requests_total
这应该返回许多不同的时间序列(以及为每个时间序列记录的最新值),所有这些都使用度量标准名称http_requests_total但具有不同的标签。 这些标签指定不同类型的请求。
如果我们只对产生HTTP代码200的请求感兴趣,我们可以使用这个查询来检索这些信息:
http_requests_total{code="200"}
要计算返回的时间序列的数量,您可以编写:
count(http_requests_total)
有关表达式语言的更多信息,请参阅表达式语言文档。
使用图形界面
要绘制表达式,请导航到http:// localhost:9090 / graph并使用“图形”选项卡。
例如,输入以下表达式来描绘在自刮自动Prometheus中发生的每秒HTTP请求率:
rate(http_requests_total[1m])
您可以尝试使用图形范围参数和其他设置。
安装 Node Exporter
仅从普罗米修斯收集指标并不能很好地代表普罗米修斯的能力。 所以让我们使用节点导出器来监视我们的第一个资源。 我们将监视运行Prometheus服务器的本地Linux主机,但您可以监视任何Linux或OS X主机。 还有一个用于Microsoft Windows主机的WMI导出器。
为您的平台下载最新版本的Prometheus Node Exporter,然后解压缩它:
tar xvfz node_exporter-*.tar.gz
cd node_exporter-*
节点导出器是一个单一的二进制node_exporter,并具有一组可配置的收集器,用于收集各种基于主机的度量标准。 默认情况下,收集器收集CPU,内存,磁盘和其他度量标准并将其公开。
我们现在在Linux主机上启动Node Exporter。
./node_exporter
节点导出器的度量标准可在/ metrics路径上的主机上的端口9100上获得。 在我们的例子中,这是:http://localhost:9100/metrics。
您可以浏览到此URL以查看要公开的指标。
我们现在需要告诉普罗米修斯我们的新exporter。
配置Prometheus来监视主机
我们将配置Prometheus来抓取这个新目标。 为了达到这个目的,在prometheus.yml的scrape_configs部分添加一个新的作业定义:
- job_name: node
static_configs:
- targets: ['localhost:9100']
我们的新工作被称为节点。 它会在端口9100上删除一个静态目标localhost。您将用您正在监视的主机的名称或IP地址替换该名称。
现在我们重新启动我们的Prometheus服务器以激活您的新工作。
转到表达式浏览器并验证Prometheus现在有关于此端点公开的时间序列的信息。 导航到http://localhost:9090/graph并使用“Execute”按钮旁边的下拉列表查看此服务器收集的度量标准列表。 在列表中,您会看到许多以node_为前缀的度量标准,这些度量标准已由节点导出程序通过节点作业收集。 例如,您可以通过node_cpu指标查看节点的CPU使用情况。
一个有用的度量指标是向上度量。 up度量可用于跟踪目标的状态。 如果度量标准的值为1,那么目标的刮擦成功,如果0失败。 这可以帮助您指示目标的状态。 您会看到两个向上的指标,一个用于我们正在抓取的每个目标:Prometheus服务器和Node Exporter。
Summary
现在你已经被引入Prometheus,安装它并配置它来监视你的第一个资源。 我们还安装了我们的第一个出口商,并看到了如何使用表达式浏览器捕获时间序列数据的基础知识。 您可以找到更多文档和指南,以帮助您继续了解有关Prometheus的更多信息。