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

Lesedauer: 6 Minute
0

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

Kurzbeschreibung

Hinweis: Dieser Artikel bezieht sich nur auf Version 2 der Protokolle in AWS IoT Core.

Es ist eine bewährte Methode, zu wissen, welche Ressourcen in AWS IoT Core überwacht werden müssen und auf welcher Ebene. Sie können Ihre Ressourcen in AWS IoT Core segmentieren und jedem Segment eine Protokollierungsebene zuweisen, die Ihren Überwachungsanforderungen entspricht. Mit AWS IoT Core Log können Sie Standardprotokollierungsebenen und spezifische Protokollierungsebenen für Ihre Ressourcen festlegen.

Es ist eine bewährte Methode, Folgendes zu konfigurieren:

  • Standardprotokollierung mit niedriger Ausführlichkeit, wie FEHLER- oder WARN-Stufen. Wenn die Standardprotokollierung konfiguriert ist, wird sie auf alle Ressourcen angewendet, sofern für sie keine ressourcenspezifische Protokollierung konfiguriert ist.
  • Ressourcenspezifische Protokollierung (entweder manuell oder dynamisch) soll eine ausführlichere Ebene haben, wie INFO oder DEBUG. Dies kann für verschiedene Zieltypen wie THING_GROUP, CLIENT_ID, SOURCE_IP oder PRINCIPAL_ID konfiguriert werden.

Die Standardprotokollierung und die ressourcenspezifische Protokollierung können gleichzeitig verwendet werden. Zu den Ausführlichkeitsebenen der Protokolle gehören DISABLED (niedrigste), ERROR, WARN, INFO und DEBUG (höchste).

Wichtig: Abhängig von der Größe Ihrer Flotte bei AWS IoT Core kann die Aktivierung ausführlicherer Protokollebenen hohe 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 bei der Fehlerbehebung nur als vorübergehende Maßnahme zu verwenden. Nach Abschluss der Problembehandlung empfiehlt es sich, die Protokollierungsebenen auf eine weniger ausführliche Einstellung zurückzusetzen.

Lösung

Voraussetzung

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

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version des AWS CLI verwenden.

Standardprotokollierung

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. Wenn Sie die Standardeinstellung auf weniger ausführliche Stufen setzen, sinken Ihre Kosten und Ihr Datenverkehr. Weitere Informationen finden Sie unter Wie konfiguriere ich die Standardprotokollierungseinstellungen für AWS IoT Core?

Hinweis: Sie müssen dem AWS-Support Protokolle von AWS IoT Core zur Verfügung stellen, wenn Sie einen Fall erstellen. AWS Support hat keinen Zugriff auf diese Informationen, da sie als Kundendaten betrachtet werden.

Manuelles Protokollieren bestimmter Ressourcen

Mit Protokollen in AWS IoT Core können Sie ressourcenspezifische Protokollierungsebenen festlegen für:

  • Clients, die als Objekte registriert sind
  • Clients, die nicht als Objekte registriert sind

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

Für Kunden, die als Objekte registriert sind, können Sie die ressourcenspezifische Protokollierung für mehrere Objekte auf einer definierten Protokollierungsebene verwalten. Sie können der Objektgruppe auch manuell Objekte hinzufügen oder daraus entfernen. Ihre Geräte und Clients müssen als IoT-Objekte in AWS IoT Core registriert sein und eine Verbindung mit derselben Client-ID herstellen, die dem Objektnamen zugeordnet ist. Sie können dann eine statische Objektgruppe mit dem Zieltyp THING_GROUP verwenden, um die Objektgruppe zu verwalten.

Hinweis: Sie müssen die Kontingentgrenzen berücksichtigen, wenn Sie statische Objektgruppen verwenden. Weitere Informationen finden Sie unter Limits und Kontingente für Objektgruppenressourcen in AWS IoT Core.

Für Kunden, die nicht als Objekte registriert sind, können Sie Clientattribute als Zieltyp verwenden, um Ressourcen zu verwalten. Zu diesen Attributen gehören CLIENT_ID, SOURCE_IP oder PRINCIPAL_ID.

Automatische Protokollierung bestimmter Ressourcen

Sie können eine dynamische Objektgruppe verwenden, um automatisch ressourcenspezifische Protokollierungsstufen für Ihre Objekte festzulegen. Ihre Kunden müssen als IoT-Objekte registriert sein und sich mit derselben Client-ID wie dem Objektnamen verbinden. Die dynamische Objektgruppe verwendet eine Flottenindexierungs-abfrage, die kontinuierlich Objekte findet und automatisch zu der Gruppe hinzufügt, die die Abfragebedingungen erfüllen. Weitere Informationen finden Sie unter Wie konfiguriere ich die Protokollierungsebenen dynamisch für bestimmte Ressourcen in AWS IoT Core?

Hinweis: Wenn Sie eine dynamische Objektgruppe erstellen oder aktualisieren, können Objekte in einer dynamischen Objektgruppe enthalten sein und nicht automatisch zu ihr hinzugefügt werden. Weitere Informationen finden Sie unter Erfolgreiche Befehle können Fehler protokollieren.

Protokolleinträge überwachen

Sie können Ihre AWS-IoT-Protokolleinträge entweder mit der Amazon-CloudWatch-Konsole oder des AWS CLI überwachen:

CloudWatch-Konsole

1.    Öffnen Sie die CloudWatch-Konsole.

2.    Wählen Sie im Navigationsbereich unter Protokolle die Option Protokollgruppen aus.

3.    Geben Sie in das Textfeld Filter AWSIoTLogsV2 ein und drücken Sie dann die Eingabetaste.
Hinweis: Die AWSIotLogsV2-Protokollgruppe ist in der CloudWatch-Konsole erst sichtbar, wenn Sie die Protokollierung in AWS IoT Core erfolgreich aktiviert haben. Protokolleinträge müssen außerdem von AWS-IoT-Vorgängen geschrieben werden, damit die Protokollgruppe sichtbar ist.

4.    Wählen Sie AWSIOTLogsV2.

5.    Wählen Sie Alle durchsuchen. Eine vollständige Liste Ihrer für Ihr Konto generierten AWS-IoT-Protokolle wird angezeigt.

AWS CLI

Führen Sie den folgenden Befehl aus, um Ihre AWS-IoT-Protokolle im AWS CLI abzurufen:

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.

Der Wert des Feldes „logLevel“ spiegelt die Protokollierungsebene wider, die für das Ziel konfiguriert ist. Im folgenden Beispiel ist die Protokollierungsebene für das Ziel auf INFO konfiguriert:

{
 "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.

Protokollierungsebenen bearbeiten oder löschen

Sie können die Protokollierungsebene sowohl für die Standardebene als auch für bestimmte Ressourcen jederzeit ändern. Es kann bis zu zehn Minuten dauern, bis die Änderungen übernommen werden.

Führen Sie im AWS CLI den Befehl delete-v2-logging-level aus und nehmen Sie dabei die folgenden Änderungen an den Feldern --target-type und --target-name vor:

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