网站搜索

这个被忽视的应用帮助我建立了终极家庭实验室仪表盘


我拖了太久才开始设置 Grafana。所以,我特意抽出一些时间来部署终极家庭实验室仪表盘,我真希望我早点这样做。

Grafana 让你可以构建一个强大(但复杂)的家庭实验室仪表板

这不会是一个几分钟就能完成的快速项目

Grafana 是家庭实验室领域中构建仪表板的基础工具——但它也以设置起来相当复杂而闻名。当我着手构建终极家庭实验室仪表板时,我知道 Grafana 是关键,但我不确定自己会遇到什么样的挑战。

Grafana 实际上只是一个基础平台,你可以将其他数据源链接进来。运行我仪表板的主要数据源是 Prometheus,但我也将 InfluxDB 和 Telegraf 接入了我的 Unraid 服务器。

这个设置既复杂又简单,如果这样说能说得通的话。我从 dockprom 的 GitHub 仓库开始,因为那是运行 Grafana 的最完善的 Docker 堆栈之一。

Docker Compose 文件包含相当多的服务,所有服务彼此互相连接。所以,不仅仅是 Grafana,还有 Prometheus、Grafana、cAdvisor、NodeExporter 以及使用 AlertManager 的告警功能。

我尝试像平常一样通过将 Docker Compose 文件复制到 Portainer 并直接启动堆栈来设置它——但不起作用。相反,你需要 dockprom 仓库中的某些文件。事实上,仓库中的每个文件夹都有你需要的设置文件。

最快捷的启动方式(并避免我经历的头痛)是严格按照说明操作,克隆仓库,然后使用 docker compose up -d 命令启动容器。我喜欢所有内容都在 Portainer 内原生运行,所以我额外费心手动启动,但按照说明操作,你几分钟内就能运行起来,而不是花一小时。

连接你的其他服务器可能很复杂,但这是值得的

如果仪表板只显示一台机器,它值多少钱?

你可以使用 dockprom 仓库搭建的基本仪表板对于单个服务器节点来说非常棒,但如果你有多个节点呢?我恰好有三个 Proxmox 节点,一个 Unraid 服务器,以及一个 Ugreen NAS。我在仪表板中已经包含了除了 Ugreen NAS 之外的所有设备(这个设备我还在处理),而且要把所有东西设置成我想要的样子有点复杂。

我正在使用的仪表盘是为我的特定使用场景设计的,但可以很容易地调整以适应你的需求。由于这个仪表盘我花了很长时间才搭建好,我已经将它的 JSON 放在了我的 GitHub 上,以防你也想尝试使用它。它需要根据你自己的 IP、数据源 UID 和主机名进行一些调整,但应该相当容易理解。

要将 Proxmox 节点添加到 Grafana,我使用了 node_exporter。安装起来相当简单,下面是我遵循的步骤:

# Download the latest node_exporter
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xzf node_exporter-1.8.2.linux-amd64.tar.gz
cp node_exporter-1.8.2.linux-amd64/node_exporter /usr/local/bin/

# Create a systemd service
cat > /etc/systemd/system/node_exporter.service << 'EOF'
[Unit]
Description=Node Exporter
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=always

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now node_exporter

本质上,上述命令会下载 Prometheus 代理,解压它,将其移动到您的 bin 文件夹,然后创建一个将在启动时运行的 systemd 服务。完成后,您可以通过在安装它的任意节点上运行 curl http://localhost:9100/metrics 来验证它是否正常工作,并查看输出中显示的大量指标。

如果你能看到这些指标,那么你就可以开始了!现在,去你运行 Grafana 和 Prometheus 的地方,编辑 prometheus.yml 文件,在 scrape_configs 下添加一个新的任务。

- job_name: 'proxmox-nodes'
    static_configs:
      - targets:
          - '192.168.1.10:9100'  # Proxmox host 1
          - '192.168.1.11:9100'  # Proxmox host 2
        labels:
          group: 'proxmox'

你可以添加任意数量的主机——我添加了三个。对于 node_exporter 仪表盘,一个相当不错的起点是仪表盘 ID 1860。只需进入 Grafana > 仪表盘 > 新建 > 导入,然后输入该 ID,接着按照提示操作即可。

由于我想一次查看我所有的节点,并且整合 Unraid,这个仪表板对我来说不适用。然而,如果你对 Grafana 仪表板的需求比较简单,它可能完全能满足你的需求。

就是这样,仅仅这么做就能设置好 Grafana 仪表板。我花在调整仪表板布局上的时间,比做其他任何事情的时间都多,只是为了让它显示我想看到的信息,并且呈现我想要的样子。

我希望我早点建立 Grafana 仪表板

这很难,但没有我说的那么糟

我的 Grafana 仪表板还远未完成,但我很高兴至少现在它可以运行了。我可能已经在家庭实验室的待办事项清单上放了这个项目五年或更久了,我真希望自己没有拖延这么久。现在能够一眼看到我的家庭实验室的状态真是太好了——我的服务器使用了多少内存,每台服务器的存储使用情况,以及我是否在给处理器带来负担。

设置 Grafana 绝对不是一件轻松的事情,但也没有我想象的那么糟糕。总的来说,我花了大约两到三个小时将它调整到我想要的样子。这比我希望花的时间多,但比我预期的少。如果你的设置比较简单,你可能只需要花 15 分钟就能让 Grafana 运行起来。

不要像我一样拖延设置 Grafana。它是一个非常有用的仪表板,并不像看起来那么令人畏惧。

相关文章