Skip to content

ESPHome võrgu jälgimine

ESPHome on populaarne süsteem Espressif ESP8266 ja ESP32 seadmete juhtimiseks. See artikkel kirjeldab, kuidas jälgida mitut seadet, kasutades kohandatud ESPHome SNMP komponenti ja populaarset võrgu jälgimise tööriista.

Tänu sellele saate tuvastada ja saada teavet oma seadmete anomaalsete käitumiste kohta, nagu taaskäivitused, nõrk Wi-Fi signaal või vaba mälu puudumine.

SNMP-d toetavad paljud rakendused, kuid see artikkel käsitleb integreerimist avatud lähtekoodiga tööriista Zabbix. Eeldatakse, et teil on Zabbix versioon 6.4 installitud ja töötav.

INFO

Zabbixi paigaldusjuhend on saadaval Zabbixi veebilehel: https://www.zabbix.com/download

SNMP komponent

ESPHome ei toeta SNMP-d vaikimisi. Kuid see pakub mugavat viisi väliste komponentidega integreerumiseks.

SNMP protokolli lisamiseks ESPHome seadmele viidake SNMP komponendile, mis asub aadressil https://github.com/aquaticus/esphome-snmp.

Lisage järgmine kood oma ESPHome YAML konfiguratsioonifaili:

yaml
# Enable SNMP component
snmp:

# Retrieve SNMP component from github
external_components:
   - source: github://aquaticus/esphome-snmp

Kui see on plaadile üles laaditud, peaksite logis nägema järgmist teadet:

log
[00:00:00][C][snmp:268]: SNMP Config:
[00:00:00][C][snmp:269]:   Contact: ""
[00:00:00][C][snmp:270]:   Location: ""

SNMP testimine

Nüüd saate proovida plaadilt teavet hankida. SNMP andmete sirvimiseks on palju programme. Siin on mõned näited:

Windows

Linux

Siin on näidiskood, mida Linuxis kasutada. Asendage IP-aadress 192.168.1.10 väärtusega, mis vastab teie plaadi aadressile.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.1.0

Ülaltoodud päringu tulemus näeb välja nagu allpool. See on süsteemi kirjeldus. See on SNMP objekt sysDescr, mis tõlgitakse objektiks ID 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”

Valikuliselt võite proovida saada süsteemi tööaega.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.25.1.1.0

Tulemus:

log
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (66281) 0:11:02.81

Aja tiksumise väärtus muutub pidevalt. Iga kõne annab teile erineva numbri.

SNMP komponendi pakutavate objektide loendi leiate komponendi dokumentatsioonist.

Mallid {/templates/}

Laadige alla mallifail aadressilt: https://github.com/aquaticus/esphome_zabbix_templates

See koosneb kolmest mallist:

  • Esphome by SNMP - põhimal
  • Esphome ESP32 by SNMP - mall ESP32 seadmetele (sealhulgas C3, S2 ja nii edasi)
  • Esphome ESP8266 by SNMP - mall ESP8266-le

Peamine erinevus ESP8266 ja ESP32 mallide vahel on mäluhaldusandmed.

Importige mallifail, klõpsates Import nuppu andmete kogumise→Mallid.

Hostid {/hosts/}

Avage Zabbixi liides ja minge Monitooring→Hostid. Klõpsake paremas ülanurgas Loo host.

Zabbix hosts

  1. Mallina valige Esphome ESP32 by SNMP või Esphome ESP8266 by SNMP
  2. Lisage SNMP liides.
  3. Täitke IP või DNS väljad
  4. Jätke ülejäänud väljad vaikimisi väärtustega.
  5. Lõpuks klõpsake Lisa nuppu.

Monitooritavate hostide loendis (Monitooring→Hostid) peaksite nägema uut kirjet.

Saadavus veerus on SNMP ikoon. Alguses on see hall, kuid mõne sekundi pärast peaks see muutuma roheliseks.

SNMP availability

Monitooring {/monitoring/}

Kui näete rohelist ikooni, saate uurida SNMP andmeid.

Kui klõpsate Viimased andmed lingil, näete kogutud üksuste loendit.

New host

Häired {/alarms/}

Zabbix suudab automaatselt tuvastada anomaalseid olukordi. Zabbixi terminoloogias nimetatakse seda "Käivituseks". ESPHome mall sisaldab käivitusi, mis tuvastavad tüüpilisi probleeme, näiteks kui plaat on lähtestatud. Saadaval olevate käivituste loendi saamiseks valige Käivitused menüüst, kui klõpsate hosti nime.

Siin on vaikimisi käivituste loend:

  • Püsivara on muutunud
  • Kõrge ICMP ping kadu
  • Kõrge ICMP ping vastuse aeg
  • Pole saadaval ICMP pingiga
  • Host on taaskäivitatud
  • SNMP andmete kogumine puudub
  • Süsteemi nimi on muutunud
  • Nõrk WiFi signaal 5 minuti jooksul
  • WiFi ühendus kadunud

Saate luua ka oma päästikuid, näiteks jälgida kuhja kasutust.

Võrgu tööaeg

SNMP komponent võib pakkuda võrgu tööaega (SNMP objekt sysUpTime1.3.6.1.2.1.1.3). See parameeter on oluline ühenduse kadumise sündmuste tuvastamiseks.

Kahjuks ei paku ESPHome WiFi komponent seda teavet. Seetõttu teatab SNMP komponent vaikimisi alati sysUpTime väärtuseks 0.

Et saada tähenduslikke andmeid, peate muutma algset WiFi komponenti ja lisama ühe funktsiooni.

Seda saate teha käsitsi või kasutada juba muudetud versiooni hoidlast.

Muuda WiFi komponenti käsitsi

Klooni ja installi ESPHome GitHubist.

Muuda kahte faili wifi_component.cpp ja wifi_component.h kataloogis esphome/components/wifi.

Lisa wifi_component.h failis real 282 kaks rida (see võib olla avalikus sektsioonis ükskõik kus):

cpp
#define WIFI_CONNECTED_TIMESTAMP_AVAILABLE
  uint32_t wifi_connected_timestamp() {return connected_timestamp_;}

 protected:
  uint32_t connected_timestamp_{0};

Lisa wifi_component.cpp failis real 518 vahetult enne "WiFi Connected" logisõnumit:

cpp
this->connected_timestamp_ = millis();

Testi võrgu tööaega

Koosta ja laadi üles uus püsivara.

Nüüd, kui loed sysUpTime 1.3.6.1.2.1.1.3 objekti, peaksid saama erinevaid väärtusi iga kord, kui teostad get operatsiooni.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.3.0

Sa peaksid nägema väärtust, mis erineb 0-st.

Saadaval olevate OID-ide loetelu

Et näha täielikku loetelu objektidest, mida ESPHome SNMP komponent pakub, vaata OID loetelu