HomeAssistant通过NetData监控服务器

前言

前文我们详细介绍了HomeAssistant的搭建以及基础的使用步骤,这篇我们来介绍一下通过HomeAssistant监控本地Ubuntu服务器。

PS:本方法针对为非同一IP地址的Ubuntu服务器。

步骤

1.安装Netdata

Netdata 是一款 Linux 性能实时监测工具。Netdata是Linux系统实时性能监测工具,提供web界面的界面视角。它用可视化的手段,将被监测者最细微的细节,展现了出来。这样,你便可以清晰地了解你的系统和应用程序此时的状况。

通过SSH连接Ubuntu Server,运行下面命令安装:

apt install netdata

然后修改 /etc/netdata/netdata.conf ,在末尾添加以下内容运行web访问:

[web]
    bind to = 0.0.0.0:19999

保存后重启netdata服务:systemctl restart netdata

尝试访问: http://<ip>:19999 确保服务正常加载:

2.配置HASS

在进行这一步时,请仔细阅读官方文档:Netdata - 家庭助理 --- Netdata - Home Assistant (home-assistant.io)

大致意思:

比如我们来到右侧 System Overview - load 查看系统负载情况:

图中有三条曲线,在下方都标注了 load1 load5 load15 ,根据我的理解应该是对应的不同时间内的系统负载情况。

然后我们访问 http://<ip>:19999/api/v1/allmetrics?format=json 查找 system.load 对应的内容:

其中 namecontext 都是一致的,记录下来,对应接下来要填写的 data_groupdimensions 下面的值也保存,对应接下来的 element

模版为:

sensor:
  - platform: netdata
    host: "ip"                    #服务器IP
    port: "19999"                 #netdata端口
    name: "Ubuntu Server"         #服务器名称
    resources:
      system.load1:               #注意名称(任意,可自己区分)
        data_group: system.load   #对应name和context的值
        element: load1            #对应dimensions的值
      system.load5:
        data_group: system.load
        element: load5
      system.load15:
        data_group: system.load
        element: load15

将其内容添加在HASS的配置文件 configuration.yaml 中。

之后重启HASS。

这时候来到【配置】-【设备与服务】-【实体注册表】,搜索 system.load

可以看到已经有实体显示了,说明已经正确配置。

添加卡片

由于此方法添加的传感器没有UI界面,因此我们需要自行配置。

首先复制其实体ID,之后来到仪表盘界面,添加卡片,选择我们之前下载的 mini-graph-card 来进行配置:

type: custom:mini-graph-card
name: SystemLoad
hours_to_show: 24
line_width: 2
points_per_hour: 1
animate: true
entities:
  - entity: sensor.ubuntu_server_system_load1
    name: Load1
  - entity: sensor.ubuntu_server_system_load15
    name: Load5
  - entity: sensor.ubuntu_server_system_load15
    name: Load15
show:
  labels: true

配置成功!

我们再试着添加一项RAM数据,在之前的界面 http://<ip>:19999/api/v1/allmetrics?format=json 搜索 system.ram ,得到:

"system.ram": {
  "name": "system.ram",
  "family": "ram",
  "context": "system.ram",
  "units": "MiB",
  "last_updated": 1709019830,
  "dimensions": {
    "free": {
      "name": "free",
      "value": 319.6445312
    },
    "used": {
      "name": "used",
      "value": 2382.4140625
    },
    "cached": {
      "name": "cached",
      "value": 13274.8632812
    },
    "buffers": {
      "name": "buffers",
      "value": 12.0546875
    }
  }
},

继续编辑 configuration.yaml 文件,在 resources 下面继续添加:

sensor:
  - platform: netdata
    host: "ip"                    #服务器IP
    port: "19999"                 #netdata端口
    name: "Ubuntu Server"         #服务器名称
    resources:
      system.load:          
        data_group: system.load
        element: load1
      system.ram_free:          #按照此格式继续添加
        data_group: system.ram
        element: free
      system.ram_used:
        data_group: system.ram
        element: used
      system.ram_cached:
        data_group: system.ram
        element: cached
      system.ram_buffers:
        data_group: system.ram
        element: buffers

保存后重启HASS,仍然在【配置】-【设备与服务】-【实体注册表】,搜索 system.ram

复制四项的实体ID,回到仪表盘添加卡片:

type: custom:mini-graph-card
name: Ubuntu_RAM
line_width: 2
entities:
  - entity: sensor.ubuntu_server_system_ram_free
    name: Free
  - entity: sensor.ubuntu_server_system_ram_used
    name: Used
  - entity: sensor.ubuntu_server_system_ram_cached
    name: Cached
  - entity: sensor.ubuntu_server_system_ram_buffers
    name: Buffers

以此类推,只要是netdata中监控的数据,都可以添加到HASS中。

结尾

由于我的本地NAS服务器是用的Ubuntu Server才会显得比较麻烦,如果是群晖这类成品NAS,那么在集成中直接搜索DSM就可以了。

但是这样动手操作的感觉是成品NAS远远比不了的,而且自定义的项目比较多,可以做到根据自身需求来定制~

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部