Überwachen von AWS IoT Greengrass Protokollen - AWS IoT Greengrass

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 von 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 Logs und in das lokale Dateisystem des Core-Geräts schreiben. Greengrass-Komponenten, die auf dem Core-Gerät ausgeführt werden, können auch Protokolle in CloudWatch Protokolle 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.

Standardmäßig schreibt die AWS IoT Greengrass Core-Software Protokolle nur in das lokale Dateisystem. Sie können Dateisystemprotokolle in Echtzeit anzeigen, sodass Sie Greengrass-Komponenten debuggen können, die Sie entwickeln und bereitstellen. Sie können ein Core-Gerät auch so konfigurieren, dass Protokolle in CloudWatch -Protokolle geschrieben werden, sodass Sie Probleme mit dem Core-Gerät beheben können, ohne auf das lokale Dateisystem zugreifen zu müssen. Weitere Informationen finden Sie unter Aktivieren der Protokollierung in - CloudWatch Protokollen.

Zugriff auf Dateisystemprotokolle

Die AWS IoT Greengrass Core-Software speichert Protokolle im /greengrass/v2/logs Ordner auf einem Core-Gerät, wobei der Pfad zum AWS IoT Greengrass Stammordner /greengrass/v2 ist. Der Ordner „Protokolle“ hat die folgende Struktur.

/greengrass/v2 └── logs ├── greengrass.log ├── greengrass_2021_09_14_15_0.log ├── ComponentName.log ├── ComponentName_2021_09_14_15_0.log └── main.log
  • greengrass.log – Die Protokolldatei der AWS IoT Greengrass -Core-Software. Verwenden Sie diese Protokolldatei, um Echtzeitinformationen zu Komponenten und Bereitstellungen anzuzeigen. Diese Protokolldatei enthält Protokolle für den Greengrass-Kern, der das Kernverzeichnis der AWS IoT Greengrass-Core-Software ist, sowie Plugin-Komponenten wie Log Manager und Secret Manager.

  • ComponentName.log – Greengrass-Komponenten-Protokolldateien. Verwenden Sie Komponentenprotokolldateien, um Echtzeitinformationen zu einer Greengrass-Komponente anzuzeigen, die auf dem Core-Gerät ausgeführt wird. Generische Komponenten und Lambda-Komponenten schreiben die Standardausgabe (stdout) und den Standardfehler (stderr) in diese Protokolldateien.

  • main.log – Die Protokolldatei für den main Service, der den Komponentenlebenszyklus verarbeitet. Diese Protokolldatei ist immer leer.

Weitere Informationen zu den Unterschieden zwischen Plugin-, generischen und Lambda-Komponenten finden Sie unter Komponententypen.

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

  • Berechtigungen für Root-Benutzer

    Sie müssen über Root-Berechtigungen zum Lesen von AWS IoT Greengrass-Protokollen im Dateisystem verfügen.

  • Rotation der Protokolldatei

    Die AWS IoT Greengrass Core-Software rotiert Protokolldateien stündlich oder wenn sie eine Dateigrößenbeschränkung überschreiten. Rotierte Protokolldateien enthalten einen Zeitstempel in ihrem Dateinamen. Beispielsweise könnte eine rotierte AWS IoT Greengrass Core-Softwareprotokolldatei den Namen habengreengrass_2021_09_14_15_0.log. Die Standarddateigrößenbeschränkung beträgt 1 024 KB (1 MB). Sie können die Dateigrößenbeschränkung für die Greengrass-Kernkomponente konfigurieren.

  • Löschen von Protokolldateien

    Die AWS IoT Greengrass Core-Software bereinigt frühere Protokolldateien, wenn die Größe von AWS IoT Greengrass Core-Softwareprotokolldateien oder Greengrass-Komponentenprotokolldateien, einschließlich rotierter Protokolldateien, ein Festplattenspeicherlimit überschreitet. Das standardmäßige Speicherplatzlimit für das AWS IoT Greengrass Core-Softwareprotokoll und jedes Komponentenprotokoll beträgt 10.240 KB (10 MB). Sie können das Speicherplatzlimit für das AWS IoT Greengrass Core-Softwareprotokoll für die Greengrass-Kernkomponente oder die Log Manager-Komponente konfigurieren. Sie können das Speicherplatzlimit für die Protokollfestplatten jeder Komponente für die Protokollmanagerkomponente konfigurieren.

So zeigen Sie die AWS IoT Greengrass-Core-Software-Protokolldatei an
  • Führen Sie den folgenden Befehl aus, um die Protokolldatei in Echtzeit anzuzeigen. Ersetzen Sie durch /greengrass/v2 den Pfad zum AWS IoT Greengrass Stammordner.

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.HelloWorld.log

    Der type Befehl schreibt den Inhalt der Datei in das Terminal. Führen Sie diesen Befehl mehrmals aus, um Änderungen in der Datei zu beobachten.

    PowerShell
    gc C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
So zeigen Sie die Protokolldatei für eine Komponente an
  • Führen Sie den folgenden Befehl aus, um die Protokolldatei in Echtzeit anzuzeigen. Ersetzen Sie /greengrass/v2 oder C:\greengrass\v2 durch den Pfad zum AWS IoT Greengrass Stammordner und ersetzen Sie com.example durchHelloWorld den Namen der Komponente.

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.HelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.HelloWorld.log -Tail 10 -Wait

Sie können auch den logs Befehl der Greengrass-CLI verwenden, um Greengrass-Protokolle auf einem Core-Gerät zu analysieren. Um den logs Befehl zu verwenden, müssen Sie den Greengrass-Kern für die Ausgabe von Protokolldateien im JSON-Format konfigurieren. Weitere Informationen finden Sie unter Greengrass-Befehlszeilenschnittstelle und Protokolle.

CloudWatch Zugriffsprotokolle

Sie können die Log Manager-Komponente bereitstellen, um das Core-Gerät so zu konfigurieren, dass es in CloudWatch Protokolle schreibt. Weitere Informationen finden Sie unter Aktivieren der Protokollierung in - CloudWatch Protokollen. Anschließend können Sie Protokolle auf der Seite Protokolle der Amazon- CloudWatch Konsole oder mithilfe der CloudWatch Protokoll-API anzeigen.

Protokollgruppenname
/aws/greengrass/componentType/region/componentName

Der Name der Protokollgruppe verwendet die folgenden Variablen:

  • componentType – Der Typ der Komponente, der einer der folgenden sein kann:

    • GreengrassSystemComponent – Diese Protokollgruppe enthält Protokolle für die Kern- und Plugin-Komponenten, die in derselben JVM wie der Greengrass-Kern ausgeführt werden. Die Komponente ist Teil des Greengrass-Kerns .

    • UserComponent – Diese Protokollgruppe enthält Protokolle für generische Komponenten, Lambda-Komponenten und andere Anwendungen auf dem Gerät. Die Komponente ist nicht Teil des Greengrass-Kerns.

    Weitere Informationen finden Sie unter Komponententypen.

  • region – Die AWS Region, die das Core-Gerät verwendet.

  • componentName – Der Name der Komponente. Für Systemprotokolle ist dieser Wert System.

Name des Protokollstreams
/date/thing/thingName

Der Name des Protokollstreams verwendet die folgenden Variablen:

  • date – Das Datum des Protokolls, z. B. 2020/12/15. Die Log-Manager-Komponente verwendet das yyyy/MM/dd Format .

  • thingName – Der Name des Core-Geräts.

Anmerkung

Wenn ein Objektname einen Doppelpunkt (:) enthält, ersetzt der Protokollmanager den Doppelpunkt durch ein Pluszeichen (+).

Die folgenden Überlegungen gelten, wenn Sie die Log Manager-Komponente zum Schreiben in CloudWatch Protokolle verwenden:

  • Protokollverzögerungen

    Anmerkung

    Wir empfehlen Ihnen, auf Log Manager Version 2.3.0 zu aktualisieren, um Protokollverzögerungen für rotierte und aktive Protokolldateien zu reduzieren. Wenn Sie auf Log Manager 2.3.0 aktualisieren, empfehlen wir Ihnen, auch auf Greengrass-Kern 2.9.1 zu aktualisieren.

    Die Log Manager-Komponente Version 2.2.8 (und früher) verarbeitet und lädt Protokolle nur aus rotierten Protokolldateien hoch. Standardmäßig rotiert die AWS IoT Greengrass Core-Software Protokolldateien stündlich oder nach 1 024 KB. Daher lädt die Protokollmanagerkomponente Protokolle erst hoch, nachdem die -AWS IoT GreengrassCore-Software oder eine Greengrass-Komponente Protokolle mit mehr als 1.024 KB geschrieben hat. Sie können eine niedrigere Größenbeschränkung für Protokolldateien konfigurieren, damit Protokolldateien häufiger rotiert werden. Dies führt dazu, dass die Protokollmanagerkomponente Protokolle häufiger in CloudWatch Protokolle hochlädt.

    Die Protokollmanager-Komponente Version 2.3.0 (und höher) verarbeitet und lädt alle Protokolle hoch. Wenn Sie ein neues Protokoll schreiben, verarbeitet und lädt Log Manager Version 2.3.0 (und höher) diese aktive Protokolldatei direkt hoch, anstatt darauf zu warten, dass sie rotiert wird. Das bedeutet, dass Sie das neue Protokoll in höchstens 5 Minuten anzeigen können.

    Die Log Manager-Komponente lädt regelmäßig neue Protokolle hoch. Standardmäßig lädt die Log Manager-Komponente alle 5 Minuten neue Protokolle hoch. Sie können ein niedrigeres Upload-Intervall konfigurieren, sodass die Protokollmanagerkomponente Protokolle häufiger in CloudWatch Protokolle hochlädt, indem Sie die konfigurierenperiodicUploadIntervalSec. Weitere Informationen zur Konfiguration dieses regelmäßigen Intervalls finden Sie unter Konfiguration .

    Protokolle können nahezu in Echtzeit aus demselben Greengrass-Dateisystem hochgeladen werden. Wenn Sie Protokolle in Echtzeit beobachten müssen, sollten Sie die Verwendung von Dateisystemprotokollen in Betracht ziehen.

    Anmerkung

    Wenn Sie verschiedene Dateisysteme verwenden, um Protokolle zu schreiben, kehrt Log Manager zum Verhalten in den Versionen 2.2.8 und früher des Protokollmanagers zurück. Informationen zum Zugriff auf Dateisystemprotokolle finden Sie unter Zugriff auf Dateisystemprotokolle.

  • Zeitverzerrung

    Die Log-Manager-Komponente verwendet den Standard-Signaturprozess von Signature Version 4, um API-Anforderungen an CloudWatch Logs zu erstellen. Wenn die Systemzeit auf einem Core-Gerät um mehr als 15 Minuten nicht synchron ist, lehnt CloudWatch Logs die Anforderungen ab. Weitere Informationen finden Sie unter Signaturprozess mit Signaturversion 4 in derAllgemeine AWS-Referenz .

Zugriff auf System-Serviceprotokolle

Wenn Sie die AWS IoT Greengrass -Core-Software als Systemservice konfigurieren, können Sie Systemserviceprotokolle anzeigen, um Probleme zu beheben, z. B. wenn die Software nicht gestartet werden kann.

So zeigen Sie System-Serviceprotokolle (CLI) an
  1. Führen Sie den folgenden Befehl aus, um die Serviceprotokolle des AWS IoT Greengrass -Core-Softwaresystems anzuzeigen.

    Linux or Unix (systemd)
    sudo journalctl -u greengrass.service
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.wrapper.log
    PowerShell
    gc C:\greengrass\v2\logs\greengrass.wrapper.log
  2. Auf Windows-Geräten erstellt die AWS IoT Greengrass -Core-Software eine separate Protokolldatei für Systemdienstfehler. Führen Sie den folgenden Befehl aus, um die Systemservice-Fehlerprotokolle anzuzeigen.

    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.err.log
    PowerShell
    gc C:\greengrass\v2\logs\greengrass.err.log

Auf Windows-Geräten können Sie auch die Event Viewer-Anwendung verwenden, um Systemserviceprotokolle anzuzeigen.

So zeigen Sie Windows-Serviceprotokolle an (Event Viewer)
  1. Öffnen Sie die Event Viewer-Anwendung.

  2. Wählen Sie Windows Logs aus, um es zu erweitern.

  3. Wählen Sie Anwendung, um Anwendungsserviceprotokolle anzuzeigen.

  4. Suchen und öffnen Sie Ereignisprotokolle, deren Quelle istgreengrass.

Aktivieren der Protokollierung in - CloudWatch Protokollen

Sie können die Log Manager-Komponente bereitstellen, um ein Core-Gerät so zu konfigurieren, dass Protokolle in CloudWatch Logs geschrieben werden. Sie können CloudWatch Protokolle für AWS IoT Greengrass -Core-Softwareprotokolle und CloudWatch Protokolle für bestimmte Greengrass-Komponenten aktivieren.

Anmerkung

Die Token-Austauschrolle des Greengrass-Core-Geräts muss dem Core-Gerät erlauben, in CloudWatch Protokolle zu schreiben, wie in der folgenden Beispiel-IAM-Richtlinie gezeigt. Wenn Sie die AWS IoT Greengrass Core-Software mit automatischer Ressourcenbereitstellung installiert haben, verfügt Ihr Core-Gerät über diese Berechtigungen.

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

Um ein Core-Gerät für das Schreiben von AWS IoT Greengrass Core-Softwareprotokollen in CloudWatch Logs zu konfigurieren, erstellen Sie eine Bereitstellung, die ein Konfigurationsupdate angibt, das true für die aws.greengrass.LogManager Komponente uploadToCloudWatch auf festlegt. AWS IoT Greengrass Core-Softwareprotokolle enthalten Protokolle für den Greengrass-Kern und die Plugin-Komponenten .

{ "logsUploaderConfiguration": { "systemLogsConfiguration": { "uploadToCloudWatch": "true" } } }

Um ein Core-Gerät so zu konfigurieren, dass es die Protokolle einer Greengrass-Komponente in CloudWatch Protokolle schreibt, erstellen Sie eine Bereitstellung, die ein Konfigurationsupdate angibt, das die Komponente zur Liste der Komponentenprotokollierungskonfigurationen hinzufügt. Wenn Sie dieser Liste eine Komponente hinzufügen, schreibt die Protokollmanagerkomponente ihre Protokolle in CloudWatch Protokolle. Komponentenprotokolle enthalten Protokolle für generische Komponenten und Lambda-Komponenten.

{ "logsUploaderConfiguration": { "componentLogsConfigurationMap": { "com.example.HelloWorld": { } } } }

Wenn Sie die Log Manager-Komponente bereitstellen, können Sie auch Speicherplatzlimits konfigurieren und festlegen, ob das Core-Gerät Protokolldateien löscht, nachdem sie in CloudWatch Logs geschrieben wurden. Weitere Informationen finden Sie unter Konfigurieren der Protokollierung für AWS IoT Greengrass.

Konfigurieren der Protokollierung für AWS IoT Greengrass

Sie können die folgenden Optionen konfigurieren, um die Protokollierung für Greengrass-Core-Geräte anzupassen. Um diese Optionen zu konfigurieren, erstellen Sie eine Bereitstellung, die eine Konfigurationsaktualisierung für die Greengrass-Kern- oder Protokollmanagerkomponenten angibt.

  • Schreiben von Protokollen in CloudWatch Protokolle

    Zur Remote-Fehlerbehebung bei -Core-Geräten können Sie -Core-Geräte so konfigurieren, dass -AWS IoT GreengrassCore-Software und Komponentenprotokolle in CloudWatch -Protokolle geschrieben werden. Stellen Sie dazu die Log Manager-Komponente bereit und konfigurieren Sie sie. Weitere Informationen finden Sie unter Aktivieren der Protokollierung in - CloudWatch Protokollen.

  • Löschen hochgeladener Protokolldateien

    Um den Speicherplatz zu reduzieren, können Sie -Core-Geräte so konfigurieren, dass Protokolldateien gelöscht werden, nachdem die Protokolldateien in CloudWatch -Protokolle geschrieben wurden. Weitere Informationen finden Sie im deleteLogFileAfterCloudUpload Parameter der Protokollmanagerkomponente, den Sie für -AWS IoT GreengrassCore-Softwareprotokolle und Komponentenprotokolle angeben können.

  • Speicherplatzlimits für Protokolle

    Um die Festplattenspeichernutzung zu begrenzen, können Sie den maximalen Festplattenspeicher für jedes Protokoll, einschließlich seiner rotierten Protokolldateien, auf einem Core-Gerät konfigurieren. Sie können beispielsweise den maximalen kombinierten Festplattenspeicher für greengrass.log und rotierte greengrass.log Dateien konfigurieren. Weitere Informationen finden Sie unter logging.totalLogsSizeKB dem Parameter der Greengrass-Kernkomponente und dem diskSpaceLimit Parameter der Protokollmanagerkomponente, den Sie für AWS IoT Greengrass -Core-Softwareprotokolle und Komponentenprotokolle angeben können.

  • Größenbeschränkung der Protokolldatei

    Sie können die maximale Dateigröße für jede Protokolldatei konfigurieren. Nachdem eine Protokolldatei diese Dateigrößenbeschränkung überschreitet, erstellt die AWS IoT Greengrass Core-Software eine neue Protokolldatei. Die Log Manager-Komponente Version 2.28 (und früher) schreibt nur rotierte Protokolldateien in CloudWatch Logs, sodass Sie eine niedrigere Dateigrößenbeschränkung angeben können, um Protokolle häufiger in CloudWatch Logs zu schreiben. Die Log Manager-Komponente Version 2.3.0 (und höher) verarbeitet und lädt alle Protokolle hoch, anstatt darauf zu warten, dass sie rotiert werden. Weitere Informationen finden Sie unter dem Parameter für die Begrenzung der Protokolldateigröße der Greengrass-Kernkomponente (logging.fileSizeKB).

  • Minimale Protokollstufen

    Sie können die minimale Protokollebene konfigurieren, die die Greengrass-Kernkomponente in Dateisystemprotokolle schreibt. Sie können beispielsweise DEBUG Ebenenprotokolle angeben, um die Fehlerbehebung zu unterstützen, oder Sie können ERROR Ebenenprotokolle angeben, um die Anzahl der Protokolle zu reduzieren, die ein Core-Gerät erstellt. Weitere Informationen finden Sie im Protokollebenenparameter der Greengrass-Kernkomponente (logging.level).

    Sie können auch die minimale Protokollebene konfigurieren, die die Protokollmanagerkomponente in CloudWatch Protokolle schreibt. Sie können beispielsweise eine höhere Protokollebene angeben, um die Protokollierungskosten zu senken. Weitere Informationen finden Sie im minimumLogLevel Parameter der Protokollmanagerkomponente, den Sie für -AWS IoT GreengrassCore-Softwareprotokolle und Komponentenprotokolle angeben können.

  • Intervall zum Überprüfen, ob Protokolle in CloudWatch Protokolle geschrieben werden

    Um zu erhöhen oder zu verringern, wie oft die Protokollmanager-Komponente Protokolle in CloudWatch Protokolle schreibt, können Sie das Intervall konfigurieren, in dem sie nach neuen Protokolldateien sucht, die geschrieben werden sollen. Sie können beispielsweise ein niedrigeres Intervall angeben, um Protokolle in - CloudWatch Protokollen früher anzuzeigen als im Standardintervall von 5 Minuten. Sie können ein höheres Intervall angeben, um die Kosten zu senken, da die Protokollmanager-Komponente Protokolldateien in weniger Anforderungen stapelt. Weitere Informationen finden Sie im Upload-Intervallparameter der Protokollmanagerkomponente (periodicUploadIntervalSec).

  • Protokollformat

    Sie können wählen, ob die AWS IoT Greengrass Core-Software Protokolle im Text- oder JSON-Format schreibt. Wählen Sie Textformat, wenn Sie Protokolle lesen, oder JSON-Format, wenn Sie eine Anwendung zum Lesen oder Analysieren von Protokollen verwenden. Weitere Informationen finden Sie im Protokollformatparameter der Greengrass-Kernkomponente (logging.format).

  • Lokaler Dateisystem-Protokollordner

    Sie können den Protokollordner von /greengrass/v2/logs in einen anderen Ordner auf dem Core-Gerät ändern. Weitere Informationen finden Sie im Ausgabeverzeichnisparameter der Greengrass-Kernkomponente (logging.outputDirectory).

AWS CloudTrail-Protokolle

AWS IoT Greengrass lässt sich in integrieren, einen ServiceAWS CloudTrail, der die Aktionen eines Benutzers, einer Rolle oder AWS-Service in aufzeichnetAWS IoT Greengrass. Weitere Informationen finden Sie unter Protokollieren von AWS IoT Greengrass V2 API-Aufrufen mit AWS CloudTrail.