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
- MIB Browser https://www.ireasoning.com/mibbrowser.shtml
- Paessler SNMP Monitor https://www.paessler.com/snmp_monitor
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.
- Sablonként válassza az Esphome ESP32 by SNMP vagy az Esphome ESP8266 by SNMP lehetőséget.
- Adjon hozzá
SNMP
interfészt. - Töltse ki az IP vagy DNS mezőket.
- A többi mezőt hagyja alapértelmezett értéken.
- 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.
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.
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