Überwachen mit AWS IoT Greengrass-Protokollen - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überwachen mit AWS IoT Greengrass-Protokollen

AWS IoT Greengrass besteht aus dem Cloud-Service und der AWS IoT Greengrass Core-Software. Die AWS IoT Greengrass Core-Software kann Protokolle in Amazon CloudWatch und in das lokale Dateisystem Ihres Core-Geräts schreiben. Lambda-Funktionen und Konnektoren, die auf dem Core ausgeführt werden, können auch Protokolle in CloudWatch Logs und das lokale Dateisystem schreiben. Sie können die Protokolle verwenden, um Ereignisse zu überwachen und Probleme zu beheben. Alle AWS IoT Greengrass-Protokolleinträge enthalten einen Zeitstempel, die Protokollebene sowie Informationen über das Ereignis. Änderungen an den Protokollierungseinstellungen werden wirksam, nachdem Sie die Gruppe bereitgestellt haben.

Die Protokollierung wird auf Gruppenebene konfiguriert. Schritte zum Konfigurieren der Protokollierung für eine Greengrass-Gruppe finden Sie unter Konfigurieren der Protokollierung für AWS IoT Greengrass.

Zugreifen auf CloudWatch Protokolle

Wenn Sie die CloudWatch Protokollierung konfigurieren, können Sie die Protokolle auf der Seite Protokolle der Amazon- CloudWatch Konsole anzeigen. Protokollgruppen für AWS IoT Greengrass-Protokolle verwenden die folgenden Namenskonventionen:

/aws/greengrass/GreengrassSystem/greengrass-system-component-name /aws/greengrass/Lambda/aws-region/account-id/lambda-function-name

Jede Protokollgruppe enthält Protokollströme, die die folgende Namenskonvention verwenden:

date/account-id/greengrass-group-id/name-of-core-that-generated-log

Bei der Verwendung von - CloudWatch Protokollen gelten die folgenden Überlegungen:

  • Protokolle werden mit einer begrenzten Anzahl von Wiederholungen an CloudWatch Logs gesendet, falls keine Internetverbindung besteht. Wenn die Zahl der zulässigen Wiederholungen erreicht ist, wird das Ereignis entfernt.

  • Es gelten Einschränkungen für Transaktionen, Arbeitsspeicher und anderes. Weitere Informationen finden Sie unter Einschränkungen für die Protokollierung.

  • Ihre Greengrass-Gruppenrolle muss zulassenAWS IoT Greengrass, dass in CloudWatch Protokolle schreibt. Zum Erteilen der Berechtigungen betten Sie die folgende Inline-Richtlinie in Ihre Gruppenrolle ein.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
    Anmerkung

    Sie können einen detaillierteren Zugriff auf Ihre Protokoll-Ressourcen gewähren. Weitere Informationen finden Sie unter Verwenden von identitätsbasierten Richtlinien (IAM-Richtlinien) für CloudWatch Protokolle im Amazon- CloudWatch Benutzerhandbuch.

    Die Gruppenrolle ist eine IAM-Rolle, die Sie erstellen und an Ihre Greengrass-Gruppe anfügen. Sie können die Gruppenrolle mithilfe der Konsole oder der AWS IoT Greengrass-API verwalten.

     

    Verwenden der Konsole
    1. Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.

    2. Wählen Sie die Zielgruppe aus.

    3. Wählen Sie Einstellungen anzeigen aus. Unter Gruppenrolle können Sie die Gruppenrolle anzeigen, zuordnen oder die Zuordnung aufheben.

      Anweisungen zum Anfügen der Gruppenrolle finden Sie unter Gruppenrolle.

     

    Verwenden der CLI

     

    Wie Sie die Gruppen-ID abrufen, die in diesen Befehle verwendet wird, erfahren Sie unter Abrufen der Gruppen-ID.

Zugreifen auf Dateisystemprotokolle

Wenn Sie die Protokollierung des Dateisystems konfigurieren, werden die Protokolldateien unter greengrass-root/ggc/var/log auf dem Kerngerät gespeichert. Im Folgenden finden Sie die übergeordnete Verzeichnisstruktur:

greengrass-root/ggc/var/log - crash.log - system - log files for each Greengrass system component - user - region - account-id - log files generated by each user-defined Lambda function - aws - log files generated by each connector
Anmerkung

Standardmäßig ist greengrass-root das /greengrass-Verzeichnis. Wenn ein Schreibverzeichnis konfiguriert wurde, finden Sie auch die Protokolle dort.

Die folgenden Hinweise gelten für die Verwendung von Dateisystemprotokollen:

  • Für das Lesen von AWS IoT Greengrass-Protokollen auf dem Dateisystem sind Root-Berechtigungen erforderlich.

  • AWS IoT Greengrass unterstützt eine größenbasierte Rotation und, wenn die Menge der Protokolldaten nahe am konfigurierten Limit ist, die automatische Bereinigung von Protokolldaten.

  • Die crash.log-Datei ist nur in Dateisystemprotokollen vorhanden. Dieses Protokoll wird nicht in - CloudWatch Protokolle geschrieben.

  • Es gelten Einschränkungen im Hinblick auf die Festplattennutzung. Weitere Informationen finden Sie unter Einschränkungen für die Protokollierung.

Anmerkung

Protokolle für AWS IoT Greengrass Core-Software v1.0 werden im Verzeichnis greengrass-root/var/log gespeichert.

Standardkonfiguration für die Protokollierung

Wenn die Einstellungen für die Protokollierung nicht explizit konfiguriert sind, verwendet AWS IoT Greengrass die folgende Standardkonfiguration für die Protokollierung nach der ersten Gruppenbereitstellung.

AWS IoT Greengrass Systemkomponenten
  • Typ - FileSystem

  • Komponente - GreengrassSystem

  • Level - INFO

  • Leerzeichen - 128 KB

Benutzerdefinierte Lambda-Funktionen
  • Typ - FileSystem

  • Komponente - Lambda

  • Level - INFO

  • Leerzeichen - 128 KB

Anmerkung

Vor der ersten Bereitstellung schreiben nur Systemkomponenten Protokolle in das Dateisystem, da keine benutzerdefinierten Lambda-Funktionen bereitgestellt werden.

Konfigurieren der Protokollierung für AWS IoT Greengrass

Sie können die -AWS IoTKonsole oder die -AWS IoT GreengrassAPIs verwenden, um die AWS IoT Greengrass Protokollierung zu konfigurieren.

Anmerkung

Damit Protokolle AWS IoT Greengrass in CloudWatch Protokolle schreiben kann, muss Ihre Gruppenrolle die erforderlichen CloudWatch Protokollaktionen zulassen.

Konfigurieren der Protokollierung (Konsole)

Sie können die Protokollierung auf der Seite Settings (Einstellungen) der Gruppe konfigurieren.

  1. Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.

  2. Wählen Sie die Gruppe, in der Sie die Protokollierung konfigurieren möchten.

  3. Wählen Sie auf der Seite Gruppenkonfiguration die Registerkarte Protokolle aus.

  4. Wählen Sie den Speicherort für die Protokollierung wie folgt:

    • Um die CloudWatch Protokollierung zu konfigurieren, wählen Sie für die CloudWatch Protokollkonfiguration die Option Bearbeiten aus.

    • Um die Dateisystemprotokollierung für die Lokale Protokollkonfiguration zu konfigurieren, wählen Sie Edit (Bearbeiten).

    Sie können die Protokollierung für einen einzigen Speicherort oder für beide Speicherorte konfigurieren.

  5. Wählen Sie im Konfigurationsmodal Protokolle bearbeiten die Option Greengrass-Systemprotokollebene oder Protokollebene der Benutzer-Lambda-Funktionen aus. Sie können eine Komponente oder beide Komponenten wählen.

  6. Wählen Sie die niedrigste Ereignisstufe, die Sie protokollieren möchten. Ereignisse, die unterhalb dieses Grenzwert liegen, werden herausgefiltert und nicht gespeichert.

  7. Wählen Sie Speichern. Änderungen werden wirksam, nachdem Sie die Gruppe bereitgestellt haben.

Konfigurieren der Protokollierung (API)

Sie können die AWS IoT Greengrass-Logger-APIs verwenden, um die Protokollierung programmgesteuert zu konfigurieren. Verwenden Sie z. B. die CreateLoggerDefinition-Aktion, um eine Logger-Definition zu erstellen, die auf einer LoggerDefinitionVersion-Nutzlast basiert, und die die folgende Syntax verwendet:

{ "Loggers": [ { "Id": "string", "Type": "FileSystem|AWSCloudWatch", "Component": "GreengrassSystem|Lambda", "Level": "DEBUG|INFO|WARN|ERROR|FATAL", "Space": "integer" }, { "Id": "string", ... } ] }

LoggerDefinitionVersion ist ein Array mit einem oder mehreren Logger-Objekten, die die folgenden Eigenschaften haben:

Id

Eine ID für den Logger.

Type

Der Speichermechanismus für Protokollereignisse. Wenn verwendet AWSCloudWatch wird, werden Protokollereignisse an - CloudWatch Protokolle gesendet. Wenn FileSystem verwendet wird, werden die Protokollereignisse im lokalen Dateisystem gespeichert.

Zulässige Werte: AWSCloudWatch, FileSystem

Component

Die Quelle des Protokollereignisses. Wenn GreengrassSystem verwendet wird, werden Ereignisse von Greengrass-Systemkomponenten protokolliert. Bei Verwendung von Lambda werden Ereignisse von benutzerdefinierten Lambda-Funktionen protokolliert.

Zulässige Werte: GreengrassSystem, Lambda

Level

Der Schwellenwert für die Protokollstufe. Protokollereignisse, die unterhalb dieses Grenzwert liegen, werden herausgefiltert und nicht gespeichert.

Gültige Werte: DEBUG, INFO (empfohlen), WARN, ERROR, FATAL

Space

Die maximale Größe des lokalen Speichers in KB, der zum Speichern von Protokollen verwendet werden soll. Dieses Feld gilt nur, wenn Type auf FileSystem festgelegt ist.

Konfigurationsbeispiel

Das folgende LoggerDefinitionVersion-Beispiel verwendet eine Konfiguration für die Protokollierung, die:

  • Aktiviert die Protokollierung des Dateisystems ERROR und höher für AWS IoT Greengrass Systemkomponenten.

  • Aktiviert die Protokollierung des Dateisystems INFO (und höher) für benutzerdefinierte Lambda-Funktionen.

  • Aktiviert (und höher) die CloudWatch INFO Protokollierung für benutzerdefinierte Lambda-Funktionen.

{ "Name": "LoggingExample", "InitialVersion": { "Loggers": [ { "Id": "1", "Component": "GreengrassSystem", "Level": "ERROR", "Space": 10240, "Type": "FileSystem" }, { "Id": "2", "Component": "Lambda", "Level": "INFO", "Space": 10240, "Type": "FileSystem" }, { "Id": "3", "Component": "Lambda", "Level": "INFO", "Type": "AWSCloudWatch" } ] } }

Nach dem Erstellen einer Logger-Definitionsversion können Sie mit ihrem Versions-ARN eine Gruppenversion erstellen, bevor Sie die Gruppe bereitstellen.

Einschränkungen für die Protokollierung

Bei AWS IoT Greengrass sind folgende Einschränkungen für die Protokollierung vorhanden:

Transaktionen pro Sekunde

Wenn die Protokollierung in aktiviert CloudWatch ist, stapelt die Protokollierungskomponente Ereignisse lokal, bevor sie an gesendet werden CloudWatch, sodass Sie mit einer Rate von mehr als fünf Anforderungen pro Sekunde pro Protokollstream protokollieren können.

Arbeitsspeicher

Wenn so konfiguriert AWS IoT Greengrass ist, dass Protokolle an gesendet werden, CloudWatch und eine Lambda-Funktion für einen längeren Zeitraum mehr als 5 MB/Sekunde protokolliert, füllt sich die interne Verarbeitungspipeline schließlich. Der theoretische Worst-Case beträgt 6 MB pro Lambda-Funktion.

Taktversatz

Wenn die Protokollierung in aktiviert CloudWatch ist, signiert die Protokollierungskomponente Anforderungen an CloudWatch mithilfe des normalen Signature Version 4-Signaturprozesses. Wenn die Systemzeit auf dem AWS IoT Greengrass Core-Gerät um mehr als 15 Minuten nicht synchron ist, werden die Anforderungen abgelehnt.

Festplattennutzung

Verwenden Sie die folgende Formel, um die maximale Gesamtgröße der genutzten Festplatte für die Protokollierung zu berechnen.

greengrass-system-component-space * 8 // 7 if automatic IP detection is disabled + 128KB // the internal log for the local logging component + lambda-space * lambda-count // different versions of a Lambda function are treated as one

Wobei gilt:

greengrass-system-component-space

Die maximale Größe des lokalen Speichers für AWS IoT Greengrass-Systemkomponentenprotokolle.

lambda-space

Die maximale Menge an lokalem Speicher für Lambda-Funktionsprotokolle.

lambda-count

Die Anzahl der bereitgestellten Lambda-Funktionen.

Protokollverlust

Wenn Ihr AWS IoT Greengrass Core-Gerät so konfiguriert ist, dass es sich nur bei anmeldet CloudWatch und keine Internetverbindung besteht, haben Sie keine Möglichkeit, die Protokolle abzurufen, die sich derzeit im Speicher befinden.

Wenn Lambda-Funktionen beendet werden (z. B. während der Bereitstellung), werden Protokolle für einige Sekunden nicht in geschrieben CloudWatch.

CloudTrail -Protokolle

AWS IoT Greengrass wird mit ausgeführtAWS CloudTrail, einem Service, der die Aktionen eines Benutzers, einer Rolle oder eines -AWSServices in aufzeichnetAWS IoT Greengrass. Weitere Informationen finden Sie unter Protokollierung von AWS IoT Greengrass-API-Aufrufen mit AWS CloudTrail.