Skip to content

ESPHome hálózati megfigyelés

Az ESPHome egy népszerű rendszer az Espressif ESP8266 és ESP32 eszközök vezérlésére. Ez a cikk leírja, hogyan lehet több eszközt megfigyelni egy egyedi ESPHome SNMP komponens és egy népszerű hálózati megfigyelő eszköz segítségével.

Ennek köszönhetően észlelheti és értesülhet az eszközei rendellenes viselkedéséről, például újraindításokról, alacsony Wi-Fi jelről vagy szabad memória hiányáról.

Az SNMP-t számos alkalmazás támogatja, de ez a cikk a nyílt forráskódú Zabbix eszközzel való integrációt tárgyalja. Feltételezzük, hogy a Zabbix 6.4-es verziója telepítve és fut.

INFO

A Zabbix telepítési útmutató elérhető a Zabbix weboldalán: https://www.zabbix.com/download

SNMP Komponens

Az ESPHome alapértelmezés szerint nem támogatja az SNMP-t. De kényelmes módot biztosít a külső komponensekkel való integrációra.

Az SNMP protokoll ESPHome eszközhöz való hozzáadásához hivatkozzon az SNMP Komponensre, amely a következő helyen található: https://github.com/aquaticus/esphome-snmp.

Adja hozzá a következő kódot az ESPHome YAML konfigurációs fájljához:

yaml
# Enable SNMP component
snmp:

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

Amikor feltölti a táblára, a következő üzenetet kell látnia a naplóban:

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

SNMP Tesztelése

Most megpróbálhat néhány információt lekérni a tábláról. Számos program létezik, amely böngészheti az SNMP adatokat. Íme néhány példa:

Windows

Linux

Íme egy példa kód Linuxon való használatra. Cserélje le az IP címet 192.168.1.10 egy olyan értékre, amely megfelel a táblája címének.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.1.0

A fenti lekérdezés eredménye az alábbihoz hasonló. Ez a rendszer leírása. Ez az SMTP objektum sysDescr, amely az 1.3.6.1.2.1.1.1.0 objektumazonosítóra fordítódik.

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”

Opcionálisan megpróbálhatja lekérdezni a rendszer üzemidejét.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.25.1.1.0

Az eredmény:

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

Az időtikusz érték folyamatosan változik. Minden hívás más számot ad.

Az SNMP komponens által biztosított összes objektum listájáért lásd a komponens dokumentációját.

Sablonok

Töltse le a sablonfájlt innen: https://github.com/aquaticus/esphome_zabbix_templates

Három sablonból áll:

  • Esphome by SNMP - alap sablon
  • Esphome ESP32 by SNMP - sablon ESP32 eszközökhöz (beleértve a C3, S2 stb.)
  • Esphome ESP8266 by SNMP - sablon ESP8266-hoz

A fő különbség az ESP8266 és az ESP32 sablonok között a heap adatokban van.

Importálja a sablonfájlt az Import gombra kattintva az Adatgyűjtés→Sablonok menüpontban.

Hosztok

Nyissa meg a Zabbix felületet, és menjen a Monitoring→Hosztok menüpontra. Kattintson a Hoszt létrehozása gombra a jobb felső sarokban.

Zabbix hosztok

  1. Sablonként válassza az Esphome ESP32 by SNMP vagy az Esphome ESP8266 by SNMP lehetőséget.
  2. Adjon hozzá SNMP interfészt.
  3. Töltse ki az IP vagy DNS mezőket.
  4. A többi mezőt hagyja alapértelmezett értéken.
  5. Végül kattintson az Add gombra.

A megfigyelt hosztok listáján (Monitoring→Hosztok) egy új bejegyzést kell látnia.

Az Elérhetőség oszlopban egy SNMP ikon lesz. Kezdetben szürke lesz, de néhány másodperc múlva zöldre vált.

SNMP elérhetőség

Monitorozás

Amint látja a zöld ikont, megvizsgálhatja az SNMP adatokat.

Ha rákattint a Legújabb adatok linkre, látni fogja az összegyűjtött elemek listáját.

Új hoszt

Riasztások

A Zabbix automatikusan képes észlelni a rendellenes helyzeteket. A Zabbix terminológiájában ezt "Trigger"-nek hívják. Az ESPHome sablon triggerek segítségével észleli a tipikus problémákat, például ha az eszköz újraindult. Az elérhető triggerek listájáért válassza a Triggers menüpontot, amikor a hoszt nevére kattint.

Íme az alapértelmezett triggerek listája:

  • A firmware megváltozott
  • Magas ICMP ping veszteség
  • Magas ICMP ping válaszidő
  • Nem elérhető ICMP ping által
  • A hoszt újraindult
  • Nincs SNMP adatgyűjtés
  • A rendszer neve megváltozott
  • Gyenge WiFi jel 5 percig
  • WiFi kapcsolat elveszett

Készíthetsz saját riasztásokat is, például a heap használatának figyelésére.

Hálózati rendelkezésre állás

Az SNMP komponens biztosíthatja a hálózati rendelkezésre állást (SNMP objektum sysUpTime1.3.6.1.2.1.1.3). Ez a paraméter kulcsfontosságú a kapcsolatvesztési események észleléséhez.

Sajnos az ESPHome WiFi komponens nem biztosítja ezt az információt. Emiatt az SNMP komponens alapértelmezés szerint mindig 0-ként jelenti a sysUpTime-ot.

Ahhoz, hogy értelmes adatokat kapj, módosítanod kell az eredeti WiFi komponenst, és hozzá kell adnod egy funkciót.

Ezt megteheted manuálisan, vagy használhatod a már módosított verziót a tárházból.

WiFi komponens manuális módosítása

Klónozd és telepítsd az ESPHome-t a githubról.

Szerkeszd a wifi_component.cpp és wifi_component.h fájlokat az esphome/components/wifi könyvtárban.

A wifi_component.h 282. sorában adj hozzá két sort (bárhol a public szekcióban):

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

 protected:
  uint32_t connected_timestamp_{0};

A wifi_component.cpp fájlban add hozzá az 518. sorban, közvetlenül a "WiFi Connected" naplóüzenet előtt:

cpp
this->connected_timestamp_ = millis();

Hálózati rendelkezésre állás tesztelése

Fordítsd le és töltsd fel az új firmware-t.

Most, amikor a sysUpTime 1.3.6.1.2.1.1.3 objektumot olvasod, minden lekérdezés végrehajtásakor különböző értékeket kell kapnod.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.3.0

Egy 0-tól eltérő értéket kell látnod.

Elérhető OID-ok listája

Az ESPHome SNMP komponens által biztosított objektumok teljes listájának megtekintéséhez lásd az OID listát