如何在 Ubuntu 16.04 上安装 Prometheus

介绍

Prometheus是一个强大的开源监控系统,从您的服务中收集指标并将其存储在一个时间序列数据库中,它提供了多维数据模型,灵活的查询语言和各种可视化可能性,通过工具如 Grafana提供。

默认情况下,Prometheus只导出有关其自身的指标(例如接收请求数量、内存消耗率等)。

出口商 - 无论是 Prometheus 团队维护的官方服务器,还是社区贡献者 - 提供从基础设施、数据库和 Web 服务器到消息系统、 API 等等的一切信息。

一些最流行的选择包括:

  • node_exporter——这产生了关于基础设施的衡量标准,包括目前的CPU、内存和磁盘使用量,以及I/O和网络统计,例如从磁盘或服务器平均负载读取的字节数.
  • blackbox_exporter——这产生了来自HTTP和HTTPS等证明协议的衡量标准,以确定端点的可用性、响应时间和更多的.
  • Mysqld_exporter——这收集了与MySQL服务器有关的衡量标准,例如执行询问的次数、平均查询答复时间和集群复制状态
  • bbitmq_ex-ex-Exporter——这一输出关于RabbitMQ通讯系统的衡量标准,包括所发布的信息数量、准备发送的信息数量,以及[MINKxxx]

您可以在 Prometheus 的网站找到官方和社区贡献的出口商的更完整列表。

在本教程中,您将安装、配置和安全 Prometheus 和 Node Exporter 来生成指标,从而更容易监控服务器的性能。

前提条件

在遵循本教程之前,请确保您有:

一个Ubuntu 16.04 Droplet,通过遵循Initial Server Setup with Ubuntu 16.04 教程(https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-16-04)设置,包括一个 sudo 非根用户和防火墙。

  • Nginx 通过遵循 Ubuntu 16.04 上如何安装 Nginx 教程的前两步安装。

步骤1 - 创建服务用户

出于安全目的,我们将首先创建两个新的用户帐户, prometheus 和 ** node_exporter** . 我们将在整个教程中使用这些帐户来隔离 Prometheus 核心文件和目录的所有权。

创建这两个用户,并使用--no-create-home--shell /bin/false选项,以便这些用户无法登录服务器。

1sudo useradd --no-create-home --shell /bin/false prometheus
2sudo useradd --no-create-home --shell /bin/false node_exporter

在我们下载 Prometheus 二进制文件之前,创建必要的目录来存储 Prometheus 文件和数据. 按照标准的 Linux 惯例,我们将为 Prometheus 配置文件创建一个目录在 /etc 和一个目录在 /var/lib 的数据。

1sudo mkdir /etc/prometheus
2sudo mkdir /var/lib/prometheus

现在,将新目录上的用户和组所有权设置为 prometheus 用户。

1sudo chown prometheus:prometheus /etc/prometheus
2sudo chown prometheus:prometheus /var/lib/prometheus

有了我们的用户和目录,我们现在可以下载Prometheus,然后创建最小的配置文件,首次运行Prometheus。

第2步:下载Prometheus

首先,下载并将当前的Prometheus稳定版本卸载到您的家庭目录中,您可以在 Prometheus 下载页面上找到最新的二进制和其支票。

1cd ~
2curl -LO https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz

接下来,使用sha256sum命令来生成下载的文件的支票总和:

1sha256sum prometheus-2.0.0.linux-amd64.tar.gz

将此命令的输出与 Prometheus 下载页面的检查总数进行比较,以确保您的文件既真实,也不损坏。

1[secondary_label Output]
2e12917b25b32980daee0e9cf879d9ec197e2893924bd1574604eb0f550034d46 prometheus-2.0.0.linux-amd64.tar.gz

如果检查总数不匹配,请删除下载的文件,并重复上面的步骤以重新下载文件。

现在,解包下载的档案。

1tar xvf prometheus-2.0.0.linux-amd64.tar.gz

这将创建一个名为prometheus-2.0.0.linux-amd64的目录,其中包含两个二进制文件(prometheuspromtool),控制台console_libraries目录,其中包含 Web 界面文件、许可证、通知和几个示例文件。

将两个二进制码复制到 /usr/local/bin 目录。

1sudo cp prometheus-2.0.0.linux-amd64/prometheus /usr/local/bin/
2sudo cp prometheus-2.0.0.linux-amd64/promtool /usr/local/bin/

将二进制用户和组所有权设置为在步骤 1 中创建的 prometheus 用户。

1sudo chown prometheus:prometheus /usr/local/bin/prometheus
2sudo chown prometheus:prometheus /usr/local/bin/promtool

consolesconsole_libraries目录复制到/etc/prometheus

1sudo cp -r prometheus-2.0.0.linux-amd64/consoles /etc/prometheus
2sudo cp -r prometheus-2.0.0.linux-amd64/console_libraries /etc/prometheus

将目录上的用户和组所有权设置为 prometheus 用户. 使用 -R 旗帜将确保在目录内部的文件上设置所有权。

1sudo chown -R prometheus:prometheus /etc/prometheus/consoles
2sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

最后,从您的主目录中删除剩余的文件,因为它们不再需要。

1rm -rf prometheus-2.0.0.linux-amd64.tar.gz prometheus-2.0.0.linux-amd64

现在Prometheus已安装,我们将创建其配置和服务文件,为其首次运行做准备。

步骤 3 – 配置 Prometheus

/etc/prometheus目录中,使用nano或您最喜欢的文本编辑器创建一个名为prometheus.yml的配置文件。

1sudo nano /etc/prometheus/prometheus.yml

<$>[warning] 警告: Prometheus 配置文件使用了 YAML 格式,该格式严格禁止卡,并且需要两个空格来插入。

全球设置中,定义扫描指标的默认间隔. 请注意,Prometheus 将将这些设置应用于每个出口商,除非单个出口商自己的设置超过全球设置。

1[label Prometheus config file part 1 - /etc/prometheus/prometheus.yml]
2global:
3  scrape_interval: 15s

这个scrape_interval值告诉Prometheus每15秒收集其出口商的指标,这对于大多数出口商来说是足够长的。

现在,将 Prometheus 自己添加到出口商列表中,以使用以下scrape_configs指令:

1[label Prometheus config file part 2 - /etc/prometheus/prometheus.yml]
2...
3scrape_configs:
4  - job_name: 'prometheus'
5    scrape_interval: 5s
6    static_configs:
7      - targets: ['localhost:9090']

Prometheus 使用job_name在查询和图表中标记出口者,所以请确保在这里选择一些描述性。

而且,由于普罗梅斯出口了有关自身的重要数据,您可以使用这些数据来监测性能和调试,我们已经将全球扫描间隔指令从15秒转移到5秒,以便更频繁地更新。

最后,Prometheus使用static_configstargets指令来确定出口商在哪里运行.由于该特定出口商在与Prometheus本身相同的服务器上运行,我们可以使用localhost而不是IP地址,以及默认端口9090

您的配置文件现在应该是这样的:

1[label Prometheus config file - /etc/prometheus/prometheus.yml]
2global:
3  scrape_interval: 15s
4
5scrape_configs:
6  - job_name: 'prometheus'
7    scrape_interval: 5s
8    static_configs:
9      - targets: ['localhost:9090']

保存文件并退出文本编辑器。

现在,将配置文件中的用户和组所有权设置为在步骤 1 中创建的 prometheus 用户。

1sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

配置完成后,我们已经准备好通过首次运行来测试Prometheus。

第4步:奔跑普罗米修斯

将 Prometheus 作为 Prometheus 用户启动,为配置文件和数据目录提供路径。

1sudo -u prometheus /usr/local/bin/prometheus \
2    --config.file /etc/prometheus/prometheus.yml \
3    --storage.tsdb.path /var/lib/prometheus/ \
4    --web.console.templates=/etc/prometheus/consoles \
5    --web.console.libraries=/etc/prometheus/console_libraries

输出包含有关 Prometheus 加载进度、配置文件和相关服务的信息,并确认 Prometheus 正在收听端口 9090。

 1[secondary_label Output]
 2level=info ts=2017-11-17T18:37:27.474530094Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0, branch=HEAD, re
 3vision=0a74f98628a0463dddc90528220c94de5032d1a0)"
 4level=info ts=2017-11-17T18:37:27.474758404Z caller=main.go:216 build_context="(go=go1.9.2, user=root@615b82cb36b6, date=20171108-
 507:11:59)"
 6level=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
 74:24:03 UTC 2017 x86_64 prometheus-update (none))"
 8level=info ts=2017-11-17T18:37:27.483661837Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0
 9:9090
10level=info ts=2017-11-17T18:37:27.489730138Z caller=main.go:314 msg="Starting TSDB"
11level=info ts=2017-11-17T18:37:27.516050288Z caller=targetmanager.go:71 component="target manager" msg="Starting target manager...
12"
13level=info ts=2017-11-17T18:37:27.537629169Z caller=main.go:326 msg="TSDB started"
14level=info ts=2017-11-17T18:37:27.537896721Z caller=main.go:394 msg="Loading configuration file" filename=/etc/prometheus/promethe
15us.yml
16level=info ts=2017-11-17T18:37:27.53890004Z caller=main.go:371 msg="Server is ready to receive requests."

如果您收到错误消息,请双重检查您是否在配置文件中使用了 YAML 语法,然后按照屏幕上的说明来解决问题。

现在,通过按CTRL+C来阻止Prometheus,然后打开一个新的systemd服务文件。

1sudo nano /etc/systemd/system/prometheus.service

服务文件告诉systemd作为prometheus用户运行Prometheus,配置文件位于/etc/prometheus/prometheus.yml目录中,并将其数据存储在/var/lib/prometheus目录中。

将以下内容复制到文件中:

 1[label Prometheus service file - /etc/systemd/system/prometheus.service]
 2[Unit]
 3Description=Prometheus
 4Wants=network-online.target
 5After=network-online.target
 6
 7[Service]
 8User=prometheus
 9Group=prometheus
10Type=simple
11ExecStart=/usr/local/bin/prometheus \
12    --config.file /etc/prometheus/prometheus.yml \
13    --storage.tsdb.path /var/lib/prometheus/ \
14    --web.console.templates=/etc/prometheus/consoles \
15    --web.console.libraries=/etc/prometheus/console_libraries
16
17[Install]
18WantedBy=multi-user.target

最后,保存文件并关闭文本编辑器。

要使用新创建的服务,重新加载systemd

1sudo systemctl daemon-reload

您现在可以使用以下命令启动 Prometheus:

1sudo systemctl start prometheus

要确保 Prometheus 运行,请检查服务的状态。

1sudo systemctl status prometheus

输出告诉您 Prometheus 的状态、主要过程标识符(PID)、内存使用等。

如果服务的状态不活跃,请遵循屏幕上的指示,并重新跟踪上面的步骤来解决问题,然后继续教程。

 1[secondary_label Output]
 2 prometheus.service - Prometheus
 3   Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
 4   Active: active (running) since Fri 2017-07-21 11:40:40 UTC; 3s ago
 5 Main PID: 2104 (prometheus)
 6    Tasks: 7
 7   Memory: 13.8M
 8      CPU: 470ms
 9   CGroup: /system.slice/prometheus.service
10...

当你准备好继续时,按Q来退出状态命令。

最后,允许服务在 boot 上启动。

1sudo systemctl enable prometheus

现在Prometheus正在运行,我们可以安装一个额外的导出器来生成我们服务器的资源指标。

第5步:下载 Node Exporter

为了将 Prometheus 扩展到仅仅对其自己的指标之外,我们将安装一个名为 Node Exporter 的额外导出器。

首先,请将当前的稳定版本的Node Exporter下载到您的主目录中,您可以在Prometheus下载页面(https://prometheus.io/download/)上找到最新的二进制和其支票。

1cd ~
2curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz

使用「sha256sum」命令生成下载的文件的支票总和:

1sha256sum node_exporter-0.15.1.linux-amd64.tar.gz

检查下载的文件的完整性,与下载页面上的检查总和进行比较。

1[secondary_label Output]
27ffb3773abb71dd2b2119c5f6a7a0dbca0cff34b24b2ced9e01d9897df61a127 node_exporter-0.15.1.linux-amd64.tar.gz

如果检查总数不匹配,请删除下载的文件,并重复上面的步骤。

现在,解包下载的档案。

1tar 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 用户。

1sudo cp node_exporter-0.15.1.linux-amd64/node_exporter /usr/local/bin
2sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

最后,从您的主目录中删除剩余的文件,因为它们不再需要。

1rm -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 服务文件。

1sudo nano /etc/systemd/system/node_exporter.service

此服务文件告知您的系统将 Node Exporter 运行为 node_exporter 用户,默认集合器集合器已启用。

将以下内容复制到服务文件中:

 1[label Node Exporter service file - /etc/systemd/system/node_exporter.service]
 2[Unit]
 3Description=Node Exporter
 4Wants=network-online.target
 5After=network-online.target
 6
 7[Service]
 8User=node_exporter
 9Group=node_exporter
10Type=simple
11ExecStart=/usr/local/bin/node_exporter
12
13[Install]
14WantedBy=multi-user.target

收集器定义 Node Exporter 将生成哪些指标. 您可以在 Node Exporter README 文件中看到 Node Exporter 完整的收集器列表。

如果您需要超出默认收藏家列表,您可以使用--collectors.enabled旗,例如:

1[label Node Exporter service file part - /etc/systemd/system/node_exporter.service]
2...
3ExecStart=/usr/local/bin/node_exporter --collectors.enabled meminfo,loadavg,filesystem
4...

上面的例子会告诉 Node Exporter 仅使用meminfo,loadavgfilesystem收集器生成指标。

保存文件并关闭文本编辑器。

最后,重新加载systemd以使用新创建的服务。

1sudo systemctl daemon-reload

您现在可以使用以下命令运行 Node Exporter:

1sudo systemctl start node_exporter

检查 Node Exporter 是否使用状态命令正确运行。

1sudo systemctl status node_exporter

与以前一样,此输出会告诉您 Node Exporter 的状态、主流程识别符(PID)、内存使用率等等。

如果服务的状态不活跃,请遵循屏幕上的消息,并重新跟踪前面的步骤以解决问题,然后继续。

1[secondary_label Output]
2 node_exporter.service - Node Exporter
3   Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled)
4   Active: active (running) since Fri 2017-07-21 11:44:46 UTC; 5s ago
5 Main PID: 2161 (node_exporter)
6    Tasks: 3
7   Memory: 1.4M
8      CPU: 11ms
9   CGroup: /system.slice/node_exporter.service

最后,启用 Node Exporter 启动。

1sudo systemctl enable node_exporter

随着 Node Exporter 完全配置并按预期运行,我们会告诉 Prometheus 开始扫描新指标。

步骤 7 — 配置 Prometheus 来扫描节点出口器

由于Prometheus只对其配置文件的scrape_configs部分中定义的导出器进行扫描,所以我们需要为Node Exporter添加一个条目,就像我们为Prometheus自己做的那样。

打开配置文件。

1sudo nano /etc/prometheus/prometheus.yml

scrape_configs块的末尾,添加一个名为node_exporter的新条目。

1[label Prometheus config file part 1 - /etc/prometheus/prometheus.yml]
2...
3  - job_name: 'node_exporter'
4    scrape_interval: 5s
5    static_configs:
6      - targets: ['localhost:9100']

由于这个导出器也在 Prometheus 服务器上运行,所以我们可以使用 localhost 代替 IP 地址,再加上 Node Exporter 的默认端口 `9100。

您的整个配置文件应该是这样的:

 1[label Prometheus config file - /etc/prometheus/prometheus.yml]
 2global:
 3  scrape_interval: 15s
 4
 5scrape_configs:
 6  - job_name: 'prometheus'
 7    scrape_interval: 5s
 8    static_configs:
 9      - targets: ['localhost:9090']
10  - job_name: 'node_exporter'
11    scrape_interval: 5s
12    static_configs:
13      - targets: ['localhost:9100']

保存文件,并在您准备继续时离开文本编辑器。

最后,重新启动 Prometheus 以实现更改。

1sudo systemctl restart prometheus

再次,通过状态命令检查一切是否正常运行。

1sudo systemctl status prometheus

如果服务的状态未设置为活跃,请遵循屏幕上的指示,然后在继续之前重新跟踪之前的步骤。

1[secondary_label Output]
2 prometheus.service - Prometheus
3   Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
4   Active: active (running) since Fri 2017-07-21 11:46:39 UTC; 6s ago
5 Main PID: 2219 (prometheus)
6    Tasks: 6
7   Memory: 19.9M
8      CPU: 433ms
9   CGroup: /system.slice/prometheus.service

作为连接到 Web 接口之前的最后预防措施,我们将通过基本的 HTTP 身份验证来增强我们的安装的安全性,以确保未经授权的用户无法访问我们的指标。

第8步:保护普罗米修斯

Prometheus 不包括内置身份验证或任何其他一般用途的安全机制. 一方面,这意味着您正在获得一个具有更少配置限制的高度灵活的系统;另一方面,这意味着您可以确保您的指标和整体设置是足够安全的。

为了简化,我们将使用 Nginx 将基本的 HTTP 身份验证添加到我们的安装中,Prometheus 和其首选的数据可视化工具 Grafana 都完全支持。

首先安装apache2-utils,这将为您提供用于生成密码文件的htpasswd实用程序。

1sudo apt-get update
2sudo apt-get install apache2-utils

现在,创建一个密码文件,告诉htpasswd,您想存储该文件在哪里,以及您想使用哪些用户名进行身份验证。

<$>[注] 注: htpasswd 将提示您输入并重新确认您想与此用户关联的密码。

1sudo htpasswd -c /etc/nginx/.htpasswd sammy

此命令的结果是新创建的名为.htpasswd的文件,位于/etc/nginx目录中,包含您输入的用户名和密码的哈希版本。

接下来,配置 Nginx 以使用新创建的密码。

首先,创建默认 Nginx 配置文件的 Prometheus 特定的副本,以便在您遇到问题时稍后返回默认文件。

1sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus

然后打开新的配置文件。

1sudo nano /etc/nginx/sites-available/prometheus

服务器块下找到位置/块,它应该看起来像:

1[label /etc/nginx/sites-available/default]
2...
3    location / {
4    	try_files $uri $uri/ =404;
5    }
6...

由于我们将向 Prometheus 传输所有流量,请用以下内容替换试用_文件指令:

 1[label /etc/nginx/sites-available/prometheus]
 2...
 3    location / {
 4    	auth_basic "Prometheus server authentication";
 5    	auth_basic_user_file /etc/nginx/.htpasswd;
 6    	proxy_pass http://localhost:9090;
 7    	proxy_http_version 1.1;
 8    	proxy_set_header Upgrade $http_upgrade;
 9    	proxy_set_header Connection 'upgrade';
10    	proxy_set_header Host $host;
11    	proxy_cache_bypass $http_upgrade;
12    }
13...

这些设置确保用户必须在每个新会话开始时进行身份验证,此外,反向代理将将此块处理的所有请求发送给Prometheus。

当您完成更改后,保存文件并关闭文本编辑器。

现在,通过在/etc/nginx/sites-enabled目录中删除链接来禁用默认的 Nginx 配置文件,并通过创建链接来激活新的配置文件。

1sudo rm /etc/nginx/sites-enabled/default
2sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/

在重新启动 Nginx 之前,请使用以下命令检查配置错误:

1sudo nginx -t

输出应表示语法正常测试成功 如果您收到错误消息,请按照屏幕上的指示来修复问题,然后继续下一步。

1[secondary_label Output of Nginx configuration tests]
2nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
3nginx: configuration file /etc/nginx/nginx.conf test is successful

然后,重新加载 Nginx 以整合所有更改。

1sudo systemctl reload nginx

检查 Nginx 是否正在运行。

1sudo systemctl status nginx

如果输出不表示服务的状态是活跃,请遵循屏幕上的消息,然后重新跟踪上面的步骤以解决问题,然后继续。

 1[label Output]
 2 nginx.service - A high performance web server and a reverse proxy server
 3   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
 4   Active: active (running) since Mon 2017-07-31 21:20:57 UTC; 12min ago
 5  Process: 4302 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s r
 6 Main PID: 3053 (nginx)
 7    Tasks: 2
 8   Memory: 3.6M
 9      CPU: 56ms
10   CGroup: /system.slice/nginx.service

此时,我们有一个功能齐全且安全的Prometheus服务器,所以我们可以登录Web界面,开始查看指标。

第9步:测试普罗米修斯

Prometheus 提供了一个基本的 Web 界面,用于监控自身和其导出者的状态,执行查询和生成图表,但由于界面的简单性,Prometheus 团队建议(https://prometheus.io/docs/visualization/browser/)(https://prometheus.io/docs/visualization/grafana/)安装和使用 Grafana)比测试和调试更为复杂。

在本教程中,我们将使用内置的 Web 界面来确保 Prometheus 和 Node Exporter 运行,我们还将看看简单的查询和图表。

首先,请将您的浏览器指向http://your_server_ip

在 HTTP 身份验证对话框中,输入您在步骤 8 中选择的用户名和密码。

Prometheus Authentication

一旦登录,你会看到 Expression Browser ,在那里你可以执行和可视化自定义查询。

Prometheus Dashboard Welcome

在执行任何表达式之前,先检查 Prometheus 和 Node Explorer 的状态,首先点击屏幕顶部的 **状态 ** 菜单,然后点击 ** 目标 ** 菜单选项。

Prometheus Dashboard Targets

如果任何一个导出器都丢失或显示错误消息,请使用以下命令检查服务的状态:

1sudo systemctl status prometheus
1sudo systemctl status node_exporter

两个服务的输出应报告状态为活跃:活跃(运行)。如果一个服务根本不活跃或活跃,但仍然不正常工作,请遵循屏幕上的指示,并在继续之前重新追踪上面的步骤。

接下来,为了确保导出者正确工作,我们将对 Node Exporter 执行几个表达式。

首先,点击屏幕顶部的 ** 图表 ** 菜单以返回 ** 表达式浏览器 ** 。

Prometheus Dashboard Graph

表达式字段中,键入node_memory_MemAvailable,然后按执行按钮,以更新您的服务器所拥有的内存量。

Prometheus Dashboard MemTotal

默认情况下,Node Exporter 会以字节报告此数值. 要转换为 Megabytes,我们将使用数学操作员以 1024 倍进行分割。

表达式字段中,输入node_memory_MemAvailable/1024/1024,然后按执行按钮。

Prometheus Dashboard MemTotal MB

现在 ** 控制台** 选项卡将显示结果以 Megabytes。

如果您想验证结果,请从您的终端执行免费命令(-h旗表示免费以人读取的格式进行报告,给我们 Megabyte 中的金额)。

1free -h

此输出包含有关内存使用的详细信息,包括在 可用 列中显示的可用内存。

1[secondary_label Output]
2              total used free shared buff/cache available
3Mem:           488M 144M 17M 3.7M 326M 324M
4Swap:            0B 0B 0B

除了基本操作员外,Prometheus 查询语言还为汇总结果提供了许多功能。

表达式字段中,键入avg_over_time(node_memory_MemAvailable[5m])/1024/1024并点击执行按钮。

Prometheus Average Memory

现在,单击 ** 图表** 选项卡以将执行表达式显示为图表而不是文本。

Prometheus Graph Average Memory

最后,在这个选项卡上,将鼠标移动到图表上,以获取图表的 X 和 Y 轴的任何特定点的额外细节。

如果您想了解有关 Prometheus 内置 Web 界面中的表达式创建的更多信息,请参阅官方文档的 Querying Prometheus部分。

结论

在本教程中,我们下载,配置,安全,并测试了一个完整的Prometheus安装与一个额外的出口器。

如果您想了解更多关于 Prometheus 如何在帽子下工作的信息,请查看 Ubuntu 14.04 上如何查询 Prometheus(https://andsky.com/tech/tutorials/how-to-query-prometheus-on-ubuntu-14-04-part-1# step-2-%E2%80%94-installing-the-demo-instances)。

要查看 Prometheus 还能做什么,请访问 官方 Prometheus 文档

此外,要了解有关普罗米修斯扩展的更多信息,请参阅 可用的出口商列表以及 官方Grafana网站

Published At
Categories with 技术
comments powered by Disqus