ESPHome tīkla uzraudzība
ESPHome ir populāra sistēma Espressif ESP8266 un ESP32 ierīču vadībai. Šajā rakstā aprakstīts, kā uzraudzīt vairākas ierīces, izmantojot pielāgotu ESPHome SNMP komponentu un populāru tīkla uzraudzības rīku.
Pateicoties tam, jūs varat atklāt un saņemt informāciju par jūsu ierīču anomālām darbībām, piemēram, restartiem, zemu Wi-Fi signālu vai brīvas atmiņas trūkumu.
SNMP atbalsta daudzas lietojumprogrammas, bet šajā rakstā tiek apspriesta integrācija ar atvērtā koda rīku Zabbix. Tiek pieņemts, ka jums ir uzstādīta un darbojas Zabbix versija 6.4.
INFO
Zabbix uzstādīšanas ceļvedis ir pieejams Zabbix tīmekļa lapā: https://www.zabbix.com/download
SNMP Komponents
ESPHome pēc noklusējuma neatbalsta SNMP. Bet tas nodrošina ērtu veidu, kā integrēties ar ārējiem komponentiem.
Lai pievienotu SNMP protokolu ESPHome ierīcei, atsaucieties uz SNMP komponentu, kas atrodas https://github.com/aquaticus/esphome-snmp.
Pievienojiet sekojošo kodu savam ESPHome YAML konfigurācijas failam:
yaml
# Enable SNMP component
snmp:
# Retrieve SNMP component from github
external_components:
- source: github://aquaticus/esphome-snmp
Kad tas ir augšupielādēts uz plates, jums vajadzētu redzēt sekojošo ziņojumu žurnālā:
log
[00:00:00][C][snmp:268]: SNMP Config:
[00:00:00][C][snmp:269]: Contact: ""
[00:00:00][C][snmp:270]: Location: ""
SNMP Testēšana
Tagad jūs varat mēģināt iegūt informāciju no plates. Ir daudz programmu, kas var pārlūkot SNMP datus. Šeit ir daži piemēri:
Windows
- MIB Browser https://www.ireasoning.com/mibbrowser.shtml
- Paessler SNMP Monitor https://www.paessler.com/snmp_monitor
Linux
Šeit ir parauga kods, ko izmantot Linux. Aizstājiet IP adresi 192.168.1.10
ar vērtību, kas atbilst jūsu plates adresei.
bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.1.0
Iepriekš minētās vaicājuma rezultāts izskatās kā zemāk redzamais. Tā ir sistēmas apraksts. Tas ir SMTP objekts sysDescr
, kas tiek tulkots kā 1.3.6.1.2.1.1.1.0
objekta ID.
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”
Varat mēģināt iegūt sistēmas darbības laiku.
bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.25.1.1.0
Rezultāts:
log
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (66281) 0:11:02.81
Laika atzīmju vērtība nepārtraukti mainās. Katrs izsaukums dod jums citu numuru.
Lai iegūtu visu objektu sarakstu, ko nodrošina SNMP komponents, skatiet komponenta dokumentāciju.
Veidnes
Lejupielādējiet veidnes failu no: https://github.com/aquaticus/esphome_zabbix_templates
Tas sastāv no 3 veidnēm:
- Esphome by SNMP - pamata veidne
- Esphome ESP32 by SNMP - veidne ESP32 ierīcēm (ieskaitot C3, S2 un tā tālāk)
- Esphome ESP8266 by SNMP - veidne ESP8266
Galvenā atšķirība starp ESP8266 un ESP32 veidnēm ir heap dati.
Importējiet veidnes failu, noklikšķinot uz Import pogas Datu vākšana→Veidnes.
Saimnieki
Atveriet Zabbix interfeisu un dodieties uz Uzraudzība→Saimnieki. Noklikšķiniet uz Izveidot saimnieku augšējā labajā stūrī.
- Kā veidni izvēlieties Esphome ESP32 by SNMP vai Esphome ESP8266 by SNMP
- Pievienojiet
SNMP
interfeisu. - Aizpildiet IP vai DNS laukus
- Atstājiet pārējos laukus ar noklusējuma vērtībām.
- Beigās noklikšķiniet uz
Pievienot
pogas.
Uzraudzīto saimnieku sarakstā (Uzraudzība→Saimnieki) jums vajadzētu redzēt jaunu ierakstu.
SNMP ikona būs Pieejamība kolonnā. Sākotnēji tā būs pelēka, bet pēc dažām sekundēm tai vajadzētu kļūt zaļai.
Uzraudzība
Kad redzat zaļo ikonu, varat pārbaudīt SNMP datus.
Ja noklikšķināsiet uz Jaunākie dati saites, jūs redzēsiet savākto vienumu sarakstu.
Trauksmes
Zabbix var automātiski noteikt anomālas situācijas. Zabbix terminoloģijā to sauc par "Trigeri". ESPHome veidne ir aprīkota ar trigeriem, kas nosaka tipiskas problēmas, piemēram, dēlis tika atiestatīts. Lai iegūtu pieejamo trigeru sarakstu, izvēlieties Trigeri
no izvēlnes, kad noklikšķināt uz saimnieka nosaukuma.
Šeit ir noklusējuma trigeru saraksts:
- Programmaparatūra ir mainījusies
- Augsts ICMP ping zudums
- Augsts ICMP ping atbildes laiks
- Nav pieejams ar ICMP ping
- Saimnieks ir restartēts
- Nav SNMP datu vākšanas
- Sistēmas nosaukums ir mainījies
- Vājš WiFi signāls 5 minūtes
- WiFi savienojums zaudēts
Jūs varat arī izveidot savus trigerus, piemēram, lai uzraudzītu heap izmantošanu.
Tīkla darbspējas laiks
SNMP Komponents var nodrošināt tīkla darbspējas laiku (SNMP objekts sysUpTime1.3.6.1.2.1.1.3
). Šis parametrs ir būtisks, lai noteiktu savienojuma zuduma notikumus.
Diemžēl ESPHome WiFi komponents nesniedz šo informāciju. Tāpēc pēc noklusējuma SNMP Komponents vienmēr ziņo sysUpTime
kā 0.
Lai iegūtu nozīmīgus datus, jums ir jāmodificē oriģinālais WiFi komponents un jāpievieno viena funkcija.
To var izdarīt manuāli vai izmantot jau modificēto no repozitorija.
Manuāli modificēt WiFi komponentu
Klonējiet un instalējiet ESPHome no github.
Rediģējiet divus failus wifi_component.cpp
un wifi_component.h
direktorijā esphome/components/wifi
.
- rindā failā
wifi_component.h
pievienojiet divas rindas (tās var būt jebkurā publiskajā sadaļā):
cpp
#define WIFI_CONNECTED_TIMESTAMP_AVAILABLE
uint32_t wifi_connected_timestamp() {return connected_timestamp_;}
protected:
uint32_t connected_timestamp_{0};
Failā wifi_component.cpp
pievienojiet 518. rindā tieši pirms "WiFi Connected" log ziņojuma:
cpp
this->connected_timestamp_ = millis();
Testēt tīkla darbspējas laiku
Kompilējiet un augšupielādējiet jaunu programmaparatūru.
Tagad, kad lasāt sysUpTime 1.3.6.1.2.1.1.3
objektu, jums vajadzētu iegūt dažādas vērtības katru reizi, kad tiek veikta iegūšanas operācija.
bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.3.0
Jums vajadzētu redzēt vērtību, kas atšķiras no 0.
Pieejamo OID saraksts
Lai redzētu pilnu objektu sarakstu, ko nodrošina ESPHome SNMP Komponents, skatiet OID saraksts