PostgreSQL 教程: 使用 Node Exporter 监控 Linux 服务器

四月 23, 2024

摘要:在本教程中,您将在 Prometheus 中设置 Node Exporter,来监控 PostgreSQL 服务器。

Prometheus 的 Node Exporter 公开了各种与硬件和内核相关的指标。

在本指南中,您将:

  • localhost上启动一个 Node Exporter
  • localhost上启动一个 Prometheus 实例,配置该实例从正在运行的 Node Exporter 中抓取指标

注意:虽然 Prometheus 的 Node Exporter 只适用于类 Unix 系统,但 Windows Exporter 为 Windows 提供了类似的能力。

安装和运行 Node Exporter

Prometheus 的 Node Exporter 是一个单一的静态二进制文件,您可以通过压缩包进行安装。从 Prometheus 下载页面下载后,提取和运行它:

# NOTE: Replace the URL with one from the above mentioned "downloads" page.
# <VERSION>, <OS>, and <ARCH> are placeholders.
wget https://github.com/prometheus/node_exporter/releases/download/v<VERSION>/node_exporter-<VERSION>.<OS>-<ARCH>.tar.gz
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
./node_exporter

您应该会看到如下输出,表示 Node Exporter 现在正在运行,并在端口 9100 上公开指标:

INFO[0000] Starting node_exporter (version=0.16.0, branch=HEAD, revision=d42bd70f4363dced6b77d8fc311ea57b63387e4f)  source="node_exporter.go:82"
INFO[0000] Build context (go=go1.9.6, user=root@a67a9bc13a69, date=20180515-15:53:28)  source="node_exporter.go:83"
INFO[0000] Enabled collectors:                           source="node_exporter.go:90"
INFO[0000]  - boottime                                   source="node_exporter.go:97"
...
INFO[0000] Listening on :9100                            source="node_exporter.go:111"

Node Exporter 指标

安装和运行 Node Exporter 后,您可以通过访问/metrics端点,来验证是否正在提供指标信息:

curl http://localhost:9100/metrics

您应该会看到如下所示的输出:

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 3.8996e-05
go_gc_duration_seconds{quantile="0.25"} 4.5926e-05
go_gc_duration_seconds{quantile="0.5"} 5.846e-05
# etc.

成功了!Node Exporter 现在公开了 Prometheus 可以抓取的指标,在输出的下方还包括了各种系统指标(前缀为node_)。要查看这些指标(随同帮助和类型信息),请执行以下操作:

curl http://localhost:9100/metrics | grep "node_"

配置 Prometheus 实例

本地运行的 Prometheus 实例需要正确配置,才能访问 Node Exporter 指标。下面的prometheus.yml示例配置文件,会告诉 Prometheus 实例通过localhost:9100从 Node Exporter 中进行抓取,以及抓取的频率:

global:
  scrape_interval: 15s

scrape_configs:
- job_name: node
  static_configs:
  - targets: ['localhost:9100']

要安装 Prometheus,请下载适用于您的平台的最新版本,并解压缩:

wget https://github.com/prometheus/prometheus/releases/download/v*/prometheus-*.*-amd64.tar.gz
tar xvf prometheus-*.*-amd64.tar.gz
cd prometheus-*.*

一旦安装完 Prometheus,您就可以使用--config.file选项指向您上面创建的 Prometheus 配置,来启动它:

./prometheus --config.file=./prometheus.yml

使用 Prometheus 表达式浏览器探索 Node Exporter 指标

现在 Prometheus 正在从一个运行的 Node Exporter 实例中抓取指标,您可以使用 Prometheus 的 UI(又名表达式浏览器)探索这些指标。在浏览器中导航到localhost:9090/graph,然后使用页面顶部的主表达式栏输入表达式。表达式栏如下所示:

Prometheus expressions browser

特定于 Node Exporter 的指标以node_为前缀,包括像node_cpu_seconds_totalnode_exporter_build_info这样的指标。

点击下面的链接,查看一些示例指标:

指标 意义
rate(node_cpu_seconds_total{mode="system"}[1m]) 最近一分钟内,在系统模式下每秒平均花费的 CPU 时间(以秒为单位)
node_filesystem_avail_bytes 可供非 root 用户使用的文件系统空间(以字节为单位)
rate(node_network_receive_bytes_total[1m]) 过去一分钟,每秒接收的平均网络流量(以字节为单位)

了解更多

Prometheus 中的 Linux 监控指标

PostgreSQL 监控