前言
前文我们详细介绍了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
对应的内容:
其中 name
和 context
都是一致的,记录下来,对应接下来要填写的 data_group
,dimensions
下面的值也保存,对应接下来的 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远远比不了的,而且自定义的项目比较多,可以做到根据自身需求来定制~