Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: IoT Edge 1.5
Ważne
Obsługiwana wersja usługi IoT Edge 1.5 LTS. Usługa IoT Edge 1.4 LTS kończy się od 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.
Jeśli wystąpią problemy z uruchamianiem usługi Azure IoT Edge w danym środowisku, skorzystaj z tego artykułu jako przewodnika po rozwiązywaniu problemów i diagnostyki.
Uruchom polecenie "check"
Pierwszym krokiem podczas rozwiązywania problemów z usługą IoT Edge powinno być użycie check
polecenia , które uruchamia kolekcję testów konfiguracji i łączności w przypadku typowych problemów. Polecenie check
jest dostępne w wersji 1.0.7 lub nowszej.
Uwaga
Narzędzie do rozwiązywania problemów nie może uruchomić funkcji łączności sprawdza, czy urządzenie usługi IoT Edge znajduje się za serwerem proxy.
Możesz uruchomić polecenie check
w następujący sposób lub dołączyć flagę --help
, aby wyświetlić pełną listę opcji:
sudo iotedge check
Narzędzie do rozwiązywania problemów uruchamia wiele testów posortowanych w następujących trzech kategoriach:
- Testy konfiguracji sprawdzają szczegóły, które mogą uniemożliwić urządzeniom usługi IoT Edge nawiązywanie połączenia z chmurą, w tym problemy z plikiem konfiguracji i aparatem kontenera.
- Sprawdzanie połączenia sprawdza, czy środowisko uruchomieniowe usługi IoT Edge może uzyskiwać dostęp do portów na urządzeniu hosta i czy wszystkie składniki usługi IoT Edge mogą łączyć się z usługą IoT Hub. Ten zestaw testów zwraca błędy, jeśli urządzenie usługi IoT Edge znajduje się za serwerem proxy.
- Testy gotowości produkcyjnej szukają zalecanych najlepszych rozwiązań produkcyjnych, takich jak stan certyfikatów urzędu certyfikacji urządzenia i konfiguracja pliku dziennika modułu.
Narzędzie do sprawdzania usługi IoT Edge używa kontenera do uruchamiania jego diagnostyki. Obraz kontenera , mcr.microsoft.com/azureiotedge-diagnostics:latest
jest dostępny za pośrednictwem rejestru Microsoft Artifact Registry (MAR). Jeśli musisz uruchomić kontrolę na urządzeniu bez bezpośredniego dostępu do Internetu, urządzenia muszą mieć dostęp do obrazu kontenera.
W scenariuszu korzystającym z zagnieżdżonych urządzeń usługi IoT Edge można uzyskać dostęp do obrazu diagnostycznego na urządzeniach podrzędnych, rozsyłając obraz ściągnięty przez urządzenia nadrzędne.
sudo iotedge check --diagnostics-image-name <parent_device_fqdn_or_ip>:<port_for_api_proxy_module>/azureiotedge-diagnostics:1.2
Aby uzyskać informacje na temat każdego z testów diagnostycznych, które uruchamia to narzędzie, w tym czynności, które należy wykonać w przypadku wystąpienia błędu lub ostrzeżenia, zobacz Wbudowane funkcje rozwiązywania problemów.
Zbieranie informacji o debugowaniu za pomocą polecenia "support-bundle"
Gdy musisz zebrać dzienniki z urządzenia usługi IoT Edge, najwygodniejszym sposobem jest użycie support-bundle
polecenia . Domyślnie to polecenie zbiera moduł, menedżera zabezpieczeń usługi IoT Edge i dzienniki aparatu kontenera, iotedge check
dane wyjściowe JSON i inne przydatne informacje debugowania. Kompresuje je do pojedynczego pliku w celu łatwego udostępniania. Polecenie support-bundle
jest dostępne w wersji 1.0.9 lub nowszej.
support-bundle
Uruchom polecenie z flagą , --since
aby określić, jak długo od przeszłości chcesz pobrać dzienniki. Na przykład 6h
pobiera dzienniki od ostatnich sześciu godzin, 6d
od ostatnich sześciu dni, 6m
od ostatnich sześciu minut itd. Dołącz flagę, --help
aby wyświetlić pełną listę opcji.
sudo iotedge support-bundle --since 6h
Domyślnie support-bundle
polecenie tworzy plik zip o nazwie support_bundle.zip w katalogu, w którym jest wywoływane polecenie. Użyj flagi --output
, aby określić inną ścieżkę lub nazwę pliku dla danych wyjściowych.
Aby uzyskać więcej informacji na temat polecenia, wyświetl jego informacje pomocy.
iotedge support-bundle --help
Możesz również użyć wbudowanej metody bezpośredniej wywołania UploadSupportBundle , aby przekazać dane wyjściowe polecenia support-bundle do usługi Azure Blob Storage.
Ostrzeżenie
Dane wyjściowe polecenia support-bundle
mogą zawierać nazwy hostów, urządzeń, nazwy modułów i informacje rejestrowane przez moduły. Należy pamiętać o tym włączeniu w przypadku udostępniania danych wyjściowych na forum publicznym.
Przeglądanie metryk zebranych ze środowiska uruchomieniowego
Moduły środowiska uruchomieniowego usługi IoT Edge generują metryki ułatwiające monitorowanie i zrozumienie kondycji urządzeń usługi IoT Edge. Dodaj moduł moduł zbierający metryki do wdrożeń, aby obsługiwać zbieranie tych metryk i wysyłanie ich do chmury w celu łatwiejszego monitorowania.
Aby uzyskać więcej informacji, zobacz Zbieranie i transport metryk.
Sprawdzanie wersji usługi IoT Edge
Jeśli korzystasz ze starszej wersji usługi IoT Edge, uaktualnienie może rozwiązać problem. Narzędzie iotedge check
sprawdza, czy demon zabezpieczeń usługi IoT Edge jest najnowszą wersją, ale nie sprawdza wersji modułów centrum i agenta usługi IoT Edge. Aby sprawdzić wersję modułów środowiska uruchomieniowego na urządzeniu, użyj poleceń iotedge logs edgeAgent
i iotedge logs edgeHub
. Numer wersji jest deklarowany w dziennikach podczas uruchamiania modułu.
Aby uzyskać instrukcje dotyczące sposobu aktualizowania urządzenia, zobacz Aktualizowanie usługi IoT Edge.
Weryfikowanie instalacji usługi IoT Edge na urządzeniach
Możesz zweryfikować instalację usługi IoT Edge na urządzeniach, monitorując bliźniaczą reprezentację modułu edgeAgent.
Aby uzyskać najnowszą reprezentację modułu edgeAgent, uruchom następujące polecenie w usłudze Azure Cloud Shell:
az iot hub module-twin show --device-id <edge_device_id> --module-id '$edgeAgent' --hub-name <iot_hub_name>
To polecenie zwraca wszystkie zgłoszone właściwości edgeAgent. Oto kilka przydatnych monitorów stanu urządzenia:
- stan środowiska uruchomieniowego
- czas rozpoczęcia środowiska uruchomieniowego
- czas ostatniego zakończenia środowiska uruchomieniowego
- liczba ponownych uruchomień środowiska uruchomieniowego
Sprawdzanie stanu menedżera zabezpieczeń usługi IoT Edge i jego dzienników
Menedżer zabezpieczeń usługi IoT Edge jest odpowiedzialny za operacje, takie jak inicjowanie systemu usługi IoT Edge podczas uruchamiania i aprowizowania urządzeń. Jeśli usługa IoT Edge nie uruchamia się, dzienniki menedżera zabezpieczeń mogą udostępniać przydatne informacje.
Wyświetl stan usług systemowych usługi IoT Edge:
sudo iotedge system status
Wyświetl dzienniki usług systemowych usługi IoT Edge:
sudo iotedge system logs -- -f
Włącz dzienniki na poziomie debugowania, aby wyświetlić bardziej szczegółowe dzienniki usług systemowych usługi IoT Edge:
Włącz dzienniki na poziomie debugowania.
sudo iotedge system set-log-level debug sudo iotedge system restart
Przejdź z powrotem do domyślnych dzienników na poziomie informacji po debugowaniu.
sudo iotedge system set-log-level info sudo iotedge system restart
Sprawdzanie dzienników kontenera pod kątem problemów
Po uruchomieniu demona zabezpieczeń usługi IoT Edge przyjrzyj się dziennikom kontenerów, aby wykryć problemy. Zacznij od wdrożonych kontenerów, a następnie przyjrzyj się kontenerom tworzącym środowisko uruchomieniowe usługi IoT Edge: edgeAgent i edgeHub. Dzienniki agenta usługi IoT Edge zwykle zawierają informacje na temat cyklu życia każdego kontenera. Dzienniki centrum usługi IoT Edge zawierają informacje dotyczące obsługi komunikatów i routingu.
Dzienniki kontenera można pobrać z kilku miejsc:
Na urządzeniu usługi IoT Edge uruchom następujące polecenie, aby wyświetlić dzienniki:
iotedge logs <container name>
W witrynie Azure Portal użyj wbudowanego narzędzia do rozwiązywania problemów. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z urządzeniami usługi IoT Edge w witrynie Azure Portal.
Użyj metody bezpośredniej UploadModuleLogs, aby przekazać dzienniki modułu do usługi Azure Blob Storage.
Czyszczenie dzienników kontenerów
Domyślnie aparat kontenera Moby nie ustawia limitów rozmiaru dziennika kontenera. W czasie obszerne dzienniki mogą prowadzić do wypełnienia urządzenia dziennikami i wyczerpania miejsca na dysku. Jeśli duże dzienniki kontenerów wpływają na wydajność urządzenia usługi IoT Edge, użyj następującego polecenia, aby wymusić usunięcie kontenera wraz z powiązanymi dziennikami.
Jeśli nadal rozwiązujesz problemy, zaczekaj na sprawdzenie dzienników kontenerów, aby wykonać ten krok.
Ostrzeżenie
Jeśli wymusisz usunięcie kontenera edgeHub, gdy ma on zaległość nieprzesłanych wiadomości i nie skonfigurowano magazynu hosta, nieprzesłane wiadomości zostaną utracone.
docker rm --force <container name>
Aby uzyskać więcej informacji na temat bieżących scenariuszy konserwacji dzienników i produkcji, zobacz Konfigurowanie domyślnego sterownika rejestrowania.
Wyświetlanie komunikatów przechodzących przez centrum usługi IoT Edge
Komunikaty przechodzące przez centrum usługi IoT Edge można wyświetlać i zbierać szczegółowe informacje z pełnych dzienników z kontenerów środowiska uruchomieniowego. Aby włączyć pełne dzienniki dla tych kontenerów, ustaw zmienną RuntimeLogLevel
środowiskową w manifeście wdrożenia.
Aby wyświetlić komunikaty przechodzące przez centrum usługi IoT Edge, ustaw zmienną RuntimeLogLevel
środowiskową na debug
wartość dla modułu edgeHub.
Zarówno moduły edgeHub, jak i edgeAgent mają tę zmienną środowiskową dziennika środowiska uruchomieniowego z wartością domyślną ustawioną na info
. Ta zmienna środowiskowa może przyjmować następujące wartości:
- śmiertelny
- błąd
- ostrzeżenie
- informacje o
- debugować
- tryb pełny
Możesz również sprawdzić komunikaty wysyłane między usługą IoT Hub i urządzeniami IoT. Wyświetl te komunikaty przy użyciu rozszerzenia usługi Azure IoT Hub dla programu Visual Studio Code. Aby uzyskać więcej informacji, zobacz Handy tool when you develop with Azure IoT (Przydatne narzędzie podczas opracowywania za pomocą usługi Azure IoT).
Ponowne uruchamianie kontenerów
Po zbadaniu dzienników i komunikatów w celu uzyskania informacji możesz spróbować ponownie uruchomić kontenery.
Na urządzeniu usługi IoT Edge użyj następujących poleceń, aby ponownie uruchomić moduły:
iotedge restart <container name>
Uruchom ponownie kontenery środowiska uruchomieniowego usługi IoT Edge:
iotedge restart edgeAgent && iotedge restart edgeHub
Moduły można również ponownie uruchomić zdalnie w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z urządzeniami usługi IoT Edge w witrynie Azure Portal.
Sprawdzanie reguł konfiguracji zapory i portów
Usługa Azure IoT Edge umożliwia komunikację z serwera lokalnego do chmury platformy Azure przy użyciu obsługiwanych protokołów usługi IoT Hub. Aby uzyskać więcej informacji, zobacz Wybieranie protokołu komunikacyjnego urządzenia. W przypadku zwiększonych zabezpieczeń kanały komunikacyjne między usługą Azure IoT Edge i usługą Azure IoT Hub są zawsze skonfigurowane jako wychodzące. Ta konfiguracja jest oparta na wzorcu komunikacji wspomaganej przez usługę, który minimalizuje powierzchnię ataku, którą złośliwa jednostka może zbadać. Komunikacja przychodząca jest wymagana tylko w określonych scenariuszach , w których usługa Azure IoT Hub musi wypychać komunikaty do urządzenia usługi Azure IoT Edge. Komunikaty chmura-urządzenie są chronione przy użyciu bezpiecznych kanałów TLS i można je dodatkowo zabezpieczyć przy użyciu certyfikatów X.509 i modułów urządzeń TPM. Menedżer zabezpieczeń usługi Azure IoT Edge określa, w jaki sposób można ustanowić tę komunikację. Aby uzyskać więcej informacji, zobacz Menedżer zabezpieczeń usługi Azure IoT Edge.
Chociaż usługa IoT Edge zapewnia rozszerzoną konfigurację zabezpieczania środowiska uruchomieniowego usługi Azure IoT Edge i wdrożonych modułów, nadal zależy od podstawowej konfiguracji maszyny i sieci. W związku z tym konieczne jest upewnienie się, że skonfigurowano odpowiednie reguły sieci i zapory na potrzeby bezpiecznej komunikacji brzegowej z chmurą. Poniższa tabela może służyć jako wskazówka podczas konfigurowania reguł zapory dla serwerów bazowych, na których jest hostowane środowisko uruchomieniowe usługi Azure IoT Edge:
Protokół | Port | Przychodzący | Wychodzące | Wskazówki |
---|---|---|---|---|
protokół komunikacyjny MQTT | 8883 | ZABLOKOWANE (ustawienie domyślne) | ZABLOKOWANE (ustawienie domyślne) |
|
AMQP (Protokół przesyłania danych asynchronicznych) | 5671 | ZABLOKOWANE (ustawienie domyślne) | OPEN (ustawienie domyślne) |
|
HTTPS | 443 | ZABLOKOWANE (ustawienie domyślne) | OPEN (ustawienie domyślne) |
|
Ostateczność: zatrzymywanie i ponowne tworzenie wszystkich kontenerów
Czasami system może wymagać znacznej specjalnej modyfikacji w celu pracy z istniejącymi ograniczeniami sieci lub systemu operacyjnego. Na przykład system może wymagać innej instalacji dysku danych i ustawień serwera proxy. Jeśli próbowano wykonać wszystkie poprzednie kroki i nadal występują błędy kontenera, pamięć podręczna systemu platformy Docker lub utrwalone ustawienia sieciowe mogą nie być aktualne z najnowszą ponowną konfiguracją. W takim przypadku opcja ostateczności polega na korzystaniu z docker prune
opcji uzyskania czystego początku od podstaw.
Następujące polecenie zatrzymuje system usługi IoT Edge (a tym samym wszystkie kontenery), używa opcji "all" i "volume" w docker prune
celu usunięcia wszystkich kontenerów i woluminów. Przejrzyj ostrzeżenie, że polecenie powoduje problemy i potwierdź y
je, gdy wszystko będzie gotowe.
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]
Uruchom ponownie system. Aby zapewnić bezpieczeństwo, zastosuj dowolną potencjalnie pozostałą konfigurację i uruchom system za pomocą jednego polecenia.
sudo iotedge config apply
Poczekaj kilka minut i sprawdź ponownie.
sudo iotedge list
Następne kroki
Uważasz, że znaleziono usterkę platformy IoT Edge? Prześlij problem , abyśmy mogli kontynuować ulepszanie.
Jeśli masz więcej pytań, utwórz wniosek o pomoc techniczną, aby uzyskać pomoc.