Prometheus Grafana服务器监控搭建教程

为什么要用 Prometheus 和 Grafana 监控服务器

很多站长或运维人员都遇到过这样的困扰:服务器负载突然飙升,但等接到报警时业务已经受影响。Prometheus Grafana服务器监控是目前非常流行的开源组合,Prometheus 负责采集和存储指标数据,Grafana 负责把数据变成直观的图表和仪表盘。
这套方案免费、灵活,而且社区生态成熟,适合从单台服务器到集群的监控需求。
本文会带着你从零开始,在 Linux 服务器上完整跑通这套监控系统。

安装前需要准备的几样东西

动手之前,请确认手头有一台 Linux 服务器(CentOS 7/8 或 Ubuntu 20.04+ 都行),并且你有 root 或 sudo 权限
此外,需要服务器能正常访问外网,以便下载安装包。
建议先更新系统包:

# CentOS
sudo yum update -y

# Ubuntu
sudo apt update && sudo apt upgrade -y

以后的所有操作都在终端里完成,不需要图形面板。

一步步安装 Prometheus

Prometheus 官方提供二进制包,安装非常简单。
我们以最新稳定版为例(实际版本请到官网查看):

# 下载 Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz

tar -xzf prometheus-2.47.0.linux-amd64.tar.gz
sudo mv prometheus-2.47.0.linux-amd64 /opt/prometheus

创建系统用户(安全考虑不要用 root 运行):

sudo useradd --no-create-home --shell /bin/false prometheus
sudo chown -R prometheus:prometheus /opt/prometheus

创建 systemd 服务文件 /etc/systemd/system/prometheus.service,内容如下:

[Unit]
Description=Prometheus
After=network.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/opt/prometheus/prometheus \
  --config.file=/opt/prometheus/prometheus.yml \
  --storage.tsdb.path=/opt/prometheus/data \
  --web.console.templates=/opt/prometheus/consoles \
  --web.console.libraries=/opt/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

启动并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

现在访问 http://你的服务器IP:9090,如果看到 Prometheus 的 Web 界面,说明安装成功。

安装 Grafana 并连接 Prometheus

Grafana 同样提供二进制包,推荐用官方仓库安装(以 CentOS 为例):

sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.3-1.x86_64.rpm
# 或者直接用 yum 安装:sudo yum install -y grafana

启动 Grafana:

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

默认端口是 3000,访问 http://你的服务器IP:3000,初始账号密码都是 admin,登录后按提示修改密码。

下一步需要添加 Prometheus 作为数据源:

  1. 在 Grafana 左侧菜单点击 Configuration(齿轮图标)→ Data Sources
  2. 点击 Add data source,选择 Prometheus
  3. URL 字段填写 http://localhost:9090(如果 Prometheus 和 Grafana 在同一台服务器)。
  4. 点击 Save & Test,如果出现绿色提示“Data source is working”,说明连接成功。

配置服务器仪表盘(Node Exporter)

Prometheus 自身只能监控自身状态,要监控服务器的 CPU、内存、磁盘等指标,需要安装 Node Exporter

# 下载并解压
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

tar -xzf node_exporter-1.6.1.linux-amd64.tar.gz
sudo mv node_exporter-1.6.1.linux-amd64 /opt/node_exporter

创建 systemd 服务 /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=nobody
Group=nogroup
Type=simple
ExecStart=/opt/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

启动:

sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

现在 Prometheus 需要知道去抓取 Node Exporter 的数据。
编辑 Prometheus 配置文件 /opt/prometheus/prometheus.yml,在 scrape_configs 下添加:

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

重启 Prometheus 生效:

sudo systemctl restart prometheus

回到 Grafana,导入官方 Node Exporter 仪表盘:左侧 DashboardsImport,输入仪表盘 ID 1860(来自 grafana.com),点击 Load,选择刚才创建的 Prometheus 数据源,然后 Import。
稍等片刻你就能看到服务器 CPU、内存、磁盘、网络等实时图表。

常见问题与避坑

1. 端口无法访问?
检查防火墙是否放行 9090(Prometheus)、3000(Grafana)、9100(Node Exporter)。CentOS 示例:

sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --add-port=9100/tcp --permanent
sudo firewall-cmd --reload

2. Prometheus 启动失败常见原因:

  • 配置文件格式错误:仔细检查 yaml 缩进,Prometheus 对缩进非常敏感。
  • 数据目录权限不对:确保 /opt/prometheus/data 属主是 prometheus 用户。

3. Grafana 导入仪表盘后无数据?

  • 确认 Node Exporter 正在运行:curl http://localhost:9100/metrics 应该返回大量指标。
  • 检查 Prometheus 的 Targets 页面(http://IP:9090/targets),看看 node 任务状态是否为 UP。

4. 监控多台服务器?
在每台被监控机器上安装 Node Exporter,然后在 Prometheus 配置文件的 targets 里添加多个 IP 地址即可。

验证监控是否生效

执行一次压力测试(比如 stress --cpu 4 --timeout 60),然后回到 Grafana 仪表盘,观察 CPU 使用率曲线是否实时上升。
你也可以查看 Prometheus 的 Graph 页面,输入 node_cpu_seconds_total 看看数据是否正常。
整个Prometheus Grafana服务器监控系统就算搭建完成了,后续你可以根据业务需求增加更多 Exporter(比如 MySQL Exporter、Nginx Exporter),或者配置告警规则。

如果你在搭建过程中遇到具体报错,欢迎留言交流,我会根据错误信息帮你排查。

分享到:
上一篇
Jenkins CI/CD自动化建站发布
下一篇
用ELK日志分析跨境访问记录:从零搭建到实战排查
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意