Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
IoT Edge 1.1
Důležité
Datum ukončení podpory ioT Edge 1.1 bylo 13. prosince 2022. Informace o tom, jak se tento produkt, služba, technologie nebo rozhraní API podporují, najdete v životním cyklu produktů Společnosti Microsoft . Další informace o aktualizaci na nejnovější verzi IoT Edge najdete v tématu Aktualizace IoT Edge.
Pokud ve vašem prostředí dochází k problémům se spouštěním Azure IoT Edge, použijte tento článek jako průvodce odstraňováním potíží a diagnostikou.
Spuštění příkazu check
Prvním krokem při řešení potíží se službou IoT Edge by mělo být použití check příkazu, který spouští kolekci testů konfigurace a připojení pro běžné problémy. Příkaz check je k dispozici ve verzi 1.0.7 a novější.
Poznámka:
Nástroj pro řešení potíží nemůže spustit kontroly připojení, pokud je zařízení IoT Edge za proxy serverem.
Příkaz můžete spustit check následujícím způsobem nebo příznak zahrnout --help , abyste zobrazili úplný seznam možností:
V Linuxu:
sudo iotedge check
V systému Windows
iotedge check
Nástroj pro řešení potíží spouští mnoho kontrol seřazených do těchto tří kategorií:
- Kontroly konfigurace kontrolují podrobnosti, které by mohly bránit zařízením IoT Edge v připojení ke cloudu, včetně problémů s konfiguračním souborem a modulem kontejneru.
- Kontroly spojení ověřují, zda má runtime IoT Edge přístup k portům na hostitelském zařízení a zda se všechny komponenty IoT Edge mohou připojit ke službě IoT Hub. Tato sada kontrol vrací chyby, pokud je zařízení IoT Edge za proxy serverem.
- Kontroly připravenosti pro produkční prostředí hledají doporučené osvědčené postupy produkce, jako je stav certifikátů certifikační autority zařízení (CA) a konfigurace souboru protokolu modulu.
Nástroj pro kontrolu IoT Edge používá ke spuštění diagnostiky kontejner. Image kontejneru mcr.microsoft.com/azureiotedge-diagnostics:latestje k dispozici prostřednictvím služby Microsoft Container Registry. Pokud potřebujete spustit kontrolu na zařízení bez přímého přístupu k internetu, budou vaše zařízení potřebovat přístup k imagi kontejneru.
Informace o všech diagnostických kontrolách, které tento nástroj spouští, včetně toho, co dělat, pokud se zobrazí chyba nebo upozornění, najdete v tématu Kontroly řešení potíží se službou IoT Edge.
Shromáždění informací o ladění pomocí příkazu support-bundle
Pokud potřebujete shromáždit protokoly ze zařízení IoT Edge, nejpohodlnější způsob je použít support-bundle tento příkaz. Ve výchozím nastavení tento příkaz shromažďuje modul, správce zabezpečení IoT Edge a protokoly modulu kontejnerů, iotedge check výstup JSON a další užitečné informace o ladění. Zkomprimuje je do jednoho souboru pro snadné sdílení. Příkaz support-bundle je k dispozici ve verzi 1.0.9 a novější.
Spuštěním support-bundle příkazu s příznakem --since určete, jak dlouho od minulosti chcete získat protokoly. Například 6h budou protokoly dostávat od posledních šesti hodin, 6d od posledních šesti dnů, 6m od posledních šesti minut atd.
--help Pokud chcete zobrazit úplný seznam možností, zahrňte příznak.
V Linuxu:
sudo iotedge support-bundle --since 6h
V systému Windows
iotedge support-bundle --since 6h
Ve výchozím nastavení příkaz vytvoří soubor ZIP s názvem support_bundle.zip v adresáři, support-bundle ve kterém je příkaz volána.
--output Příznak použijte k zadání jiné cesty nebo názvu souboru pro výstup.
Další informace o příkazu najdete v nápovědě.
iotedge support-bundle --help
K nahrání výstupu příkazu support-bundle do služby Azure Blob Storage můžete použít také integrovanou přímou metodu uploadSupportBundle .
Výstraha
Výstup z příkazu support-bundle může obsahovat názvy hostitelů, zařízení a modulů, informace protokolované vašimi moduly atd. Uvědomte si to, obzvláště pokud sdílíte výstup na veřejném fóru.
Kontrola metrik shromážděných z modulu runtime
Moduly runtime IoT Edge vytvářejí metriky, které vám pomůžou monitorovat a pochopit stav zařízení IoT Edge. Přidejte modul kolektoru metrik do vašich nasazení, abyste mohli zpracovávat shromažďování těchto metrik a odesílat je do cloudu, aby se usnadnilo monitorování.
Další informace najdete v tématu Shromažďování a přenos metrik.
Zkontrolujte verzi IoT Edge
Pokud používáte starší verzi IoT Edge, je možné, že se váš problém vyřeší upgradem. Nástroj iotedge check zkontroluje, zda je bezpečnostní démon IoT Edge nejnovější verzí, ale nekontroluje verze modulů IoT Edge hubu a agenta. Ke kontrole verze modulů modulu runtime na vašem zařízení použijte příkazy iotedge logs edgeAgent a iotedge logs edgeHub. Číslo verze se zobrazí v protokolech po spuštění modulu.
Pokyny k aktualizaci zařízení naleznete v návodu Aktualizace zabezpečení a běhového prostředí IoT Edge demona.
Ověření instalace IoT Edge na vašich zařízeních
Instalaci IoT Edge na zařízení můžete ověřit monitorováním dvojčete modulu edgeAgent.
Pokud chcete získat nejnovější dvojče modulu EdgeAgent, spusťte z Azure Cloud Shellu následující příkaz:
az iot hub module-twin show --device-id <edge_device_id> --module-id '$edgeAgent' --hub-name <iot_hub_name>
Tento příkaz zobrazí všechny ohlášené vlastnosti edgeAgent. Tady jsou některé užitečné, které monitorují stav zařízení:
- stav modulu runtime
- čas spuštění modulu runtime
- doba posledního ukončení modulu runtime
- Počet restartování modulu runtime
Kontrola stavu správce zabezpečení IoT Edge a jeho protokolů
Správce zabezpečení IoT Edge zodpovídá za operace, jako je inicializace systému IoT Edge při spuštění a zřizování zařízení. Pokud se IoT Edge nespouští, můžou protokoly správce zabezpečení poskytovat užitečné informace.
V Linuxu:
Zobrazení stavu správce zabezpečení IoT Edge:
sudo systemctl status iotedgeProhlédněte si protokoly správce zabezpečení IoT Edge:
sudo journalctl -u iotedge -fPodívejte se na podrobnější protokoly správce zabezpečení IoT Edge:
Upravte nastavení démona IoT Edge:
sudo systemctl edit iotedge.serviceAktualizujte následující řádky:
[Service] Environment=IOTEDGE_LOG=debugRestartovat bezpečnostní démon IoT Edge:
sudo systemctl cat iotedge.service sudo systemctl daemon-reload sudo systemctl restart iotedge
V systému Windows
Zobrazení stavu správce zabezpečení IoT Edge:
Get-Service iotedgeProhlédněte si protokoly správce zabezpečení IoT Edge:
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLogZobrazení pouze posledních 5 minut protokolů správce zabezpečení IoT Edge:
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog -StartTime ([datetime]::Now.AddMinutes(-5))Podívejte se na podrobnější protokoly správce zabezpečení IoT Edge:
Přidejte proměnnou prostředí na úrovni systému:
[Environment]::SetEnvironmentVariable("IOTEDGE_LOG", "debug", [EnvironmentVariableTarget]::Machine)Restartujte službu zabezpečení IoT Edge:
Restart-Service iotedge
Kontrola problémů s protokoly kontejneru
Jakmile je proces démon zabezpečení IoT Edge spuštěný, projděte si protokoly kontejnerů a zjistěte problémy. Začněte s nasazenými kontejnery a pak se podívejte na kontejnery, které tvoří modul runtime IoT Edge: edgeAgent a edgeHub. Protokoly agenta IoT Edge obvykle poskytují informace o životním cyklu jednotlivých kontejnerů. Protokoly centra IoT Edge poskytují informace o zasílání zpráv a směrování.
Protokoly kontejneru můžete načíst z několika míst:
Spuštěním následujícího příkazu na zařízení IoT Edge zobrazte protokoly:
iotedge logs <container name>Na webu Azure Portal použijte integrovaný nástroj pro řešení potíží. Monitorování a řešení potíží se zařízeními IoT Edge na webu Azure Portal
Pomocí přímé metody UploadModuleLogs nahrajte protokoly modulu do služby Azure Blob Storage.
Vyčištění protokolů kontejneru
Ve výchozím nastavení modul kontejnerů Moby nenastavuje limity velikosti protokolu kontejneru. V průběhu času to může vést k zaplnění zařízení protokoly a nedostatek místa na disku. Pokud velké protokoly kontejnerů ovlivňují výkon zařízení IoT Edge, pomocí následujícího příkazu vynutíte odebrání kontejneru spolu s souvisejícími protokoly.
Pokud stále řešíte potíže, počkejte, až zkontrolujete protokoly kontejneru a provedete tento krok.
Výstraha
Pokud vynutíte odebrání kontejneru edgeHub, zatímco má neodeslaný backlog zpráv a není nastavené žádné úložiště hostitele, neodeslané zprávy se ztratí.
docker rm --force <container name>
Pro průběžné scénáře údržby protokolů a produkčního prostředí nastavte výchozí ovladač protokolování.
Zobrazení zpráv procházející centrem IoT Edge
Můžete zobrazit zprávy procházející hubem IoT Edge a shromažďovat přehledy z podrobných záznamů z kontejnerů modulu runtime. Pokud chcete u těchto kontejnerů aktivovat podrobné protokoly, nastavte RuntimeLogLevel ve vašem konfiguračním souboru yaml. Otevření souboru:
V Linuxu:
sudo nano /etc/iotedge/config.yaml
V systému Windows
notepad C:\ProgramData\iotedge\config.yaml
Ve výchozím nastavení agent bude prvek vypadat jako v následujícím příkladu:
agent:
name: edgeAgent
type: docker
env: {}
config:
image: mcr.microsoft.com/azureiotedge-agent:1.1
auth: {}
Nahradit env: {} :
env:
RuntimeLogLevel: debug
Výstraha
Soubory YAML nemohou obsahovat tabulátory jako odsazení. Místo toho použijte 2 mezery. Položky nejvyšší úrovně nemohou mít úvodní prázdné znaky.
Uložte soubor a restartujte správce zabezpečení IoT Edge.
Můžete také zkontrolovat, které zprávy se odesílají mezi IoT Hubem a zařízeními IoT. Tyto zprávy můžete zobrazit pomocí rozšíření Azure IoT Hub pro Visual Studio Code. Další informace najdete v praktickém nástroji při vývoji s využitím Azure IoT.
Restartování kontejnerů
Po prozkoumání protokolů a zpráv o informacích můžete zkusit restartovat kontejnery.
Na zařízení IoT Edge pomocí následujících příkazů restartujte moduly:
iotedge restart <container name>
Restartujte kontejnery modulu runtime IoT Edge:
iotedge restart edgeAgent && iotedge restart edgeHub
Moduly můžete také vzdáleně restartovat z webu Azure Portal. Další informace najdete v tématu Monitorování a řešení potíží se zařízeními IoT Edge na webu Azure Portal.
Kontrola pravidel konfigurace brány firewall a portu
Azure IoT Edge umožňuje komunikaci z místního serveru do cloudu Azure pomocí podporovaných protokolů IoT Hubu, viz výběr komunikačního protokolu. Kvůli lepšímu zabezpečení jsou komunikační kanály mezi Azure IoT Edge a Azure IoT Hubem vždy nakonfigurované tak, aby byly odchozí. Tato konfigurace je založená na vzoru komunikace s asistencí služeb, který minimalizuje útočnou plochu, kterou by mohla škodlivá entita zneužít. Příchozí komunikace se vyžaduje jenom pro konkrétní scénáře , kdy Azure IoT Hub potřebuje odesílat zprávy do zařízení Azure IoT Edge. Zprávy typu cloud-zařízení jsou chráněné pomocí zabezpečených kanálů TLS a je možné je dále zabezpečit pomocí certifikátů X.509 a modulů zařízení TPM. Azure IoT Edge Security Manager určuje, jak se tato komunikace dá vytvořit, viz IoT Edge Security Manager.
I když IoT Edge poskytuje vylepšenou konfiguraci pro zabezpečení modulu runtime Azure IoT Edge a nasazených modulů, stále závisí na základní konfiguraci počítače a sítě. Proto je nezbytné zajistit, aby byla pro zabezpečenou komunikaci s cloudem nastavená správná pravidla sítě a brány firewall. Následující tabulka se dá použít jako vodítko při konfiguraci pravidel brány firewall pro základní servery, kde je hostovaný modul runtime Azure IoT Edge:
| Protokol | Přístav | Příchozí | Odchozí | Vodítko |
|---|---|---|---|---|
| MQTT | 8883 | BLOCKED (výchozí) | BLOCKED (výchozí) |
|
| AMQP (Advanced Message Queuing Protocol) | 5671 | BLOCKED (výchozí) | OPEN (výchozí) |
|
| HTTPS | 443 | BLOCKED (výchozí) | OPEN (výchozí) |
|
Poslední možnost: zastavení a opětovné vytvoření všech kontejnerů
Někdy může systém vyžadovat významné zvláštní úpravy pro práci se stávajícími síťovými nebo operačními systémy. Systém může například vyžadovat jiné nastavení připojení datového disku a proxy serveru. Pokud jste vyzkoušeli všechny kroky uvedené výše a stále se objevují selhání kontejnerů, je možné, že pokud jde o někde uložené mezipaměti systému Docker nebo přetrvávající nastavení sítě, nejsou tyto informace v souladu s nejnovější rekonfigurací. V tomto případě je poslední možností použít docker prune čistý začátek od nuly.
Následující příkaz zastaví systém IoT Edge (a tím všechny kontejnery) a použije možnost docker prune s volbami "vše" a "svazek" k odstranění všech kontejnerů a svazků. Zkontrolujte upozornění, že příkaz problémy s příkazem y a až bude připravený, potvrďte ho.
sudo iotedge system stop
docker system prune --all --volumes
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all volumes not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N]
Znovu spusťte systém. Pokud chcete být v bezpečí, použijte všechny potenciálně zbývající konfigurace a spusťte systém jedním příkazem.
sudo iotedge config apply
Počkejte několik minut a zkontrolujte to znovu.
sudo iotedge list
Další kroky
Myslíte si, že jste v platformě IoT Edge našli chybu? Odešlete problém , abychom mohli pokračovat v vylepšování.
Pokud máte další otázky, vytvořte žádost o pomoc .