家用住宅主机Linux Prometheus

为什么家用主机也需要监控大屏

家里用旧电脑或低功耗设备跑Linux服务(NAS、下载机、Home Assistant)的人越来越多。
没有监控,等到服务挂了或者磁盘满了才发现,很容易丢数据。
搭建一套Prometheus加Grafana的监控大屏,能直观看到CPU、内存、磁盘、网络的实时变化,异常时还能设置告警。
本文针对零基础用户,从零开始完成整个部署。

准备工作

  • 一台运行Linux的主机(本文以Ubuntu 22.04 LTS为例,其他发行版命令类似)
  • 拥有sudo权限的普通用户或直接使用root
  • 能正常连接互联网用于下载软件包
  • 确保主机的防火墙允许9090(Prometheus)、3000(Grafana)和9100(node_exporter)端口访问

如果用的是云服务器或内网环境,记得在安全组或iptables里放行这些端口。

第一步:安装和配置Prometheus

Prometheus是监控系统的核心,负责拉取和存储指标数据。

  1. 下载Prometheus稳定版到/opt目录:
cd /opt
wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
tar -xzf prometheus-2.53.0.linux-amd64.tar.gz
mv prometheus-2.53.0.linux-amd64 prometheus
  1. 创建专用用户(非必须但推荐):
useradd --no-create-home --shell /bin/false prometheus
chown -R prometheus:prometheus /opt/prometheus
  1. 配置systemd服务文件,方便管理启停。用vim /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=/var/lib/prometheus/
Restart=always

[Install]
WantedBy=multi-user.target
  1. 重新加载systemd并启动:
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
  1. 验证:浏览器访问http://你的IP:9090,看到Prometheus UI说明成功。

第二步:安装node_exporter采集主机指标

Prometheus需要数据源,node_exporter负责暴露Linux系统指标。

cd /opt
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
tar -xzf node_exporter-1.8.1.linux-amd64.tar.gz
mv node_exporter-1.8.1.linux-amd64 node_exporter

创建用户并启动(类似Prometheus),或者直接用二进制启动测试:

/opt/node_exporter/node_exporter &

通过http://你的IP:9100/metrics能看到大量指标即成功。
推荐也做成systemd服务,方法同上。

第三步:让Prometheus抓取node_exporter数据

编辑Prometheus配置文件:

vim /opt/prometheus/prometheus.yml

scrape_configs 下增加一个job:

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

保存后重启Prometheus:

systemctl restart prometheus

回到Prometheus UI的Status - Targets,能看到node_exporter状态为UP。

第四步:安装Grafana并连接Prometheus

Grafana负责把数据变成漂亮的大屏。
推荐用APT安装(官方仓库):

sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

默认端口3000,登录地址http://你的IP:3000,初始账号密码都是admin,首次会要求修改密码。

在Grafana中配置数据源:

  • 左侧菜单 -> Configuration -> Data Sources -> Add data source
  • 选择Prometheus,URL填http://localhost:9090(如果Grafana和Prometheus在同一台机器)
  • 点击Save & Test,看到绿色提示表示连接成功。

第五步:导入仪表盘打造监控大屏

使用现成的社区仪表盘最省事。
推荐“Node Exporter Full”(ID 1860)。

  • 左侧菜单 -> +(Create) -> Import
  • 输入ID 1860,点击Load
  • 选择之前配置的Prometheus数据源,点击Import
  • 立刻就能看到包含CPU、内存、磁盘、网络等几十个面板的大屏。还可以根据自己的需求调整面板或添加告警规则。

避坑指南

  • 端口不通:大部分问题出在防火墙。检查sudo ufw statusfirewall-cmd --list-all,确保9090、9100、3000已开放。
  • 服务起不来:查看日志 journalctl -u prometheus -n 50journalctl -u grafana-server -n 50,重点关注权限和配置文件路径。
  • Grafana数据不显示:检查Prometheus target是否up,以及时间范围设置是否正确(默认显示过去6小时)。
  • 数据丢失:建议为Prometheus和Grafana挂载持久化存储,或者定期备份/var/lib/prometheus/var/lib/grafana

高频问题解答

问:
我需要安装多个node_exporter吗?
如果有多台主机需要监控,
可以在每台上安装node_exporter,
然后在Prometheus的scrape_configs里添加多个target地址。

问:如何让大屏自动刷新? Grafana面板自带刷新间隔设置,在仪表盘右上角调整刷新频率(如5秒)。

问:手机可以查看吗? Grafana支持响应式布局,手机浏览器直接打开即可,也可以使用Grafana Mobile App。

完成以上步骤后,你的家用Linux主机就有了专业的监控大屏。
从Prometheus的数据采集到Grafana的可视化,整个过程不需要写复杂代码,零基础用户按照命令和界面操作就能落地。
遇到异常时,优先回看上面的避坑部分。
如果你还想添加告警通知(如钉钉、邮件),可以继续查阅Prometheus Alertmanager相关教程。

分享到:
上一篇
外贸站宝塔面板网站内链优化提升谷歌收录量
下一篇
跨境独立站宝塔面板服务器TLS1.2 TLS1.3配置
1
系统公告

机房迁移升级通知

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