Prometheus实战教程 03 - 主机监控
📚 我的专栏|持续更新中
🐍 Vben Admin框架实战(Python Flask后端)
🐹 Golang 运维开发实战手册
🐧 Linux性能优化原理和实战
💬 Kafka原理与运维实战
🚀 Linux 运维进阶必备【案例分享】
目录
- 📚 我的专栏|持续更新中
- 环境准备
- 部署 Prometheus Server
- 部署 Grafana
- 下载 grafana
- 创建 grafana Service文件
- 配置 grafana 并启动
- 访问grafana
- 配置 grafana 新增 Prometheus 数据源
- 部署 node_exporter
- 下载node_exporter安装包文件
- 创建node_exporter Service 文件
- Prometheus 添加主机监控目标
- Prometheus 加载 prometheus.yml 三种方式
- 通过信号量触发配置重载(推荐)
- 通过 HTTP API 触发配置重载(v2.0+ 支持)
- 直接重启Prometheus 服务
- 查看Prometheus Targets(验证监控是否成功)
- Grafana 添加 主机监控模板
- 小结
Prometheus 进行主机监控主要通过部署 Node Exporter 来采集系统级指标,并将其与 Prometheus Server 进行配置连接,最后可通过 Grafana 进行数据可视化。
环境准备
准备两台Centos7 Linux主机(虚拟机)可以通过Vmware或者Virtual Box创建。
| IP | 角色 |
|---|---|
| 192.168.37.20 | Prometheus Server |
| 192.168.37.21 | node_exporter |
部署 Prometheus Server
具体步骤参考我之前这篇文章:
二进制方式部署 Prometheus Server
部署 Grafana
下载 grafana
打开网址:
https://grafana.com/grafana/download/9.5.21?pg=oss-graf&plcmt=hero-btn-1

mkdir -p /data/middleware && cd /data/middleware# 下载文件
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.5.21.linux-amd64.tar.gz解压文件
tar -zxvf grafana-enterprise-9.5.21.linux-amd64.tar.gz
创建 grafana Service文件
vim /etc/systemd/system/grafana.service
[Unit]
Description=Grafana instance
Documentation=https://grafana.com/docs/
Wants=network-online.target
After=network-online.target[Service]
User=grafana
Group=grafana
Type=simple
ExecStart=/data/middleware/grafana-v9.5.21/bin/grafana-server -config /data/middleware/grafana-v9.5.21/conf/custom.ini
Restart=on-failure
WorkingDirectory=/data/middleware/grafana-v9.5.21
PrivateTmp=true[Install]
WantedBy=multi-user.target
配置 grafana 并启动
默认配置可直接启动,如需自定义端口、数据存储路径等,修改/data/middleware/grafana-v9.5.21/conf/defaults.ini
# 备份原来的 defaults.ini
cp defaults.ini custom.ini# 修改
端口修改:找到http_port = 3000,改为自定义端口(如 8080)。
数据存储:找到data = ${GF_PATHS_HOME}/data,指定自定义数据目录(需提前创建并授权)。
日志路径:找到logs = ${GF_PATHS_HOME}/logs,指定自定义日志目录。

启动 grafana 服务:
systemctl enable grafana .service
systemctl start grafana .service
systemctl status grafana .service
访问grafana
Windows浏览器访问 grafana服务地址: http://192.168.37.20:3000/

通过默认的账户密码: admin/admin 访问。
登录完成后,会提示修改默认密码,也可以选中忽略,这里应该设置为安全级别高的密码。
配置 grafana 新增 Prometheus 数据源
- 登录 Grafana 后,点击左侧菜单 Administration(齿轮图标)→ Data Sources。
- 点击 Add data source,选择 Prometheus。
- 在配置页填写:
- Name:自定义名称(如 Prometheus)
- URL:http://192.168.37.20:9090(具体填写自己的Prometheus地址)
- 点击 Save & test,显示 Data source is working 即成功。
部署 node_exporter
下载node_exporter安装包文件
下载地址:https://prometheus.io/download/#node_exporter
github.com仓库地址:https://github.com/prometheus/node_exporter

下载文件,解压
# 我用的Centos7操作系统
mkdir -p /data/monitor && cd /data/monitor/
curl -OL https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz# 解压文件
tar xvf node_exporter-1.10.2.linux-amd64.tar.gz
# 重命名
mv node_exporter-1.10.2.linux-amd64/ node_exporter
创建node_exporter Service 文件
创建 node_exporter 启动脚本:
$ vim /usr/lib/systemd/system/node_exporter.service添加如下内容:[Unit]
Description=node_export
Documentation=https://github.com/prometheus/node_exporter
After=network.target[Service]
Type=simple
ExecStart=/data/monitor/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动 node_exporter 服务:
systemctl enable node_exporter.service
systemctl start node_exporter.service
systemctl status node_exporter.service
ss -tnl | grep 9100
打开Window主机浏览器,输入地址:http://192.168.37.21:9100/

访问: http://192.168.37.21:9100/metrics

Prometheus 添加主机监控目标
cd /data/middleware/prometheus-3.5.0.linux-amd64
vim prometheus.yml# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]# The label name is added as a label `label_name=<label_value>` to any timeseries scraped from this config.labels:app: "prometheus"# 新添加的对其它node节点抓取数据- job_name: "node_exporter"static_configs:- targets: ["192.168.37.21:9100"]
Prometheus 加载 prometheus.yml 三种方式
Prometheus 中,加载 prometheus.yml 配置主要有三张种常见方式。
- 通过信号量触发配置重载(推荐)
- 通过 HTTP API 触发配置重载(v2.0+ 支持)
- 重启Prometheus服务
通过信号量触发配置重载(推荐)
Prometheus 支持通过发送 SIGHUP 信号触发配置热加载,无需重启服务,步骤如下:
执行以下命令找到 Prometheus 进程的 PID:
ps aux | grep prometheus
向该进程发送 SIGHUP 信号,触发配置重新加载:
kill -HUP <prometheus_pid>
通过 HTTP API 触发配置重载(v2.0+ 支持)
Prometheus 提供了 HTTP 接口用于重载配置,需确保启动时开启了 API 服务(默认开启,监听在 --web.listen-address 配置的端口,通常为 9090):
调用 reload 接口
curl -X POST http://<prometheus_ip>:9090/-/reload
验证结果
- 若返回空响应(状态码 200 OK),表示重载成功。
- Lifecycle API is not enabled. 提示需要启动命令加参数 --web.enable-lifecycle
直接重启Prometheus 服务
生产环境不推荐此方式。
systemctl restart prometheus
查看Prometheus Targets(验证监控是否成功)
访问Prometheus页面 http://192.168.37.20:9090/targets

现在我们主机已经添加到Prometheus Targets中了,并且State 是 up 状态,说明主机目前运行中。
Grafana 添加 主机监控模板
推荐使用社区成熟模板(ID:1860,Node Exporter 全面监控模板):
- 点击左侧菜单 Dashboards → + Import。
- 在 Import via grafana.com 输入模板 ID:1860,点击 Load。
- 在配置页:
- Name:自定义面板名称(如 Host Monitoring)
- Prometheus:选择已配置的 Prometheus 数据源
- 点击 Import,完成后即可看到主机监控面板(包含 CPU、内存、磁盘、网络等指标)。


小结
今天我们学习了以下内容:
- 基于二进制方式部署Prometheus
- 基于二进制方式部署Grafana
- 部署node_exporter 对主机添加监控。
- Grafana 导入 主机监控模板
- 了解到 Prometheus 加载 prometheus.yml 变更的 三种常用方式
