Wie konfiguriere ich die Protokollierungsebenen manuell für bestimmte Ressourcen in AWS IoT Core?

Lesedauer: 5 Minute
0

Ich möchte die ressourcenspezifische Protokollierung für meine AWS IoT Core-Protokolle manuell konfigurieren.

Kurzbeschreibung

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

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

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

Dazu wird eine Protokollierungsebene für einen bestimmten Zieltyp erstellt und deren Ausführlichkeitsebene konfiguriert. Zu den Zieltypen gehören THING_GROUP, CLIENT_ID, SOURCE_IP und PRINCIPAL_ID. Es hat sich bewährt, für die Standardprotokollierung eine niedrigere Ausführlichkeitsebene und für die ressourcenspezifische Protokollierung eine höhere Ausführlichkeitsebene zu konfigurieren.

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 AWS IoT Core-Flotte kann die Aktivierung ausführlicherer Protokollebenen hohe Kosten verursachen und die Fehlerbehebung erschweren. Das Aktivieren der ausführlichen Protokollierung führt auch zu mehr Datenverkehr. INFO oder DEBUG dürfen bei der Problembehebung nur vorübergehend verwendet werden. Nach Abschluss der Problembehebung sollten die Protokollierungsebenen auf eine weniger ausführliche Einstellung zurückgesetzt werden.

Auflösung

Voraussetzung

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

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

Konfigurieren Sie die manuelle Protokollierung für Clients, die als Objekte registriert sind

Sie können die ressourcenspezifische Protokollierung für mehrere Objekte auf einer definierten Protokollierungsebene verwalten und dann Objekte manuell zur Gruppe der 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. Wenn Sie eine übergeordnete Objektgruppe innerhalb einer Hierarchie konfigurieren, gilt die Konfiguration auch für die untergeordneten Objektgruppen der Hierarchie.

**Hinweis:**Wenn Sie statische Objektgruppen als Zieltyp verwenden, müssen Sie deren Kontingentgrenzen berücksichtigen. Weitere Informationen finden Sie unter Limits und Kontingente für AWS IoT Core-Objektgruppenressourcen.

1.Erstellen Sie zwei statische Objektgruppen. Sie können dies mit der AWS IoT-Konsole oder mit dem Befehl create-thing-group in der AWS-CLI erledigen. In diesem Beispiel wird die AWS-CLI verwendet.

aws iot create-thing-group --thing-group-name logging_level_info
aws iot create-thing-group --thing-group-name logging_level_debug

Hinweis: Wenn Sie bestehende Objektgruppen verwenden, ersetzen Sie logging_level_info und logging_level_debug durch die Namen Ihrer Objektgruppen.

Die Ausgabe sieht ähnlich wie die folgende Meldung aus:

{
 "thingGroupName": "logging_level_info",
 "thingGroupArn": "arn:aws:iot:eu-west1-1:123456789012:thinggroup/logging_level_info",
 "thingGroupId": "58dd497e-97fc-47d2-8745-422bb21234AA"
}
{
 "thingGroupName": "logging_level_debug",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug",
 "thingGroupId": "2a9dc698-9a40-4487-81ec-2cb4101234BB"
}

2.Führen Sie den Befehl SetV2LoggingLevel aus, um die Protokollierungsebenen für die Objektgruppen festzulegen: Hinweis: Es kann bis zu 10 Minuten dauern, bis die Konfigurationsänderungen auf Protokollebene übernommen werden.

aws iot set-v2-logging-level \
 --log-target targetType=THING_GROUP,targetName=logging_level_info \
 --log-level INFO

aws iot set-v2-logging-level \
--log-target targetType=THING_GROUP,targetName=logging_level_debug \
--log-level DEBUG

Hinweis: Ersetzen Sie INFO und DEBUG durch die Protokollebenen, die Sie für jede Objektgruppe festlegen möchten.

3.Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Protokollierungsebenen ordnungsgemäß konfiguriert sind:

aws iot list-v2-logging-levels

Die Ausgabe sieht ähnlich wie die folgende Meldung aus:

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "WARN"
 },
 {
 "logTarget": {
 "targetType": "THING_GROUP",
 "targetName": "logging_level_debug"
 },
 "logLevel": "DEBUG"
 },
 {
 "logTarget": {
 "targetType": "THING_GROUP",
 "targetName": "logging_level_info"
 },
 "logLevel": "INFO"
 }
 ]
}

4.Führen Sie den Befehl AddThingToThingGroup aus, um der entsprechenden Objektgruppe ein Objekt hinzuzufügen:

aws iot add-thing-to-thing-group \
 --thing-name YourThingName1 \
 --thing-group-name logging_level_info

Hinweis: Ersetzen Sie YourThingName1 durch den Namen des Objekts, das Sie der Objektgruppe hinzufügen.

Konfigurieren Sie die manuelle Protokollierung für Clients, die nicht als Objekte registriert sind

Wenn Sie Ihre Objekte nicht bei AWS IoT Core registrieren, können Sie trotzdem ressourcenspezifische Protokollierungsebenen für mehrere Zieltypen hinzufügen. Diese Zieltypen sind Clientattribute und umfassen CLIENT_ID, SOURCE_IP oder PRINCIPAL_ID. Wenn Ihr Gerät bereits als AWS IoT Core-Objekt registriert ist, können Sie diese Clientattribute weiterhin verwenden, um die Protokollierungsebenen zu verwalten.

1.Führen Sie den Befehl SetV2LoggingLevel aus, um die Protokollierungsebene für einen spezifischen Client festzulegen:

aws iot set-v2-logging-level \
 --log-target targetType=CLIENT_ID,targetName=YourClientId \
 --log-level YourLogLevel

**Hinweis:**Um einen anderen Zieltyp zu verwenden, ersetzen Sie CLIENT_ID durch einen unterstützten Wert, der vom Zielclient verwendet wird, z. B. SOURCE_IP oder PRINCIPAL_ID.

2.Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Protokollierungsebenen ordnungsgemäß konfiguriert sind:

aws iot list-v2-logging-levels

Die Ausgabe sieht ähnlich wie die folgende Meldung aus:

...
 {
 "logTarget": {
 "targetType": "CLIENT_ID",
 "targetName": "YourClientId"
 },
 "logLevel": "YourLogLevel"
 }
...

Überwachen generierter Protokolle

Es hat sich bewährt, IoT-Protokolle auf Probleme zu überwachen. Sie können entweder die Amazon CloudWatch Logs-Konsole oder die AWS-CLI verwenden, um Ihre AWS IoT Core-Protokolle zu überwachen.Weitere Informationen finden Sie im Abschnitt „Überwachung von Protokolleinträgen“ unter Wie verwalte ich die Protokollierungsebenen meiner AWS IoT-Protokolle in AWS IoT Core am besten?

Verwandte Informationen

Überwachung von AWS IoT

Wie konfiguriere ich die Standardprotokollierungseinstellungen für AWS IoT Core?

Wie konfiguriere ich die Protokollierungsebenen dynamisch für bestimmte Ressourcen in AWS IoT Core?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr