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
-
Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.
Wählen Sie die Zielgruppe aus.
-
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
-
-
Verwenden Sie den get-associated-role Befehl , um die Gruppenrolle zu finden.
-
Verwenden Sie den associate-role-to-group Befehl , um die Gruppenrolle anzufügen.
-
Verwenden Sie den disassociate-role-from-group Befehl , um die Gruppenrolle zu entfernen.
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
auf dem Kerngerät gespeichert. Im Folgenden finden Sie die übergeordnete Verzeichnisstruktur:greengrass-root
/ggc/var/log
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
gespeichert.greengrass-root
/var/log
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.
Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.
-
Wählen Sie die Gruppe, in der Sie die Protokollierung konfigurieren möchten.
-
Wählen Sie auf der Seite Gruppenkonfiguration die Registerkarte Protokolle aus.
-
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.
-
-
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.
-
Wählen Sie die niedrigste Ereignisstufe, die Sie protokollieren möchten. Ereignisse, die unterhalb dieses Grenzwert liegen, werden herausgefiltert und nicht gespeichert.
-
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. WennFileSystem
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 vonLambda
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
aufFileSystem
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.