Wie verwalte ich die Protokollebenen meiner AWS-IoT-Protokolle in AWS IoT Core am besten?

Lesedauer: 4 Minute
0

Ich möchte bei der Konfiguration meiner AWS-IoT-Protokollebenen in AWS IoT Core bewährte Methoden befolgen, um Kosten und Datenverkehr zu reduzieren.

Kurzbeschreibung

Hinweis: Die folgende Lösung gilt nur für AWS IoT Core Logs v2.

Es ist eine bewährte Methode, zu wissen, welche Ressourcen in AWS IoT Core überwacht werden müssen und auf welcher Ebene. Teilen Sie Ihre AWS-IoT-Core-Ressourcen auf und weisen Sie dann jedem Segment eine geeignete Protokollebene zu. Sie können Standardprotokollebenen oder bestimmte Protokollebenen für Ihre Ressourcen festlegen.

Konfigurieren Sie beispielsweise die Standardprotokollierung so, dass sie eine weniger ausführliche Protokollebene wie ERROR oder WARN hat. Wenn Sie die Standardprotokollierung konfigurieren, wird die Konfiguration auf alle Ressourcen angewendet, für die keine ressourcenspezifische Protokollierung konfiguriert ist. Um eine ausführlichere Ebene wie INFO oder DEBUG zu verwenden, konfigurieren Sie die ressourcenspezifische Protokollierung. Sie können die Protokollierung auf Ressourcenebene für verschiedene Zieltypen konfigurieren, z. B. THING_GROUP, CLIENT_ID, SOURCE_IP oder PRINCIPAL_ID.

Die Standardprotokollierung und die ressourcenspezifische Protokollierung können gleichzeitig verwendet werden.

Wichtig: Abhängig von der Größe Ihrer Flotte bei AWS IoT Core können ausführlichere Protokollebenen höhere Kosten verursachen und die Fehlerbehebung erschweren. Ausführlichere Protokollierungsstufen führen auch zu einem höheren Datenverkehr. Es hat sich bewährt, INFO oder DEBUG nur zur vorübergehenden Problembehandlung zu verwenden. Setzen Sie nach der Problembehandlung die Protokollebenen auf eine weniger ausführliche Ebene zurück. Weitere Informationen zu Log-Levels finden Sie unter Log-Levels.

Behebung

Voraussetzungen:

  • Sie haben das AWS Command Line Interface (AWS CLI) auf Ihrem lokalen Computer mit den Zugangsdaten für AWS-IoT-Administratoren installiert. Die standardmäßige AWS-Region für das AWS CLI muss auf die Zielregion verweisen.
  • Sie müssen Clients haben, die mit Ihrem AWS IoT Core verbunden sind, entweder als registrierte oder als nicht registrierte AWS-IoT-Objekte.

**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.

Verwenden Sie die Standardprotokollierung, um Kosten und Datenverkehr zu senken

Indem Sie die Standardprotokollierungsstufe für Ihre AWS-IoT-Protokolle auf ERROR oder WARN festlegen, können Sie Protokollfehler oder Warnungen überprüfen, sobald sie auftreten. Diese ausführlichen Levels senken Ihre Kosten und Ihren Datenverkehr. Weitere Informationen finden Sie unter Wie konfiguriere ich die Standardprotokollierungseinstellungen für AWS IoT Core?

Hinweis: Wenn Sie einen AWS-Supportfall erstellen, müssen Sie AWS-IoT-Core-Protokolle bereitstellen.

Ressourcen manuell protokollieren

Informationen zur manuellen Protokollierung von Ressourcen finden Sie unter Wie konfiguriere ich die Protokollierungsebenen manuell für bestimmte Ressourcen in AWS IoT Core?

Ressourcen dynamisch protokollieren

Weitere Informationen zur dynamischen Protokollierung von Ressourcen finden Sie unter Wie konfiguriere ich die Protokollierungsebenen dynamisch für bestimmte Ressourcen in AWS IoT Core?

Protokolleinträge überwachen

Verwenden Sie entweder die Amazon-CloudWatch-Konsole oder des AWS CLI, um Ihre AWS-IoT-Protokolleinträge zu überwachen.

CloudWatch-Konsole

Informationen zum Überwachen Ihrer AWS-IoT-Protokolle in der CloudWatch-Konsole finden Sie unter Anzeigen von AWS-IoT-Protokollen in der CloudWatch-Konsole.

AWS CLI

Um Ihre Protokolle in der AWS CLI abzurufen, führen Sie den Befehl filter-log-events aus. Ersetzen Sie YourStartTimeInMilliseconds durch Ihre Startzeit in Millisekunden:

aws logs filter-log-events --log-group-name AWSIotLogsV2 \
 --start-time YourStartTimeInMilliseconds

Hinweis: Sie können das --filter-pattern verwenden, um nach bestimmten Protokoll-Attributen zu suchen. Weitere Informationen finden Sie unter Filter- und Mustersyntax für Metrikfilter, Abonnementfilter, Filterprotokollereignisse und Live Tail.

Der Wert für logLevel ist die Protokollebene, die für das Ziel konfiguriert ist. In diesem Beispiel ist die Protokollebene für das Ziel INFO:

{
 "timestamp": "2017-08-10 15:37:23.476",
 "logLevel": "INFO",
 "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb",
 "accountId": "123456789012",
 "status": "Success",
 "eventType": "Connect",
 "protocol": "MQTT",
 "clientId": "abf27092886e49a8a5c1922749736453",
 "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a123456",
 "sourceIp": "123.123.123.123",
 "sourcePort": 13490
}

Hinweis: CLIENT_ID ist nur verfügbar, wenn Sie mithilfe von MQTT oder MQTT über WSS-Protokolle eine Verbindung zu AWS IoT Core herstellen. Das HTTPS-Protokoll unterstützt keine Client-IDs. Verwenden Sie stattdessen die Zieltypen SOURCE_IP oder PRINCIPAL_ID.

Log-Levels bearbeiten oder löschen

Sie können die Standardprotokollebene und die ressourcenspezifische Protokollebene jederzeit ändern. Es kann bis zu 10 Minuten dauern, bis die Änderungen abgeschlossen werden.

Führen Sie den AWS-CLI-Befehl delete-v2-logging-level aus. Ersetzen Sie YourTargetName durch den Namen Ihres Ziels:

aws iot delete-v2-logging-level \
 --target-type "THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID" \
 --target-name YourTargetName

Ähnliche Informationen

Endpunkte und Kontingente für AWS IoT Device Management

Überwachung von AWS IoT

Preise für AWS IoT Device Management

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr