介绍
Prometheus 是一个强大的开源监控系统,它从您的服务中收集指标并将它们存储在时间序列数据库中。 它通过 Grafana 等工具提供多维数据模型、灵活的查询语言和多样化的可视化可能性。
默认情况下,Prometheus 只导出关于自身的指标(例如 它收到的请求数、内存消耗等)。 但是,您可以通过安装 exporters 来极大地扩展 Prometheus,这些可选程序会生成额外的指标。
导出器——Prometheus 团队维护的官方导出器和社区贡献的导出器——提供从基础设施、数据库和 Web 服务器到消息传递系统、API 等所有方面的信息。
一些最受欢迎的选择包括:
- node_exporter - 这会生成有关基础架构的指标,包括当前的 CPU、内存和磁盘使用情况,以及 I/O 和网络统计信息,例如从磁盘读取的字节数或服务器的平均负载。
- blackbox_exporter - 这会生成从 HTTP 和 HTTPS 等探测协议派生的指标,以确定端点可用性、响应时间等。
- mysqld_exporter - 这会收集与 MySQL 服务器相关的指标,例如执行查询的数量、平均查询响应时间和集群复制状态。
- rabbitmq_exporter - 这会输出有关 RabbitMQ 消息传递系统的指标,包括已发布的消息数量、准备交付的消息数量以及队列中所有消息的大小。
- nginx-vts-exporter - 这提供有关使用 Nginx VTS 模块 的 Nginx Web 服务器的指标,包括打开的连接数、发送的响应数(按响应代码分组) ,以及发送或接收请求的总大小(以字节为单位)。
您可以在 Prometheus 的网站 上找到更完整的官方和社区贡献的导出器列表。
在本教程中,您将安装、配置和保护 Prometheus 和 Node Exporter,以生成可以更轻松地监控服务器性能的指标。
先决条件
在学习本教程之前,请确保您拥有:
- 一个 Ubuntu 16.04 Droplet,按照 使用 Ubuntu 16.04 的初始服务器设置教程 进行设置,包括一个 sudo 非 root 用户和一个防火墙。
- 按照如何在Ubuntu 16.04上安装Nginx教程的前两个步骤安装Nginx。
第 1 步 — 创建服务用户
出于安全考虑,我们将首先创建两个新用户帐户,prometheus 和 node_exporter。 我们将在整个教程中使用这些帐户来隔离 Prometheus 核心文件和目录的所有权。
创建这两个用户,并使用 --no-create-home
和 --shell /bin/false
选项使这些用户无法登录服务器。
sudo useradd --no-create-home --shell /bin/false prometheus sudo useradd --no-create-home --shell /bin/false node_exporter
在我们下载 Prometheus 二进制文件之前,创建必要的目录来存储 Prometheus 的文件和数据。 按照标准的 Linux 约定,我们将在 /etc
中为 Prometheus 的配置文件创建一个目录,并在 /var/lib
中为它的数据创建一个目录。
sudo mkdir /etc/prometheus sudo mkdir /var/lib/prometheus
现在,将新目录的用户和组所有权设置为 prometheus 用户。
sudo chown prometheus:prometheus /etc/prometheus sudo chown prometheus:prometheus /var/lib/prometheus
有了我们的用户和目录,我们现在可以下载 Prometheus,然后创建最小的配置文件来首次运行 Prometheus。
第 2 步 — 下载 Prometheus
首先,下载当前稳定版本的 Prometheus 并将其解压到您的主目录中。 您可以在 Prometheus 下载页面 上找到最新的二进制文件及其校验和。
cd ~ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz
接下来,使用 sha256sum
命令生成下载文件的校验和:
sha256sum prometheus-2.0.0.linux-amd64.tar.gz
将此命令的输出与 Prometheus 下载页面上的校验和进行比较,以确保您的文件是真实的且没有损坏。
Outpute12917b25b32980daee0e9cf879d9ec197e2893924bd1574604eb0f550034d46 prometheus-2.0.0.linux-amd64.tar.gz
如果校验和不匹配,请删除下载的文件并重复上述步骤以重新下载文件。
现在,解压缩下载的存档。
tar xvf prometheus-2.0.0.linux-amd64.tar.gz
这将创建一个名为 prometheus-2.0.0.linux-amd64
的目录,其中包含两个二进制文件(prometheus
和 promtool
),consoles
和 console_libraries
目录包含 Web 界面文件、许可证、通知和几个示例文件。
将两个二进制文件复制到 /usr/local/bin
目录。
sudo cp prometheus-2.0.0.linux-amd64/prometheus /usr/local/bin/ sudo cp prometheus-2.0.0.linux-amd64/promtool /usr/local/bin/
将二进制文件的用户和组所有权设置为在步骤 1 中创建的 prometheus 用户。
sudo chown prometheus:prometheus /usr/local/bin/prometheus sudo chown prometheus:prometheus /usr/local/bin/promtool
将 consoles
和 console_libraries
目录复制到 /etc/prometheus
。
sudo cp -r prometheus-2.0.0.linux-amd64/consoles /etc/prometheus sudo cp -r prometheus-2.0.0.linux-amd64/console_libraries /etc/prometheus
将目录上的用户和组所有权设置为 prometheus 用户。 使用 -R
标志将确保对目录内的文件也设置所有权。
sudo chown -R prometheus:prometheus /etc/prometheus/consoles sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
最后,从您的主目录中删除剩余的文件,因为它们不再需要。
rm -rf prometheus-2.0.0.linux-amd64.tar.gz prometheus-2.0.0.linux-amd64
现在已经安装了 Prometheus,我们将创建它的配置和服务文件,为它的首次运行做准备。
第 3 步 — 配置 Prometheus
在 /etc/prometheus
目录中,使用 nano
或您喜欢的文本编辑器创建一个名为 prometheus.yml
的配置文件。 目前,该文件将包含足够的信息来首次运行 Prometheus。
sudo nano /etc/prometheus/prometheus.yml
警告: Prometheus的配置文件使用YAML格式,严格禁止制表符,缩进需要两个空格。 如果配置文件格式错误,Prometheus 将无法启动。
在 global
设置中,定义抓取指标的默认间隔。 请注意,Prometheus 会将这些设置应用于每个导出器,除非单个导出器自己的设置覆盖全局。
Prometheus 配置文件第 1 部分 - /etc/prometheus/prometheus.yml
global: scrape_interval: 15s
这个 scrape_interval
值告诉 Prometheus 每 15 秒从其导出器收集一次指标,这对于大多数导出器来说已经足够长了。
现在,使用以下 scrape_configs
指令将 Prometheus 本身添加到要从中抓取的导出器列表中:
Prometheus 配置文件第 2 部分 - /etc/prometheus/prometheus.yml
... scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090']
Prometheus 使用 job_name
在查询和图表中标记导出器,因此请务必在此处选择描述性的内容。
而且,由于 Prometheus 会导出有关其自身的重要数据,您可以将其用于监控性能和调试,因此我们将全局 scrape_interval
指令从 15 秒覆盖到 5 秒,以实现更频繁的更新。
最后,Prometheus 使用 static_configs
和 targets
指令来确定导出器在哪里运行。 由于这个特定的导出器与 Prometheus 本身在同一台服务器上运行,因此我们可以使用 localhost
代替 IP 地址以及默认端口 9090
。
您的配置文件现在应该如下所示:
Prometheus 配置文件 - /etc/prometheus/prometheus.yml
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090']
保存文件并退出文本编辑器。
现在,将配置文件上的用户和组所有权设置为在步骤 1 中创建的 prometheus 用户。
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
配置完成后,我们就可以通过第一次运行 Prometheus 来测试它了。
第 4 步 — 运行 Prometheus
以 prometheus 用户身份启动 Prometheus,提供配置文件和数据目录的路径。
sudo -u prometheus /usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries
输出包含有关 Prometheus 的加载进度、配置文件和相关服务的信息。 它还确认 Prometheus 正在侦听端口 9090
。
Outputlevel=info ts=2017-11-17T18:37:27.474530094Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0, branch=HEAD, re vision=0a74f98628a0463dddc90528220c94de5032d1a0)" level=info ts=2017-11-17T18:37:27.474758404Z caller=main.go:216 build_context="(go=go1.9.2, user=root@615b82cb36b6, date=20171108- 07:11:59)" level=info ts=2017-11-17T18:37:27.474883982Z caller=main.go:217 host_details="(Linux 4.4.0-98-generic #121-Ubuntu SMP Tue Oct 10 1 4:24:03 UTC 2017 x86_64 prometheus-update (none))" level=info ts=2017-11-17T18:37:27.483661837Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0 :9090 level=info ts=2017-11-17T18:37:27.489730138Z caller=main.go:314 msg="Starting TSDB" level=info ts=2017-11-17T18:37:27.516050288Z caller=targetmanager.go:71 component="target manager" msg="Starting target manager... " level=info ts=2017-11-17T18:37:27.537629169Z caller=main.go:326 msg="TSDB started" level=info ts=2017-11-17T18:37:27.537896721Z caller=main.go:394 msg="Loading configuration file" filename=/etc/prometheus/promethe us.yml level=info ts=2017-11-17T18:37:27.53890004Z caller=main.go:371 msg="Server is ready to receive requests."
如果您收到错误消息,请仔细检查您是否在配置文件中使用了 YAML 语法,然后按照屏幕上的说明解决问题。
现在,按 CTRL+C
停止 Prometheus,然后打开一个新的 systemd
服务文件。
sudo nano /etc/systemd/system/prometheus.service
服务文件告诉 systemd
以 prometheus 用户身份运行 Prometheus,配置文件位于 /etc/prometheus/prometheus.yml
目录中,并将其数据存储在 [X180X ] 目录。 (systemd
服务文件的详细信息超出了本教程的范围,但是您可以在 了解 Systemd 单元和单元文件 中了解更多信息。)
将以下内容复制到文件中:
Prometheus 服务文件 - /etc/systemd/system/prometheus.service
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries [Install] WantedBy=multi-user.target
最后,保存文件并关闭文本编辑器。
要使用新创建的服务,请重新加载 systemd
。
sudo systemctl daemon-reload
您现在可以使用以下命令启动 Prometheus:
sudo systemctl start prometheus
要确保 Prometheus 正在运行,请检查服务的状态。
sudo systemctl status prometheus
输出会告诉您 Prometheus 的状态、主进程标识符 (PID)、内存使用情况等。
如果服务的状态不是 active
,请按照屏幕上的说明重新跟踪前面的步骤以解决问题,然后再继续教程。
Output● prometheus.service - Prometheus Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2017-07-21 11:40:40 UTC; 3s ago Main PID: 2104 (prometheus) Tasks: 7 Memory: 13.8M CPU: 470ms CGroup: /system.slice/prometheus.service ...
当您准备好继续前进时,按 Q
退出 status
命令。
最后,使服务在启动时启动。
sudo systemctl enable prometheus
现在 Prometheus 已经启动并运行,我们可以安装一个额外的导出器来生成有关我们服务器资源的指标。
第 5 步 — 下载节点导出器
为了将 Prometheus 扩展到仅关于其自身的指标之外,我们将安装一个名为 Node Exporter 的附加导出器。 Node Exporter 提供有关系统的详细信息,包括 CPU、磁盘和内存使用情况。
首先,将当前稳定版本的 Node Exporter 下载到您的主目录中。 您可以在 Prometheus 的下载页面 上找到最新的二进制文件及其校验和。
cd ~ curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz
使用 sha256sum
命令生成下载文件的校验和:
sha256sum node_exporter-0.15.1.linux-amd64.tar.gz
通过将其校验和与下载页面上的校验和进行比较来验证下载文件的完整性。
Output7ffb3773abb71dd2b2119c5f6a7a0dbca0cff34b24b2ced9e01d9897df61a127 node_exporter-0.15.1.linux-amd64.tar.gz
如果校验和不匹配,请删除下载的文件并重复上述步骤。
现在,解压缩下载的存档。
tar xvf node_exporter-0.15.1.linux-amd64.tar.gz
这将创建一个名为 node_exporter-0.15.1.linux-amd64
的目录,其中包含一个名为 node_exporter
的二进制文件、一个许可证和一个通知。
将二进制文件复制到 /usr/local/bin
目录,并将用户和组所有权设置为您在步骤 1 中创建的 node_exporter 用户。
sudo cp node_exporter-0.15.1.linux-amd64/node_exporter /usr/local/bin sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
最后,从您的主目录中删除剩余的文件,因为它们不再需要。
rm -rf node_exporter-0.15.1.linux-amd64.tar.gz node_exporter-0.15.1.linux-amd64
现在您已经安装了 Node Exporter,让我们在为其创建服务文件之前运行它来测试它,以便它在启动时启动。
第 6 步 — 运行节点导出器
运行 Node Exporter 的步骤与运行 Prometheus 本身的步骤类似。 首先为 Node Exporter 创建 Systemd 服务文件。
sudo nano /etc/systemd/system/node_exporter.service
此服务文件告诉您的系统以 node_exporter 用户身份运行 Node Exporter,并启用默认的收集器集。
将以下内容复制到服务文件中:
节点导出器服务文件 - /etc/systemd/system/node_exporter.service
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
收集器定义节点导出器将生成哪些指标。 您可以在 Node Exporter README 文件 中查看 Node Exporter 的完整收集器列表——包括默认启用和不推荐使用的收集器。
如果您需要覆盖默认的收集器列表,可以使用 --collectors.enabled
标志,例如:
节点导出器服务文件部分 - /etc/systemd/system/node_exporter.service
... ExecStart=/usr/local/bin/node_exporter --collectors.enabled meminfo,loadavg,filesystem ...
前面的示例将告诉 Node Exporter 仅使用 meminfo
、loadavg
和 filesystem
收集器生成指标。 您可以将收集器限制为您需要的数量,但请注意逗号之前或之后没有空格。
保存文件并关闭文本编辑器。
最后,重新加载 systemd
以使用新创建的服务。
sudo systemctl daemon-reload
您现在可以使用以下命令运行 Node Exporter:
sudo systemctl start node_exporter
使用 status
命令验证节点导出器是否正常运行。
sudo systemctl status node_exporter
和以前一样,此输出会告诉您节点导出器的状态、主进程标识符 (PID)、内存使用情况等。
如果服务的状态不是 active
,请按照屏幕上的消息并重新跟踪前面的步骤以解决问题,然后再继续。
Output● node_exporter.service - Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2017-07-21 11:44:46 UTC; 5s ago Main PID: 2161 (node_exporter) Tasks: 3 Memory: 1.4M CPU: 11ms CGroup: /system.slice/node_exporter.service
最后,启用 Node Exporter 以在启动时启动。
sudo systemctl enable node_exporter
在 Node Exporter 完全配置并按预期运行后,我们将告诉 Prometheus 开始抓取新指标。
第 7 步 — 将 Prometheus 配置为抓取节点导出器
因为 Prometheus 只抓取在其配置文件的 scrape_configs
部分中定义的导出器,所以我们需要为 Node Exporter 添加一个条目,就像我们为 Prometheus 本身所做的一样。
打开配置文件。
sudo nano /etc/prometheus/prometheus.yml
在 scrape_configs
块的末尾,添加一个名为 node_exporter
的新条目。
Prometheus 配置文件第 1 部分 - /etc/prometheus/prometheus.yml
... - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['localhost:9100']
因为这个导出器也和 Prometheus 本身在同一台服务器上运行,所以我们可以再次使用 localhost 而不是 IP 地址以及 Node Exporter 的默认端口 9100
。
您的整个配置文件应如下所示:
Prometheus 配置文件 - /etc/prometheus/prometheus.yml
global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['localhost:9100']
准备好继续时,保存文件并退出文本编辑器。
最后,重新启动 Prometheus 以使更改生效。
sudo systemctl restart prometheus
再次使用 status
命令验证一切是否正常运行。
sudo systemctl status prometheus
如果服务的状态未设置为 active
,请按照屏幕上的说明重新跟踪之前的步骤,然后再继续。
Output● prometheus.service - Prometheus Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2017-07-21 11:46:39 UTC; 6s ago Main PID: 2219 (prometheus) Tasks: 6 Memory: 19.9M CPU: 433ms CGroup: /system.slice/prometheus.service
我们现在已经安装、配置和运行 Prometheus 和 Node Exporter。 作为连接到 Web 界面之前的最后一项预防措施,我们将通过基本的 HTTP 身份验证来增强安装的安全性,以确保未经授权的用户无法访问我们的指标。
第 8 步 — 保护 Prometheus
Prometheus 不包含内置身份验证或任何其他通用安全机制。 一方面,这意味着您将获得一个具有较少配置限制的高度灵活的系统; 另一方面,这意味着您有责任确保您的指标和整体设置足够安全。
为简单起见,我们将使用 Nginx 为我们的安装添加基本的 HTTP 身份验证,Prometheus 及其首选的数据可视化工具 Grafana 都完全支持。
首先安装 apache2-utils
,这将使您可以访问 htpasswd
实用程序来生成密码文件。
sudo apt-get update sudo apt-get install apache2-utils
现在,通过告诉 htpasswd
你想在哪里存储文件以及你想使用哪个用户名来创建一个密码文件。
笔记: htpasswd
will prompt you to enter and re-confirm the password you’d like to associate with this user. Also, make note of both the username and password you enter here, as you’ll need them to log into Prometheus in Step 9.
sudo htpasswd -c /etc/nginx/.htpasswd sammy
此命令的结果是一个名为 .htpasswd
的新文件,位于 /etc/nginx
目录中,其中包含用户名和您输入的密码的哈希版本。
接下来,配置 Nginx 以使用新创建的密码。
首先,制作默认 Nginx 配置文件的 Prometheus 特定副本,以便以后遇到问题时可以恢复为默认值。
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus
然后,打开新的配置文件。
sudo nano /etc/nginx/sites-available/prometheus
在 server
块下找到 location /
块。 它应该看起来像:
/etc/nginx/sites-available/default
... location / { try_files $uri $uri/ =404; } ...
由于我们会将所有流量转发到 Prometheus,请将 try_files
指令替换为以下内容:
/etc/nginx/sites-available/prometheus
... location / { auth_basic "Prometheus server authentication"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://localhost:9090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } ...
这些设置确保用户必须在每个新会话开始时进行身份验证。 此外,反向代理会将由该块处理的所有请求定向到 Prometheus。
完成更改后,保存文件并关闭文本编辑器。
现在,通过在 /etc/nginx/sites-enabled
目录中删除指向它的链接来停用默认 Nginx 配置文件,并通过创建指向它的链接来激活新的配置文件。
sudo rm /etc/nginx/sites-enabled/default sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/
在重新启动 Nginx 之前,请使用以下命令检查配置是否有错误:
sudo nginx -t
输出应指示 syntax is ok
和 test is successful
。 如果您收到错误消息,请按照屏幕上的说明解决问题,然后再继续下一步。
Output of Nginx configuration testsnginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
然后,重新加载 Nginx 以合并所有更改。
sudo systemctl reload nginx
验证 Nginx 是否已启动并正在运行。
sudo systemctl status nginx
如果您的输出未指示服务的状态为 active
,请按照屏幕上的消息并重新跟踪上述步骤以解决问题,然后再继续。
输出
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en Active: active (running) since Mon 2017-07-31 21:20:57 UTC; 12min ago Process: 4302 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s r Main PID: 3053 (nginx) Tasks: 2 Memory: 3.6M CPU: 56ms CGroup: /system.slice/nginx.service
此时,我们拥有一个功能齐全且安全的 Prometheus 服务器,因此我们可以登录 Web 界面开始查看指标。
第 9 步 — 测试 Prometheus
Prometheus 提供了一个基本的 Web 界面,用于监控自身及其导出器的状态、执行查询和生成图表。 但是,由于界面简单,Prometheus 团队 建议 安装和使用 Grafana 进行比测试和调试更复杂的事情。
在本教程中,我们将使用内置的 Web 界面来确保 Prometheus 和 Node Exporter 启动并运行,我们还将了解简单的查询和图表。
首先,将您的网络浏览器指向 http://your_server_ip
。
在 HTTP 身份验证对话框中,输入您在第 8 步中选择的用户名和密码。
登录后,您将看到 Expression Browser,您可以在其中执行和可视化自定义查询。
在执行任何表达式之前,首先单击屏幕顶部的 Status 菜单,然后单击 Targets 菜单选项,以验证 Prometheus 和 Node Explorer 的状态。 由于我们已将 Prometheus 配置为同时抓取自身和节点导出器,您应该会看到两个目标都以 UP
状态列出。
如果导出器丢失或显示错误消息,请使用以下命令检查服务的状态:
sudo systemctl status prometheus
sudo systemctl status node_exporter
两种服务的输出都应报告 Active: active (running)
的状态。 如果某项服务根本未激活或已激活但仍无法正常工作,请按照屏幕上的说明重新跟踪之前的步骤,然后再继续。
接下来,为了确保导出器正常工作,我们将对节点导出器执行一些表达式。
首先,点击屏幕上方的【X20X】Graph【X29X】菜单,返回【X82X】表达式浏览器【X104X】。
在 Expression 字段中,输入 node_memory_MemAvailable
并按 Execute 按钮以使用服务器拥有的内存量更新 Console 选项卡。
默认情况下,节点导出器以字节为单位报告此数量。 要转换为兆字节,我们将使用数学运算符除以 1024 两次。
在 Expression 字段中,输入 node_memory_MemAvailable/1024/1024
,然后按 Execute 按钮。
Console 选项卡现在将以 MB 为单位显示结果。
如果要验证结果,请从终端执行 free
命令。 (-h
标志告诉 free
以人类可读的格式报告,给我们以兆字节为单位的数量。)
free -h
此输出包含有关内存使用情况的详细信息,包括显示在 available 列中的可用内存。
Output total used free shared buff/cache available Mem: 488M 144M 17M 3.7M 326M 324M Swap: 0B 0B 0B
除了基本的操作符之外,Prometheus 查询语言还提供了很多聚合结果的功能。
在 Expression 字段中,输入 avg_over_time(node_memory_MemAvailable[5m])/1024/1024
并单击 Execute 按钮。 结果将是过去 5 分钟内的平均可用内存(以 MB 为单位)。
现在,单击 Graph 选项卡以将执行的表达式显示为图形而不是文本。
最后,仍在此选项卡上时,将鼠标悬停在图表上,以获取有关沿图表 X 和 Y 轴的任何特定点的更多详细信息。
如果您想了解更多关于在 Prometheus 的内置 Web 界面中创建表达式的信息,请参阅官方文档的 Querying Prometheus 部分。
结论
在本教程中,我们下载、配置、保护和测试了一个完整的 Prometheus 安装和一个额外的导出器。
如果您想了解有关 Prometheus 如何在后台工作的更多信息,请查看 How To Query Prometheus on Ubuntu 14.04。 (由于您已经安装了 Prometheus,您可以跳过第一步。)
要了解 Prometheus 还能做什么,请访问 官方 Prometheus 文档 。
此外,要了解有关扩展 Prometheus 的更多信息,请查看 可用导出器列表 以及 Grafana 官方网站 。