家用住宅主机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是监控系统的核心,负责拉取和存储指标数据。
- 下载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
- 创建专用用户(非必须但推荐):
useradd --no-create-home --shell /bin/false prometheus
chown -R prometheus:prometheus /opt/prometheus
- 配置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
- 重新加载systemd并启动:
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
- 验证:浏览器访问
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 status或firewall-cmd --list-all,确保9090、9100、3000已开放。 - 服务起不来:查看日志
journalctl -u prometheus -n 50或journalctl -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相关教程。