Skip to content

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

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.

Zabbix hosts

  1. Bħala template agħżel Esphome ESP32 by SNMP jew Esphome ESP8266 by SNMP
  2. Żid interface SNMP.
  3. Imli l-kampijiet IP jew DNS
  4. Ħalli l-bqija tal-kampijiet bil-valuri default.
  5. 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.

SNMP availability

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.

New host

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