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
- MIB Browser https://www.ireasoning.com/mibbrowser.shtml
- Paessler SNMP Monitor https://www.paessler.com/snmp_monitor
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.
- Mallina valige Esphome ESP32 by SNMP või Esphome ESP8266 by SNMP
- Lisage
SNMP
liides. - Täitke IP või DNS väljad
- Jätke ülejäänud väljad vaikimisi väärtustega.
- 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.
Monitooring {/monitoring/}
Kui näete rohelist ikooni, saate uurida SNMP andmeid.
Kui klõpsate Viimased andmed lingil, näete kogutud üksuste loendit.
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