Skip to content

Monitorovanie siete ESPHome

ESPHome je populárny systém na ovládanie zariadení Espressif ESP8266 a ESP32. Tento článok popisuje, ako monitorovať viaceré zariadenia pomocou vlastnej SNMP komponenty ESPHome a populárneho nástroja na monitorovanie siete.

Vďaka tomu môžete detekovať a byť informovaní o anomálnom správaní vašich zariadení, ako sú reštarty, slabý Wi-Fi signál alebo nedostatok voľnej pamäte.

SNMP je podporovaný mnohými aplikáciami, ale tento článok sa zaoberá integráciou s open source nástrojom Zabbix. Predpokladá sa, že máte nainštalovanú a spustenú verziu Zabbix 6.4.

INFO

Príručka na inštaláciu Zabbix je dostupná na webovej stránke Zabbix: https://www.zabbix.com/download

SNMP Komponenta

ESPHome nepodporuje SNMP priamo. Poskytuje však pohodlný spôsob integrácie s externými komponentmi.

Na pridanie SNMP protokolu do zariadenia ESPHome odkazujte na SNMP komponentu umiestnenú na https://github.com/aquaticus/esphome-snmp.

Pridajte nasledujúci kód do vášho ESPHome YAML konfiguračného súboru:

yaml
# Enable SNMP component
snmp:

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

Po nahraní na dosku by ste mali vidieť nasledujúcu správu v logu:

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

Testovanie SNMP

Teraz môžete skúsiť získať nejaké informácie z dosky. Existuje množstvo programov, ktoré môžu prehliadať SNMP dáta. Tu sú niektoré príklady:

Windows

Linux

Tu je ukážkový kód na použitie v Linuxe. Nahraďte IP adresu 192.168.1.10 hodnotou, ktorá zodpovedá adrese vašej dosky.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.1.0

Výsledok vyššie uvedeného dotazu vyzerá ako ten nižšie. Je to popis systému. Je to SNMP objekt sysDescr, ktorý sa prekladá na objekt 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”

Prípadne môžete skúsiť získať čas prevádzky systému.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.25.1.1.0

Výsledok:

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

Hodnota časových tikov sa neustále mení. Každé volanie vám dáva iný počet.

Pre zoznam všetkých objektov poskytovaných komponentom SNMP si pozrite dokumentáciu komponentu.

Šablóny

Stiahnite si súbor so šablónou z: https://github.com/aquaticus/esphome_zabbix_templates

Skladá sa z 3 šablón:

  • Esphome by SNMP - základná šablóna
  • Esphome ESP32 by SNMP - šablóna pre zariadenia ESP32 (vrátane C3, S2 a podobne)
  • Esphome ESP8266 by SNMP - šablóna pre ESP8266

Hlavný rozdiel medzi šablónami ESP8266 a ESP32 je v údajoch o hromade.

Importujte súbor so šablónou kliknutím na tlačidlo Import v Zber údajov→Šablóny.

Hostitelia

Otvorte rozhranie Zabbix a prejdite na Monitorovanie→Hostitelia. Kliknite na Vytvoriť hostiteľa v pravom hornom rohu.

Zabbix hostitelia

  1. Ako šablónu vyberte Esphome ESP32 by SNMP alebo Esphome ESP8266 by SNMP
  2. Pridajte SNMP rozhranie.
  3. Vyplňte polia IP alebo DNS
  4. Ostatné polia ponechajte s predvolenými hodnotami.
  5. Na konci kliknite na tlačidlo Pridať.

V zozname monitorovaných hostiteľov (Monitorovanie→Hostitelia) by ste mali vidieť nový záznam.

V stĺpci Dostupnosť bude ikona SNMP. Spočiatku bude sivá, ale po niekoľkých sekundách by mala zmeniť farbu na zelenú.

Dostupnosť SNMP

Monitorovanie

Akonáhle uvidíte zelenú ikonu, môžete preskúmať údaje SNMP.

Ak kliknete na odkaz Najnovšie údaje, uvidíte zoznam zhromaždených položiek.

Nový hostiteľ

Alarmy

Zabbix môže automaticky detekovať anomálne situácie. V terminológii Zabbixu sa to nazýva "Spúšťač". Šablóna ESPHome obsahuje spúšťače, ktoré detekujú typické problémy, napríklad resetovanie dosky. Pre zoznam dostupných spúšťačov vyberte Spúšťače z menu, keď kliknete na názov hostiteľa.

Tu je predvolený zoznam spúšťačov:

  • Zmenený firmvér
  • Vysoká strata ICMP ping
  • Vysoký čas odozvy ICMP ping
  • Nedostupné cez ICMP ping
  • Hostiteľ bol reštartovaný
  • Žiadne zhromažďovanie údajov SNMP
  • Zmenený názov systému
  • Slabý WiFi signál po dobu 5 minút
  • Strata WiFi pripojenia

Môžete tiež vytvoriť svoje vlastné spúšťače, napríklad na monitorovanie využitia haldy.

Dostupnosť siete

Komponent SNMP môže poskytnúť dostupnosť siete (SNMP objekt sysUpTime1.3.6.1.2.1.1.3). Tento parameter je kľúčový na detekciu udalostí straty pripojenia.

Bohužiaľ, komponent WiFi v ESPHome neposkytuje tieto informácie. Z tohto dôvodu komponent SNMP predvolene vždy hlási sysUpTime ako 0.

Aby ste získali zmysluplné údaje, musíte upraviť pôvodný komponent WiFi a pridať jednu funkciu.

Môžete to urobiť manuálne alebo použiť už upravenú verziu z repozitára.

Manuálna úprava komponentu WiFi

Naklonujte a nainštalujte ESPHome z githubu.

Upravte dva súbory wifi_component.cpp a wifi_component.h v adresári esphome/components/wifi.

Na riadku 282 v wifi_component.h pridajte dva riadky (môže to byť kdekoľvek v verejnej sekcii):

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

 protected:
  uint32_t connected_timestamp_{0};

V wifi_component.cpp pridajte na riadku 518 tesne pred log správu "WiFi Connected":

cpp
this->connected_timestamp_ = millis();

Testovanie dostupnosti siete

Skopilujte a nahrajte nový firmware.

Teraz, keď čítate objekt sysUpTime 1.3.6.1.2.1.1.3, mali by ste získať rôzne hodnoty pri každom vykonaní operácie získania.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.3.0

Mali by ste vidieť hodnotu odlišnú od 0.

Zoznam dostupných OID

Pre zobrazenie úplného zoznamu objektov poskytovaných komponentom SNMP v ESPHome si pozrite zoznam OID