Prometheus+Grafana监控服务器

1、概述

这套组合是目前开源监控领域的主流方案,Prometheus 负责指标采集、存储和查询,Grafana 负责将指标可视化成炫酷的仪表盘,搭配node_exporter可实现服务器(CPU、内存、磁盘、网络、负载等)核心指标的全维度监控,全程基于 Linux 环境(CentOS/Debian 通用),步骤清晰可直接落地。

2、安装

下载

node_exporter:https://github.com/prometheus/node_exporter/releases(服务器指标采集器,核心)

复制代码
# 创建统一安装目录
mkdir -p /opt/monitor && cd /opt/monitor
# 下载node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz

安装

node_exporter是 Prometheus 官方的服务器指标采集器,会暴露9100端口,提供 CPU、内存、磁盘 I/O、网络、系统负载、磁盘使用率等全量服务器指标 ,每台需要监控的服务器都必须部署。

解压与部署

复制代码
cd /opt/monitor
tar -zxvf node_exporter-1.8.2.linux-amd64.tar.gz
mv node_exporter-1.8.2.linux-amd64 node_exporter
# 赋予执行权限
chmod +x /opt/monitor/node_exporter/node_exporter

制作系统服务(开机自启、后台运行)

复制代码
vim /usr/lib/systemd/system/node_exporter.service

写入以下内容:

复制代码
[Unit]
Description=Node Exporter
Documentation=https://prometheus.io/docs/guides/node-exporter/
After=network.target

[Service]
Type=simple
ExecStart=/opt/monitor/node_exporter/node_exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动并设置开机自启

复制代码
systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter
# 验证是否启动成功(查看9100端口)
netstat -tnlp | grep 9100
# 验证指标是否暴露(返回大量指标则成功)
curl http://localhost:9100/metrics

3、配置 Prometheus(指标存储 / 查询)

Prometheus 是监控核心,负责从node_exporter拉取指标、将指标存储在本地时序数据库中,并提供PromQL查询语言和9090端口的 Web 界面,仅需部署一台即可监控多台服务器。

配置 Prometheus(核心:配置采集目标)

修改 Prometheus 主配置文件prometheus.yml,添加node_exporter的采集目标(每台监控服务器的 IP:9100):

复制代码
vim /opt/monitor/prometheus/prometheus.yml

核心修改scrape_configs节点,完整配置如下(替换targets中的 IP 为实际服务器 IP,多个 IP 用逗号分隔):

复制代码
global:
  scrape_interval: 15s  # 采集指标的间隔,默认15秒
  evaluation_interval: 15s  # 规则评估间隔

alerting:
  alertmanagers:
    - static_configs:
        - targets: []

rule_files: []

scrape_configs:
  # 监控Prometheus自身
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  # 监控服务器(node_exporter),自定义job名称
  - job_name: "linux-server"
    static_configs:
      - targets: ["192.168.1.100:9100", "192.168.1.101:9100"]  # 替换为实际的服务器IP:9100

4、配置Grafana(指标可视化)

Grafana 是专业的可视化工具,支持 Prometheus、InfluxDB 等多种数据源,可通过预制仪表盘一键生成服务器监控大屏,无需手动配置图表,操作简单。

导入预制仪表盘(一键生成服务器监控大屏)

Grafana 社区有大量官方预制的服务器监控仪表盘 ,无需手动配置,导入仪表盘 ID 即可直接使用,最推荐的是 Node Exporter 官方仪表盘 ID:1860(覆盖所有服务器核心指标,可视化效果最佳)。

步骤:

  1. 点击左侧【Dashboards】->【New】->【Import】;
  2. 在【Import via grafana.com】中输入1860,点击【Load】;
  3. 选择已添加的 Prometheus 数据源,点击【Import】;
  4. 导入成功后,直接进入监控大屏,可看到CPU、内存、磁盘、网络、负载、磁盘 I/O、进程数等全维度指标的可视化图表。
相关推荐
东风微鸣7 小时前
把 Tailscale 接进 Prometheus 监控
java·数据库·prometheus
Kendra9198 小时前
运维监控平台(Prometheus + Grafana)部署与维护
运维·grafana·prometheus
Dovis(誓平步青云)12 小时前
一年1956亿行:智能电表场景下的时序数据存储实践
运维·前端·自动化·音视频·prometheus
空空dream1 天前
06 | Prometheus打通FastAPI云原生数据采集
云原生·prometheus·fastapi
Dovis(誓平步青云)2 天前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus
龙腾-虎跃6 天前
Docker 一键启动服务合集:Redis、MySQL、Kafka、MinIO、Prometheus 等(网盘转存防失效)
redis·mysql·docker·kafka·prometheus·小龙虾·miniio
Duang007_6 天前
生产可观测性:从“系统慢“到“根因“的完整链路(Go / TypeScript)
后端·python·golang·typescript·prometheus
JWASX6 天前
go 学习 - prometheus 指标学习
学习·golang·prometheus
JWASX7 天前
go 学习 - prometheus 指标协程池监控
学习·golang·prometheus
爱琴孩8 天前
记一次Prometheus的WAL异常,导致服务器磁盘占用过高
prometheus·wal