本帖最后由 Mirukuteii 于 2018-4-27 02:09 编辑
更新进度:暂停更新,路由器监控在新贴中开始探讨。
上篇,萌新在新人贴分享了【Sun】萌新摸索之一:sun组件的使用,很受鼓励。
本篇,我将对各类常用系统监控组件进行了整理,希望大家喜欢。
本贴依然是萌新探索技术含量较低,
主要是站在前人的基础上整理小结。
本帖涉及到的组件主要有:
·【Sensor.Systemmonitor】 #系统监控组件(CPU、REM、SWAP、DISK、NET等信息,本地搜集)
·【Sensor.CpuSpeed】 #CPU速度组件(主频、架构、品牌)
·【Sensor.Speedtest】 #网速测试组件(ping响应、下载、上传)
·【Sensor.SynologyDSM】 #群晖DSM组件(类似系统监控组件,可远程搜集群晖信息)
·【Sensor.Glances】 #Glances组件(类似系统监控组件,可远程搜集主机信息)
·【Sensor.Uptime】 #HA在线时间
·【Sensor.Api_streams】 #HA客户端连接数
·【Sensor.Command_line】 #CMDLinle组件,通过它实现其他系统监控任务
由于本萌新的软硬件部署和环境不同,可能存在前置条件差异以及配置、实现方法不同的情况,请在代码调试中注意!
1.【ha_info.yaml】
简介:
通过【Sensor.Uptime】【Sensor.Api_streams】【Sensor.Command_line】获取:
- HA运行时间;
- HA最新版本、
- HA安装版本、
- HA连接客户端数量、
- HA失败登录尝试次数。
注意:
实现HA连接客户端数量、HA失败登录尝试次数,需要预先配置【logger】组件,
建议在configuration.yaml中加入:
logger:
default: critical
logs:
homeassistant.components.http: warning
以下是ha_info.yaml文件内容,请放在packages文件夹下,
可直接通过调用group.ha_info将其显示在HA前端界面中。
#HomeAssistant信息
sensor:
- platform: uptime
name: 'Time Online'
unit_of_measurement: hours
- platform: command_line
name: Latest HA Version
command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])"
- platform: command_line
name: Installed HA Version
command: "head -5 /config/.HA_VERSION"
- platform: api_streams
- platform: command_line
name: badlogin
command: "grep -c 'Login attempt' /config/home-assistant.log"
homeassistant:
customize:
sensor.time_online:
icon: mdi:av-timer
friendly_name: 'HA运行时间'
unit_of_measurement: '小时'
homebridge_hidden: true
sensor.latest_ha_version:
friendly_name: 'HA最新版本'
icon: mdi:cloud-download
homebridge_hidden: true
sensor.installed_ha_version:
icon: mdi:clipboard-check
friendly_name: 'HA当前版本'
homebridge_hidden: true
sensor.connected_clients:
icon: mdi:account-multiple
friendly_name: '当前连接的客户端'
homebridge_hidden: true
sensor.badlogin:
icon: mdi:alert-circle
friendly_name: '失败的登录尝试'
homebridge_hidden: true
group:
ha_info:
name: 'HA系统信息'
view: no
entities:
- sensor.time_online
- sensor.latest_ha_version
- sensor.installed_ha_version
- sensor.connected_clients
- sensor.badlogin
注意修改“command: "grep -c 'Login attempt' /config/home-assistant.log"”路径!
2.【systemmonitor.yaml】简介:
通过【Sensor.systemmonitor】直接获取本地系统信息:
- CPU (资源利用率、1、5、15分钟负载)
- 内存 (资源利用率、已用资源、可用资源)
- 交换区 (资源利用率、已用资源、可用资源)
- 磁盘 (资源利用率、已用资源、可用资源)
- 网络 (IP地址、网速、包数、登录时间)
- 进程 (查询进程名状态)
注意:
【sensor.last_boot】输出结果可读性差,这里通过【Sensor.template】对其进行了格式化,提高可读性。
arg:后面表示属性,应根据自己的实际情况填写。
以下是systemmonitor.yaml文件内容,请放在packages文件夹下,
可直接通过调用group.systemmonitor将其显示在HA前端界面中。
#系统监控
sensor:
- platform: systemmonitor
resources:
- type: processor_use
- type: memory_use_percent
- type: swap_use_percent
- type: disk_use_percent
arg: /home
- type: load_1m
- type: load_5m
- type: load_15m
- type: ipv4_address
arg: eth0
- type: ipv4_address
arg: eth1
- type: network_in
arg: eth0
- type: network_out
arg: eth0
- type: packets_in
arg: eth0
- type: packets_out
arg: eth0
- type: last_boot
- type: since_last_boot
- type: process
arg: homebridge
- type: disk_use
- type: disk_free
- type: memory_use
- type: memory_free
- type: swap_use
- type: swap_free
- platform: template
sensors:
since_last_boot_formated:
value_template: >-
{%- set slb = states.sensor.since_last_boot.state.split(' ') -%}
{%- set count = slb | length -%}
{%- set hms = slb[count - 1] -%}
{%- set hms_trimmed = hms.split('.')[0] -%}
{%- set hms_split = hms_trimmed.split(':') -%}
{%- set hours = hms_split[0] | int -%}
{%- set mins = hms_split[1] | int -%}
{%- if count == 3 -%}
{{ slb[0] ~ ' 天 ' }}
{%- endif -%}
{%- if hours > 0 -%}
{{ hours }} 小时
{%- endif -%}
{%- if count < 3 -%}
{{ mins }} 分钟
{%- endif -%}
homeassistant:
customize:
sensor.processor_use:
friendly_name: 'CPU使用率'
homebridge_hidden: true
sensor.load_1m:
friendly_name: '1分钟负载'
homebridge_hidden: true
sensor.load_5m:
friendly_name: '5分钟负载'
homebridge_hidden: true
sensor.load_15m:
friendly_name: '15分钟负载'
homebridge_hidden: true
sensor.memory_use_percent:
friendly_name: '内存使用率'
homebridge_hidden: true
sensor.memory_use:
friendly_name: '已用内存'
homebridge_hidden: true
sensor.memory_free:
friendly_name: '可用内存'
homebridge_hidden: true
sensor.swap_use_percent:
friendly_name: '交换使用率'
homebridge_hidden: true
sensor.swap_use:
friendly_name: '已用交换空间'
homebridge_hidden: true
sensor.swap_free:
friendly_name: '可用交换空间'
homebridge_hidden: true
sensor.disk_use_percent:
friendly_name: '磁盘使用率'
homebridge_hidden: true
sensor.disk_use:
friendly_name: '已用磁盘空间'
homebridge_hidden: true
sensor.disk_free:
friendly_name: '可用磁盘空间'
homebridge_hidden: true
sensor.ipv4_address_eth0:
friendly_name: 'IP地址(eht0)'
homebridge_hidden: true
sensor.ipv4_address_eth1:
friendly_name: 'IP地址(eht1)'
homebridge_hidden: true
sensor.network_in_eth0:
friendly_name: '下载速率'
homebridge_hidden: true
sensor.network_out_eth0:
friendly_name: '上传速率'
homebridge_hidden: true
sensor.packets_in_eth0:
friendly_name: '接收包数量'
homebridge_hidden: true
sensor.packets_out_eth0:
friendly_name: '发送包数量'
homebridge_hidden: true
sensor.last_boot:
friendly_name: '上次登录'
homebridge_hidden: true
sensor.since_last_boot:
friendly_name: '已登录时长(未格式化)'
homebridge_hidden: true
sensor.since_last_boot_formated:
icon: mdi:clock
friendly_name: '已登录时长'
homebridge_hidden: true
sensor.process_homebridge:
friendly_name: 'HB进程状态'
homebridge_hidden: true
group:
systemmonitor:
name: '系统监控(群晖docker-HA)'
view: no
entities:
- sensor.processor_use
- sensor.load_1m
- sensor.load_5m
- sensor.load_15m
- sensor.memory_use_percent
- sensor.memory_use
- sensor.memory_free
- sensor.swap_use_percent
- sensor.swap_use
- sensor.swap_free
- sensor.disk_use_percent
- sensor.disk_use
- sensor.disk_free
- sensor.ipv4_address_eth0
- sensor.ipv4_address_eth1
- sensor.network_in_eth0
- sensor.network_out_eth0
- sensor.packets_in_eth0
- sensor.packets_out_eth0
- sensor.last_boot
# - sensor.since_last_boot
- sensor.since_last_boot_formated
- sensor.process_homebridge
3.【cpuspeed.yaml】
简介:
通过【Sensor.cpuspeed】获取:
其中CPU架构和CPU品牌通过【Sensor.template】提取。
以下是cpuspeed.yaml文件内容,请放在packages文件夹下,
可直接通过调用group.cpuspeed将其显示在HA前端界面中。
#CPU信息
sensor:
- platform: cpuspeed
name: CPU
- platform: template
sensors:
cpu_arch:
icon_template: mdi:gradient
friendly_name: "架构"
value_template: "{% if states.sensor.cpu %} {{ states.sensor.cpu.attributes.arch }} {% endif %}"
cpu_brand:
icon_template: mdi:copyright
friendly_name: "品牌"
value_template: "{% if states.sensor.cpu %} {{ states.sensor.cpu.attributes.Brand }} {% endif %}"
homeassistant:
customize:
sensor.cpu:
friendly_name: 'CPU主频'
homebridge_hidden: true
group:
cpuspeed:
name: 'CPU 信息'
view: no
entities:
- sensor.cpu
- sensor.cpu_arch
- sensor.cpu_brand
4.【cpu_temp_core.yaml】
简介:
通过【Sensor.command_line】读取cpu温度。
注意:
这个PKG不是通用的!!!
萌新如我的HA部署在群晖916+的docker上,cpu是intel奔腾N3710,
在本例中,萌新如我的提取思路是利用系统自带的hwmon,
通过代码“cat /sys/class/hwmon/hwmon0/device/temp*_input”,
来提取cpu各个核心的温度。
其它软硬件环境应根据自身实际情况改写代码!
例如:
- # cat /sys/devices/virtual/thermal/thermal_zone0/temp
- # cat /sys/class/thermal/thermal_zone0/temp
- # cat /proc/acpi/thermal_zone/THRM/temperature
并且,我提取出的值与群晖DSM显示的cpu温度略有差距(低2-4度),
如果有大神可以通过读取msr或者更靠谱的方法来获取intel CPU温度传感器信息,
麻烦教教我!
最后,还有一个思路就是安装lm-sensor,配置后可以通过通用命令来读取温度。
以下是cpu_temp_core.yaml文件内容,请放在packages文件夹下,
可直接通过调用group.cpu_temp_core将其显示在HA前端界面中。
#这里调用了cpu温度
sensor:
- platform: command_line
name: CPU_Temp_core1
command: "cat /sys/class/hwmon/hwmon0/device/temp2_input"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(1) }}'
- platform: command_line
name: CPU_Temp_core2
command: "cat /sys/class/hwmon/hwmon0/device/temp3_input"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(1) }}'
- platform: command_line
name: CPU_Temp_core3
command: "cat /sys/class/hwmon/hwmon0/device/temp4_input"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(1) }}'
- platform: command_line
name: CPU_Temp_core4
command: "cat /sys/class/hwmon/hwmon0/device/temp5_input"
unit_of_measurement: "°C"
value_template: '{{ value | multiply(0.001) | round(1) }}'
homeassistant:
customize:
sensor.cpu_temp_core1:
icon: mdi:numeric-1-box
friendly_name: 'CPU核心1温度'
homebridge_hidden: true
sensor.cpu_temp_core2:
icon: mdi:numeric-2-box
friendly_name: 'CPU核心2温度'
homebridge_hidden: true
sensor.cpu_temp_core3:
icon: mdi:numeric-3-box
friendly_name: 'CPU核心3温度'
homebridge_hidden: true
sensor.cpu_temp_core4:
icon: mdi:numeric-4-box
friendly_name: 'CPU核心4温度'
homebridge_hidden: true
group:
cpu_temp_core:
name: 'CPU核心温度'
view: no
entities:
- sensor.cpu_temp_core1
- sensor.cpu_temp_core2
- sensor.cpu_temp_core3
- sensor.cpu_temp_core4
5.【speedtest.yaml】
简介:
通过【Sensor.speedtest】并指定的节点进行网络测速,取得:
注意:
5316是南京电信测试节点,你可以选择自己想要的节点(国内节点有81个)
5145:北京联通;4665:上海移动;5081:深圳电信;7509:浙江电信
查找其它节点看这里:节点表
测速时会占用大量带宽,请妥善安排好时间!
我给出的例子中,测试时间为2:22; 8:22; 14:22; 20:22。
代码还需有空进一步修正,比如设置初始状态(当前开机为“未知”)等。
以下是speedtest.yaml文件内容,请放在packages文件夹下,
可直接通过调用group.speedtest将其显示在HA前端界面中。
#测速工具speedtest
sensor:
- platform: speedtest
server_id: 5316 #南京电信测试节点
monitored_conditions:
- ping
- download
- upload
hour:
- 2
- 8
- 14
- 20
minute: 22
homeassistant:
customize:
sensor.speedtest_ping:
friendly_name: '响应速度'
homebridge_hidden: true
sensor.speedtest_download:
icon: mdi:download
friendly_name: '下载速率'
homebridge_hidden: true
sensor.speedtest_upload:
icon: mdi:upload
friendly_name: '上传速率'
homebridge_hidden: true
group:
speedtest:
name: '速度测试'
view: no
entities:
- sensor.speedtest_ping
- sensor.speedtest_upload
- sensor.speedtest_download
前面这些组件都是监控本地主机下面这些组件则是监控远程主机。
6.【synologydsm.yaml】
简介:
通过【Sensor.synologydsm】访问群晖操作系统DSM,从而获得:
- CPU (利用率:总共、用户、系统、其它;负载:1、5、15分钟)
- 内存 (物理利用率、总量、物理总量、物理可用量、交换总量、交换可用量、缓冲区)
- 磁盘 (枚举每个磁盘的名称、路径、状态(基本、smart、坏道、寿命)、温度、)
- 卷 (枚举每个卷的的状态、类型、空间:总计、已用、使用率、卷内磁盘温度(平均、最高))
- 网络 (全局上传、下载)
注意:
首先,你要有台能登录群晖DSM的NAS;
其次,推荐在DSM中专门设置1个账户用于该组件的访问;
第三,因为实际情况不同(比如我是2个磁盘2个卷),产生的entity id也会有所差别,注意修改。
最后,必须记得修改以下内容为你自己的参数。
host: !secret synologyDSM_IP #群晖NAS IP
port: !secret synologyDSM_PT #群晖NAS DSM端口
username: !secret synologyDSM_UN #群晖DSM 用户名
password: !secret synologyDSM_PW #群晖DSM 密码
以下是synologydsm.yaml文件内容,请放在packages文件夹下,
可直接通过调用group.synologydsm将其显示在HA前端界面中。
#群晖NAS监控
sensor:
- platform: synologydsm
host: !secret synologyDSM_IP #群晖NAS IP
port: !secret synologyDSM_PT #群晖NAS DSM端口
username: !secret synologyDSM_UN #群晖DSM 用户名
password: !secret synologyDSM_PW #群晖DSM 密码
monitored_conditions:
- cpu_total_load #CPU 利用率
- cpu_user_load #CPU 用户 利用率
- cpu_system_load #CPU 系统 利用率
- cpu_other_load #CPU 其它 利用率
- cpu_1min_load #CPU 1分钟平均负载
- cpu_5min_load #CPU 5分钟平均负载
- cpu_15min_load #CPU 15分钟平均负载
- memory_real_usage #内存 利用率
- memory_size #内存 总量
- memory_total_real #内存 物理内存总量
- memory_available_real #内存 可用物理内存总量
- memory_total_swap #内存 交换空间总量
- memory_available_swap #内存 可用交换空间总量
- memory_cached #内存 缓存大小
- disk_name #磁盘 名称 枚举
- disk_device #磁盘 路径 枚举
- disk_smart_status #磁盘 S.M.A.R.T状态 枚举
- disk_status #磁盘 基本状态 枚举
- disk_exceed_bad_sector_thr #磁盘 坏道超标 枚举
- disk_below_remain_life_thr #磁盘 天命已至 枚举
- disk_temp #磁盘 温度 枚举
- volume_status #卷 状态 枚举
- volume_device_type #卷 类型 枚举
- volume_size_total #卷 总计空间(GB) 枚举
- volume_size_used #卷 已用空间(GB) 枚举
- volume_percentage_used #卷 已用空间(%) 枚举
- volume_disk_temp_avg #卷 卷内磁盘平均温度 枚举
- volume_disk_temp_max #卷 卷内磁盘最高温度 枚举
- network_down #网络 全局下载速率
- network_up #网络 全局上传速率
homeassistant:
customize:
sensor.cpu_load_total:
friendly_name: 'CPU利用率-总计'
homebridge_hidden: true
sensor.cpu_load_user:
friendly_name: 'CPU利用率-用户'
homebridge_hidden: true
sensor.cpu_load_system:
friendly_name: 'CPU利用率-系统'
homebridge_hidden: true
sensor.cpu_load_other:
friendly_name: 'CPU利用率-其他'
homebridge_hidden: true
sensor.cpu_load_1min:
friendly_name: '1分钟内CPU平均负载'
homebridge_hidden: true
sensor.cpu_load_5min:
friendly_name: '5分钟内CPU平均负载'
homebridge_hidden: true
sensor.cpu_load_15min:
friendly_name: '15分钟内CPU平均负载'
homebridge_hidden: true
sensor.memory_usage_real:
friendly_name: '内存利用率-物理'
homebridge_hidden: true
sensor.memory_size:
friendly_name: '内存总量'
homebridge_hidden: true
sensor.memory_total_real:
friendly_name: '物理内存总量'
homebridge_hidden: true
sensor.memory_available_real:
friendly_name: '可用物理内存'
homebridge_hidden: true
sensor.memory_total_swap:
friendly_name: '交换空间总量'
homebridge_hidden: true
sensor.memory_available_swap:
friendly_name: '可用交换空间'
homebridge_hidden: true
sensor.memory_cached:
friendly_name: '缓冲区大小'
homebridge_hidden: true
sensor.name_sda:
friendly_name: '磁盘1名称'
homebridge_hidden: true
sensor.name_sdb:
friendly_name: '磁盘2名称'
homebridge_hidden: true
sensor.device_sda:
friendly_name: '磁盘1路径'
homebridge_hidden: true
sensor.device_sdb:
friendly_name: '磁盘2路径'
homebridge_hidden: true
sensor.status_smart_sda:
friendly_name: '磁盘1状态(S.M.A.R.T)'
homebridge_hidden: true
sensor.status_smart_sdb:
friendly_name: '磁盘2状态(S.M.A.R.T)'
homebridge_hidden: true
sensor.status_sda:
friendly_name: '磁盘1状态'
homebridge_hidden: true
sensor.status_sdb:
friendly_name: '磁盘2状态'
homebridge_hidden: true
sensor.exceeded_max_bad_sectors_sda:
friendly_name: '磁盘1状态(坏道超标)'
homebridge_hidden: true
sensor.exceeded_max_bad_sectors_sdb:
friendly_name: '磁盘2状态(坏道超标)'
homebridge_hidden: true
sensor.below_min_remaining_life_sda:
friendly_name: '磁盘1状态(低于预期寿命)'
homebridge_hidden: true
sensor.below_min_remaining_life_sdb:
friendly_name: '磁盘2状态(低于预期寿命)'
homebridge_hidden: true
sensor.temperature_sda:
friendly_name: '磁盘1温度'
homebridge_hidden: true
sensor.temperature_sdb:
friendly_name: '磁盘2温度'
homebridge_hidden: true
sensor.status_volume_1:
friendly_name: '卷1状态'
homebridge_hidden: true
sensor.status_volume_2:
friendly_name: '卷2状态'
homebridge_hidden: true
sensor.type_volume_1:
friendly_name: '卷1类型'
homebridge_hidden: true
sensor.type_volume_2:
friendly_name: '卷2类型'
homebridge_hidden: true
sensor.total_size_volume_1:
friendly_name: '卷1总空间'
homebridge_hidden: true
sensor.total_size_volume_2:
friendly_name: '卷2总空间'
homebridge_hidden: true
sensor.used_space_volume_1:
friendly_name: '卷1已用空间'
homebridge_hidden: true
sensor.used_space_volume_2:
friendly_name: '卷2已用空间'
homebridge_hidden: true
sensor.volume_used_volume_1:
friendly_name: '卷1使用率'
homebridge_hidden: true
sensor.volume_used_volume_2:
friendly_name: '卷2使用率'
homebridge_hidden: true
sensor.average_disk_temp_volume_1:
friendly_name: '卷1磁盘平均温度'
homebridge_hidden: true
sensor.average_disk_temp_volume_2:
friendly_name: '卷2磁盘平均温度'
homebridge_hidden: true
sensor.maximum_disk_temp_volume_1:
friendly_name: '卷1磁盘最高温度'
homebridge_hidden: true
sensor.maximum_disk_temp_volume_2:
friendly_name: '卷2磁盘最高温度'
homebridge_hidden: true
sensor.network_down:
friendly_name: '全局下载速率'
homebridge_hidden: true
sensor.network_up:
friendly_name: '全局上传速率'
homebridge_hidden: true
group:
synologydsm:
name: '系统监控(群晖DSM)'
view: no
entities:
- sensor.cpu_load_total
- sensor.cpu_load_user
- sensor.cpu_load_system
- sensor.cpu_load_other
- sensor.cpu_load_1min
- sensor.cpu_load_5min
- sensor.cpu_load_15min
- sensor.memory_usage_real
- sensor.memory_size
- sensor.memory_total_real
- sensor.memory_available_real
- sensor.memory_total_swap
- sensor.memory_available_swap
- sensor.memory_cached
- sensor.name_sda
- sensor.name_sdb
- sensor.device_sda
- sensor.device_sdb
- sensor.status_smart_sda
- sensor.status_smart_sdb
- sensor.status_sda
- sensor.status_sdb
- sensor.exceeded_max_bad_sectors_sda
- sensor.exceeded_max_bad_sectors_sdb
- sensor.below_min_remaining_life_sda
- sensor.below_min_remaining_life_sdb
- sensor.temperature_sda
- sensor.temperature_sdb
- sensor.status_volume_1
- sensor.status_volume_2
- sensor.type_volume_1
- sensor.type_volume_2
- sensor.total_size_volume_1
- sensor.total_size_volume_2
- sensor.used_space_volume_1
- sensor.used_space_volume_2
- sensor.volume_used_volume_1
- sensor.volume_used_volume_2
- sensor.average_disk_temp_volume_1
- sensor.average_disk_temp_volume_2
- sensor.maximum_disk_temp_volume_1
- sensor.maximum_disk_temp_volume_2
- sensor.network_down
- sensor.network_up
7.【glances.yaml】
简介: 通过【Sensor.glances】远程监控安装有glances软件包并提供RESTAPI服务的主机,取得:
- CPU (利用率、温度)
- 内存 (利用率、已用数、可用数)
- 交换区 (利用率、已用数、可用数)
- 磁盘 (利用率、已用数、可用数)
- 进程 (总数、运行数、休眠数)
- 线程 (总数)
- docker (活动的容器数、cpu占用、内存占用)
注意:
前置条件是你所监控的主机已经安装有glances软件包!!!
并且,已经打开RESTAPI服务!!!
glances也是python写的,可以说是远程监控的一大利器,
如何安装本帖不再累述,仅提示打开RESTAPI服务方法:
通常的办法:
通过docker部署glances容器的办法:
设置容器的环境变量:GLANCES_OPT = -w
如何检查测试是否已经打开glances的RESTAPI:
$ curl -X GET http://IP_ADDRESS:61208/api/2/mem/free
得到诸如:{"free": 203943936}的回应即表示成功。
若需要监控多台glances主机,建议设置不同的name项,
并将entity_id中的glances替换为name对应的名称; 如name: docker_test,
sensor.glances_cpu_load 应修改为sensor.docker_test_cpu_load
不要忘了修改glanceshost_IP和glanceshost_PT!!! 最后,cpu温度可能无法获取,对应办法是补充安装和配置lm-sensor,帮助glances监控到正确的CPU温度。
以下是glances.yaml文件内容,请放在packages文件夹下,
可直接通过调用group.glances将其显示在HA前端界面中。
#系统监控软件Glances
sensor:
- platform: glances
# name: docker_test
host: !secret glanceshost_IP #你要监控的glances主机IP地址
port: !secret glanceshost_PT #你要监控的glances主机端口,通常是61208
resources:
- 'processor_load'
- 'cpu_temp'
- 'disk_use_percent'
- 'disk_use'
- 'disk_free'
- 'memory_use_percent'
- 'memory_use'
- 'memory_free'
- 'swap_use_percent'
- 'swap_use'
- 'swap_free'
- 'process_total'
- 'process_running'
- 'process_thread'
- 'process_sleeping'
# - 'docker_active'
# - 'docker_cpu_use'
# - 'docker_memory_use'
homeassistant:
customize:
sensor.glances_cpu_load:
friendly_name: 'CPU利用率'
homebridge_hidden: true
sensor.glances_cpu_temp:
friendly_name: 'CPU温度'
homebridge_hidden: true
sensor.glances_ram_free:
friendly_name: '可用内存'
homebridge_hidden: true
sensor.glances_ram_used_2:
friendly_name: '已用内存'
homebridge_hidden: true
sensor.glances_ram_used:
friendly_name: '内存利用率'
homebridge_hidden: true
sensor.glances_swap_free:
friendly_name: '可用交换'
homebridge_hidden: true
sensor.glances_swap_used_2:
friendly_name: '已用交换'
homebridge_hidden: true
sensor.glances_swap_used:
friendly_name: '交换利用率'
homebridge_hidden: true
sensor.glances_disk_free:
friendly_name: '可用存储'
homebridge_hidden: true
sensor.glances_disk_used_2:
friendly_name: '已用存储'
homebridge_hidden: true
sensor.glances_disk_used:
friendly_name: '存储利用率'
homebridge_hidden: true
sensor.glances_total:
friendly_name: '进程总数'
homebridge_hidden: true
sensor.glances_running:
friendly_name: '运行中的进程数'
homebridge_hidden: true
sensor.glances_sleeping:
friendly_name: '休眠中的进程数'
homebridge_hidden: true
sensor.glances_thread:
friendly_name: '线程总数'
homebridge_hidden: true
# sensor.glances_docker_active:
# friendly_name: '运行中的容器数'
# homebridge_hidden: true
# sensor.glances_docker_cpu_use:
# friendly_name: '容器cpu占用量'
# homebridge_hidden: true
# sensor.glances_docker_memory_use:
# friendly_name: '容器内存占用量'
# homebridge_hidden: true
group:
glances:
name: '远程监控(群晖docker-glances)'
view: no
entities:
- sensor.glances_cpu_load
- sensor.glances_cpu_temp
- sensor.glances_ram_free
- sensor.glances_ram_used_2
- sensor.glances_ram_used
- sensor.glances_swap_free
- sensor.glances_swap_used_2
- sensor.glances_swap_used
- sensor.glances_disk_free
- sensor.glances_disk_used_2
- sensor.glances_disk_used
- sensor.glances_total
- sensor.glances_running
- sensor.glances_sleeping
- sensor.glances_thread
# - sensor.glances_docker_active
# - sensor.glances_docker_cpu_use
# - sensor.glances_docker_memory_use
未完待续......以下内容正在编辑中
8.【routermon.yaml】简介:
通过【sensor.command_line】运行ssh命令登录并提取路由器信息:
- 运行时间
- CPU (1、5、15分钟负载队列长度,.......)
- 内存 (已用、可用、共享、缓存,.......)
- 网络 (,.......)
以下方法可参考但已放弃,新贴中以命令行运行脚本的方式实现路由器监控,并打算制作组件。
效果前瞻(功能完善中):
注意:
前置条件:路由器可以通过SSH KEY 免密码登录
建立SSH KEY配对的方法:
在HA主机正确的用户目录下输入命令:
一路回车带闪电即可,随后在该用户目录下的.ssh文件夹中可以看到两个文件:
id_rsa(私钥)
id_rsa.pub(公钥)
私钥是HA主机用户用的,如果前面用户目录正确就不用动了,
公钥是路由器用的,其内容请复制到路由器正确的用户目录下的.ssh/authorized_keys文件中。
举个例子:
我用的是网件R7000,固件用的是梅林7.5,HA部署在群晖916+的docker下。
所以我需要把id_rsa放在docke的root/.ssh中,把id_rsa.pub的内容写入路由器的root/.ssh/authorized_keys文件中。
实际情况中,我先修改了容器的配置:
然后把id_rsa放在dock/home-assistant/.ssh下,并在容器终端运行:
chmod 600 /root/.ssh/id_rsa
最后把id_rsa.pub的内容复制到剪贴板,打开路由器网页配置界面
像这样直接复制粘贴,应用生效即可。
目前困难:虽然通过SSH向提取信息,但是频繁的提取被路由器认为是不正常的登录,时不时地自动block掉HA系统的IP,5分钟,影响组件的正常工作,也不知道怎么把路由器的这个设定给关掉。考虑是否有必要学写插件,还是增加delay延迟命令之间的发送频率呢?
|