首页服务器教程Prometheus、Grafana监控小型网站服务器完整搭建教程

Prometheus、Grafana监控小型网站服务器完整搭建教程

2026-09-21 21

一、部署目标

本文记录在Ubuntu服务器上部署Prometheus、Node Exporter和Grafana的完整过程。

部署完成后,可以通过Grafana查看服务器的CPU、内存、磁盘和网络等基础资源指标。

最终实现以下效果:

  • Prometheus能够正常采集指标。
  • Node Exporter能够正常暴露Linux主机指标。
  • Grafana可以正常登录。
  • Grafana已经配置Prometheus数据源。
  • Grafana已经导入服务器监控看板。

二、环境说明

本次使用的服务器系统和软件版本如下:

操作系统:Ubuntu 24.04.1 LTS
Prometheus:3.5.0
Node Exporter:1.9.1
Grafana:13.1.1

测试环境使用了公网端口映射:

Grafana:3000 → 56121
Prometheus:9090 → 36206
Node Exporter:9100 → 38912

上述端口映射仅用于测试、截图和远程验证。

正式环境不建议直接将Prometheus和Node Exporter端口暴露在公网。Prometheus通常只需要允许Grafana或内部管理网络访问,Node Exporter则只需要允许Prometheus服务器访问。

三、三个组件的作用

Prometheus

Prometheus负责按照设定的时间间隔采集指标,并保存时序数据。

Node Exporter

Node Exporter负责采集Linux主机指标,包括:

  • CPU。
  • 内存。
  • 磁盘。
  • 网络。
  • 文件系统。
  • 系统负载。

Grafana

Grafana负责连接Prometheus,并将Prometheus中的指标转换成图表和监控看板。

整体监控链路如下:

Linux服务器 → Node Exporter → Prometheus → Grafana

Node Exporter先暴露主机指标,Prometheus负责采集和保存,Grafana再从Prometheus查询数据并进行展示。

四、安装方式说明

本次安装过程中,从GitHub直接下载Prometheus和Node Exporter的速度较慢,因此采用本地下载安装包,再上传到服务器的方式。

这种方式有以下优点:

  • 固定软件版本,便于复现。
  • 减少服务器临时网络波动的影响。
  • 可以提前检查安装包是否完整。
  • 适合批量部署多台服务器。

Grafana使用.deb安装包部署。如果服务器下载速度较慢,也可以在本地下载对应版本,再上传到Ubuntu服务器安装。

上传安装包前,应确认:

  • 软件版本与系统架构匹配。
  • 下载文件完整。
  • 安装包来源可靠。
  • 服务器剩余磁盘空间充足。

五、验证服务启动状态

安装完成后,可以使用以下命令检查三个服务:

sudo systemctl is-active prometheus node_exporter grafana-server

检查端口监听情况:

sudo ss -lntp | grep -E ':3000|:9090|:9100'

正常情况下,服务状态应分别显示:

prometheus: active
node_exporter: active
grafana-server: active

如果某个服务没有正常运行,可以单独查看状态:

sudo systemctl status prometheus --no-pager
sudo systemctl status node_exporter --no-pager
sudo systemctl status grafana-server --no-pager

检查Prometheus是否已经准备完成:

curl http://127.0.0.1:9090/-/ready

如果返回:

Prometheus Server is Ready.

说明Prometheus已经可以接收请求。

Prometheus、Grafana监控小型网站服务器完整搭建教程

六、检查Prometheus采集目标

打开Prometheus的Targets页面,查看Prometheus自身和Node Exporter是否处于UP状态。

如果配置了Web访问地址,通常可以进入:

http://服务器IP:9090/targets

Prometheus、Grafana监控小型网站服务器完整搭建教程

如果目标状态不是UP,可以按以下顺序排查:

  1. 检查对应服务是否已经启动。
  2. 检查目标端口是否正在监听。
  3. 检查Prometheus配置文件中的targets地址。
  4. 检查防火墙、安全组和端口映射。
  5. 检查Node Exporter的指标地址是否可以访问。
  6. 修改配置后使用promtool重新校验。

检查Node Exporter端口:

sudo ss -lntp | grep ':9100'

从本机请求Node Exporter指标:

curl http://127.0.0.1:9100/metrics

如果能够返回大量指标内容,说明Node Exporter本身可以正常提供数据。

七、登录Grafana

在浏览器中打开Grafana访问地址:

http://服务器IP:3000

如果使用了公网端口映射,则需要替换为实际映射端口。

进入登录页面后,输入管理员账号和密码。

Prometheus、Grafana监控小型网站服务器完整搭建教程

登录成功后进入Grafana首页:

Prometheus、Grafana监控小型网站服务器完整搭建教程

首次登录后,应立即修改默认密码。生产环境不要继续使用默认账号和密码,也不要让Grafana管理端口对所有公网地址开放。

八、配置Prometheus数据源

登录Grafana后,依次进入:

Connections → Data sources

点击添加数据源,选择Prometheus。

如果Grafana和Prometheus运行在同一台服务器上,并且是直接安装在主机系统中,可以将URL填写为:

http://localhost:9090

Prometheus、Grafana监控小型网站服务器完整搭建教程

填写完成后,点击 Save & test,检查Grafana是否能够连接Prometheus。

需要注意,如果Grafana运行在Docker容器中,localhost指向的是Grafana容器自身,而不是宿主机。此时应根据实际网络配置填写Prometheus服务名或宿主机地址。

九、导入监控看板

进入Grafana的Dashboard导入页面:

Dashboards → New → Import

可以通过以下方式导入:

  • 输入Dashboard ID。
  • 上传本地JSON文件。
  • 粘贴Dashboard JSON内容。

如果已有本地看板JSON,建议优先使用本地文件,方便备份、迁移和版本管理。

导入过程中,按照页面提示选择已经配置好的Prometheus数据源。

Prometheus、Grafana监控小型网站服务器完整搭建教程

导入完成后,可以查看以下基础指标:

  • CPU使用率。
  • 内存使用率。
  • 磁盘容量和使用率。
  • 网络流量。
  • 系统负载。
  • 文件系统状态。

Prometheus、Grafana监控小型网站服务器完整搭建教程

导入完成后,建议检查看板中的jobinstance等标签是否与Prometheus配置一致。如果指标名称或标签不匹配,面板可能显示为空。

十、常见问题

问题一:Grafana看板没有数据

先直接查询Prometheus:

curl "http://127.0.0.1:9090/api/v1/query?query=up"

如果Prometheus无法查询到数据,应优先排查:

  • Prometheus服务状态。
  • Node Exporter服务状态。
  • Prometheus Targets状态。
  • Prometheus配置文件。
  • 指标标签和任务名称。

只有Prometheus已经采集到数据后,Grafana才有内容可以展示。

问题二:Prometheus Targets显示DOWN

检查Node Exporter:

sudo systemctl status node_exporter --no-pager

检查9100端口:

sudo ss -lntp | grep ':9100'

检查指标接口:

curl http://127.0.0.1:9100/metrics

如果本机可以访问,但Prometheus仍然显示DOWN,应检查Prometheus配置中的目标地址,以及服务器之间的网络访问规则。

问题三:公网端口无法访问

可以按以下顺序检查:

  • 端口映射是否正确。
  • 服务是否监听了目标端口。
  • 服务监听地址是否允许外部访问。
  • 系统防火墙是否放行端口。
  • 云平台安全组是否放行端口。
  • 访问时使用的端口是否与映射端口一致。

检查本机监听情况:

sudo ss -lntp | grep -E ':3000|:9090|:9100'

如果端口只监听127.0.0.1,公网请求通常无法直接访问。正式环境不建议简单地将所有服务监听到公网,而应通过防火墙、反向代理或内部网络限制访问范围。

问题四:Grafana和Prometheus在Docker中运行

如果Grafana和Prometheus都通过Docker部署,应使用Docker网络中的服务名访问Prometheus,例如:

http://prometheus:9090

此时不要直接套用主机安装方式中的http://localhost:9090,因为容器中的localhost指向当前Grafana容器。

十一、后续扩展

完成基础监控后,可以继续接入其他组件:

  • Blackbox Exporter:监控网站、端口和HTTP接口可用性。
  • Nginx Exporter:采集Nginx连接数和请求指标。
  • cAdvisor:监控Docker容器资源使用情况。
  • MySQL Exporter:采集MySQL运行指标。
  • Alertmanager:处理Prometheus告警并发送通知。

扩展组件时,应按照“先确认采集,再配置查询,最后制作看板”的顺序进行,避免在数据尚未进入Prometheus时直接修改Grafana面板。

十二、总结

本次完成了Prometheus、Node Exporter和Grafana的基础搭建。

部署完成后:

  • Node Exporter负责暴露Linux主机指标。
  • Prometheus负责采集和保存指标。
  • Grafana负责查询和展示监控数据。

遇到看板无数据时,应先检查Prometheus Targets和PromQL查询,再检查Grafana数据源和面板配置。

完成基础环境后,可以继续接入网站探测、Nginx、Docker、MySQL和告警通知功能,逐步形成适合小型网站服务器的完整监控体系。

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
Grafana登录页
下一篇:

已经没有下一篇了!

相关文章