零基础搭建Grafana监控大屏
如果你刚接触服务器运维,想用一套漂亮的大屏展示CPU、内存、磁盘、网络等实时数据,那Grafana监控大屏就是最流行的方案之一。
本文帮你跳过概念堆砌,直接通过Docker安装Prometheus和Grafana,并导入现成的仪表盘模板,半小时内就能看到效果。
整个过程不需要懂代码,跟着命令走就行。
搭建前的准备
你需要一台安装了Linux的服务器(Ubuntu 20.04或CentOS 7以上都行),并拥有root或sudo权限。
如果服务器上还没有Docker,先执行一行命令安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
安装完成后运行 sudo systemctl start docker && sudo systemctl enable docker 确保Docker开机自启。
如果已经有Docker,直接跳过。
用Docker快速启动Grafana与Prometheus
我们用一个docker-compose.yml文件来统一管理两个容器,避免新手误解容器间的网络通信。
新建一个目录,比如 mkdir ~/monitor && cd ~/monitor,然后创建文件 docker-compose.yml,内容如下:
version: '3'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
restart: always
grafana:
image: grafana/grafana
container_name: grafana
ports:
- "3000:3000"
restart: always
注意上面的 prometheus.yml 我们还没创建,
先在同目录下新建一个配置文件 prometheus.yml,
写入最简单的采集配置(只监听Prometheus自身指标做测试):
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
保存后回到终端,运行 sudo docker-compose up -d。
等几十秒,执行 sudo docker ps 应该能看到两个容器都在运行。
配置数据源与导入监控仪表盘
浏览器访问 http://你的服务器IP:3000,默认账号密码都是 admin,首次登录会要求修改密码。
登录后进入Grafana主页。
点击左侧齿轮图标(Configuration)→ Data Sources → Add data source,选择Prometheus。
在HTTP URL栏填写 http://prometheus:9090(因为两个容器在同一个Docker网络里,容器名就是主机名),其他保持默认,滑到底部点击 Save & Test。
看到绿色提示“Data source is working”就成功了。
现在来个漂亮的监控大屏:鼠标移到左侧加号图标 → Import,在Import via grafana.com输入框填写ID 1860(这是一个经典的Node Exporter仪表盘),点击Load。
Prometheus数据源选择刚刚创建的,点击Import。
不到十秒,一个带CPU、内存、磁盘、网络等图表的监控大屏就出现了。
注意:1860号仪表盘需要Node Exporter采集系统指标。如果你没有安装Node Exporter,图表会显示“No data”。新手可以先查看仪表盘布局,后续再单独部署Node Exporter并配置Prometheus抓取。本文重点演示Grafana监控大屏的搭建流程,Node Exporter的部署可参考其他教程。
新手常见避坑提醒
- 端口占用:如果3000或9090端口已被占用,docker-compose.yml里可以改成映射其他端口,比如
"3001:3000",访问时用对应的端口。 - 防火墙:云服务器需要放行对应端口的安全组规则(比如华为云、阿里云的控制台里添加入方向规则)。Linux防火墙也需检查:
sudo ufw allow 3000或firewall-cmd --add-port=3000/tcp --permanent并重载。 - 容器重启后数据丢失:上面docker-compose.yml没有配置数据持久化卷,容器删除后配置会丢失。生产环境建议给Prometheus和Grafana挂载卷,本文仅用于快速体验。
- 时间不同步:Grafana图表可能显示“No data”,先检查服务器时间是否准确:
date,如有偏差可安装ntpdate同步。
验证你的监控大屏是否正常工作
回到Grafana仪表盘页面,刷新一次,如果看到各图表内出现折线或数字,说明数据已经成功采集并展示。
你可以调整时间范围(右上角)查看过去15分钟或1小时的数据。
默认每15秒刷新一次,数据会实时更新。
如果图表仍然空白,检查Prometheus的targets页面:http://服务器IP:9090/targets,确保State为UP。
如果所有targets都DOWN,说明数据源配置有误,回看数据源URL是否写成了 http://prometheus:9090。
FAQ
- 问:可以用其他数据源吗? 可以,Grafana支持MySQL、InfluxDB、Elasticsearch等,但Prometheus是最常用的配合之一。
- 问:需要多少服务器资源? 仅运行两个容器,1核1G的云服务器完全足够,内存占用约200MB。
- 问:如何让大屏自动刷新? 在仪表盘设置中将自动刷新时间改为5s或10s,保存即可。
如果你正在处理Grafana监控大屏,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
有了这个基础,你后续可以添加Node Exporter、cAdvisor等更多采集器,让大屏内容更丰富。
如果你需要了解如何接入Node Exporter采集系统指标,可以继续阅读本站相关教程。