Monitoraġġ tan-netwerk ESPHome
ESPHome huwa sistema popolari biex tikkontrolla apparati Espressif ESP8266 u ESP32. Dan l-artiklu jiddeskrivi kif tissorvelja diversi apparati billi tuża komponent SNMP apposta ta' ESPHome u għodda popolari ta' monitoraġġ tan-netwerk.
Grazzi għal dan, tista' tiskopri u tkun infurmat dwar imġieba anomala tal-apparati tiegħek, bħal riavviji, sinjal baxx tal-Wi-Fi, jew nuqqas ta' memorja ħielsa.
SNMP huwa appoġġjat minn ħafna applikazzjonijiet, iżda dan l-artiklu jiddiskuti l-integrazzjoni mal-għodda open source Zabbix. Huwa mistenni li għandek Zabbix verżjoni 6.4 installata u qed taħdem.
INFO
Gwida għall-installazzjoni ta' Zabbix hija disponibbli fuq il-paġna web ta' Zabbix: https://www.zabbix.com/download
Komponent SNMP
ESPHome ma jappoġġjax SNMP minnufih. Iżda jipprovdi mod konvenjenti biex tintegra ma' komponenti esterni.
Biex iżżid il-protokoll SNMP ma' apparat ESPHome irreferi għall-Komponent SNMP li jinsab f'https://github.com/aquaticus/esphome-snmp.
Żid il-kodiċi li ġej mal-fajl tal-konfigurazzjoni YAML ta' ESPHome tiegħek:
yaml
# Enable SNMP component
snmp:
# Retrieve SNMP component from github
external_components:
- source: github://aquaticus/esphome-snmp
Meta ttella' fuq bord, għandek tara l-messaġġ li ġej fil-log:
log
[00:00:00][C][snmp:268]: SNMP Config:
[00:00:00][C][snmp:269]: Contact: ""
[00:00:00][C][snmp:270]: Location: ""
Ittestjar SNMP
Issa tista' tipprova tikseb xi informazzjoni mill-bord. Hemm ħafna programmi li jistgħu jibbrawżjaw id-data SNMP. Hawn huma xi eżempji:
Windows
- MIB Browser https://www.ireasoning.com/mibbrowser.shtml
- Paessler SNMP Monitor https://www.paessler.com/snmp_monitor
Linux
Hawnhekk hawn kodiċi ta' kampjun biex tuża fuq Linux. Ibdel l-indirizz IP 192.168.1.10
għal valur li jaqbel mal-indirizz tal-bord tiegħek.
bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.1.0
Ir-riżultat tal-mistoqsija ta' hawn fuq jidher bħal dak ta' hawn taħt. Huwa deskrizzjoni tas-sistema. Huwa oġġett SMTP sysDescr
li jittraduċi għal ID tal-oġġett 1.3.6.1.2.1.1.1.0
.
log
iso.3.6.1.2.1.1.1.0 = STRING: "ESPHome version 2023.3.2 compiled Mar 29 2023, 00:00:01, Board wemos_d1_mini32”
Opcjonalment tista' tipprova tikseb il-ħin tas-sistema.
bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.25.1.1.0
Ir-riżultat:
log
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (66281) 0:11:02.81
Il-valur tal-ħin tal-ticks qed jinbidel kontinwament. Kull sejħa tagħtik numru differenti.
Għal lista ta' oġġetti kollha pprovduti mill-komponent SNMP, ara d-dokumentazzjoni tal-komponent.
Templates
Niżżel il-fajl tat-template minn: https://github.com/aquaticus/esphome_zabbix_templates
Jikkonsisti minn 3 templates:
- Esphome by SNMP - template bażiku
- Esphome ESP32 by SNMP - template għal apparati ESP32 (inkluż C3, S2 u oħrajn)
- Esphome ESP8266 by SNMP - template għal ESP8266
Id-differenza prinċipali bejn it-templates ESP8266 u ESP32 hija d-dejta tal-heap.
Importa l-fajl tat-template billi tikklikkja l-buttuna Import f'Ġbir tad-dejta→Templates.
Hosts
Iftaħ l-interface ta' Zabbix u mur f'Monitoring→Hosts. Ikklikkja Create host fir-rokna ta' fuq tal-lemin.
- Bħala template agħżel Esphome ESP32 by SNMP jew Esphome ESP8266 by SNMP
- Żid interface
SNMP
. - Imli l-kampijiet IP jew DNS
- Ħalli l-bqija tal-kampijiet bil-valuri default.
- Fl-aħħar ikklikkja l-buttuna
Add
.
Fil-lista tal-hosts immonitorjati (Monitoring→Hosts) għandek tara entrata ġdida.
Se jkun hemm ikona SNMP fil-kolonna Availability. Inizjalment, se tkun griża iżda wara ftit sekondi għandha tinbidel għal ħadra.
Monitoring
Ladarba tara l-ikona ħadra tista' teżamina d-Dejta SNMP.
Jekk tikklikkja fuq il-link Latest data tara l-lista ta' oġġetti miġbura.
Alarms
Zabbix jista' awtomatikament jidentifika sitwazzjonijiet anomali. Fit-terminoloġija ta' Zabbix, dan jissejjaħ "Trigger". It-template ESPHome jiġi b'triggers li jidentifikaw problemi tipiċi, pereżempju, il-bord ġie resetjat. Għal lista ta' triggers disponibbli agħżel Triggers
mill-menu meta tikklikkja l-isem tal-host.
Hawnhekk hawn lista default ta' triggers:
- Il-firmware inbidel
- Telf għoli ta' ping ICMP
- Ħin ta' risposta għoli ta' ping ICMP
- Mhux disponibbli b'ping ICMP
- Il-host ġie rristartjat
- L-ebda ġbir ta' dejta SNMP
- L-isem tas-sistema inbidel
- Sinjal WiFi dgħajjef għal 5m
- Konnessjoni WiFi mitlufa
Tista' wkoll toħloq il-grillu tiegħek, pereżempju, biex tissorvelja l-użu tal-heap.
Ħin ta' operazzjoni tan-netwerk
Il-Komponent SNMP jista' jipprovdi ħin ta' operazzjoni tan-netwerk (SNMP oġġett sysUpTime1.3.6.1.2.1.1.3
). Dan il-parametru huwa kruċjali biex jinstabu avvenimenti ta' telf ta' konnessjoni.
Sfortunatament il-komponent WiFi ta' ESPHome ma jipprovdix din l-informazzjoni. Minħabba f'hekk, b'mod awtomatiku l-Komponent SNMP jirrapporta dejjem sysUpTime
bħala 0.
Biex tikseb data sinifikanti trid timmodifika l-komponent WiFi oriġinali u żżid funzjoni waħda.
Tista' tagħmel dan manwalment jew tuża dak diġà modifikat mir-repożitorju.
Immodifika manwalment il-komponent WiFi
Klonja u installa ESPHome minn github.
Editja żewġ fajls wifi_component.cpp
u wifi_component.h
fid-direttorju esphome/components/wifi
.
Fil-linja 282 ta' wifi_component.h
żid żewġ linji (jista' jkun kullimkien fis-sezzjoni pubblika):
cpp
#define WIFI_CONNECTED_TIMESTAMP_AVAILABLE
uint32_t wifi_connected_timestamp() {return connected_timestamp_;}
protected:
uint32_t connected_timestamp_{0};
F'wifi_component.cpp
żid fil-linja 518 eżatt qabel il-messaġġ tal-log "WiFi Connected":
cpp
this->connected_timestamp_ = millis();
Ittestja l-ħin ta' operazzjoni tan-netwerk
Ikkompila u ittella' firmware ġdid.
Issa meta taqra l-oġġett sysUpTime 1.3.6.1.2.1.1.3
għandek tikseb valuri differenti kull darba li l-operazzjoni ta' ġbir tiġi esegwita.
bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.3.0
Għandek tara valur differenti minn 0.
Lista ta' OIDs disponibbli
Biex tara lista sħiħa ta' oġġetti pprovduti mill-Komponent SNMP ta' ESPHome ara Lista ta' OID