Monitoraggio con i log AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Monitoraggio con i log AWS IoT Greengrass

AWS IoT Greengrass è costituito dal servizio cloud e dal software AWS IoT Greengrass Core. Il software AWS IoT Greengrass Core può scrivere log su Amazon CloudWatch e sul file system locale del dispositivo principale. Le funzioni e i connettori Lambda in esecuzione sul core possono anche scrivere log su CloudWatch Logs e sul file system locale. Puoi utilizzare i log di eventi per monitorare e risolvere i problemi. Tutte le voci di log di AWS IoT Greengrass includono un timestamp, un livello di log e le informazioni sull'evento. Le modifiche alle impostazioni di registrazione diventano effettive dopo la distribuzione del gruppo.

La registrazione è configurata a livello del gruppo. Per i passaggi che mostrano come configurare la registrazione per un gruppo Greengrass, consulta Configurazione della registrazione per AWS IoT Greengrass.

Accesso ai log CloudWatch

Se configuri CloudWatch la registrazione, puoi visualizzare i log nella pagina Logs della console Amazon. CloudWatch I gruppi di log per i log di AWS IoT Greengrass utilizzano le seguenti convenzioni di denominazione:

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

Ogni gruppo di log contiene flussi di log che utilizzano la seguente convenzione di denominazione:

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

Le seguenti considerazioni si applicano quando utilizzi Logs: CloudWatch

  • I log vengono inviati a CloudWatch Logs con un numero limitato di tentativi in caso di mancanza di connettività Internet. Una volta esauriti i tentativi, l'evento viene rimosso.

  • Si applicano limitazioni relative alla transazione, alla memoria e di altro tipo. Per ulteriori informazioni, consulta Limitazioni di registrazione.

  • Il ruolo del tuo gruppo Greengrass deve consentire AWS IoT Greengrass la scrittura nei registri. CloudWatch Per concedere le autorizzazioni, incorpora la seguente policy inline nel ruolo del gruppo.

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

    Puoi concedere accesso più granulare alle risorse di log. Per ulteriori informazioni, consulta Using Identity-based policies (IAM policies) for CloudWatch Logs nella Amazon User Guide. CloudWatch

    Il ruolo di gruppo è un ruolo IAM che crei e colleghi al tuo gruppo Greengrass. È possibile utilizzare la console o l'API AWS IoT Greengrass per gestire il ruolo del gruppo.

     

    Utilizzo della console
    1. Nel riquadro di navigazione della AWS IoT console, in Gestione, espandi i dispositivi Greengrass, quindi scegli Gruppi (V1).

    2. Scegliere il gruppo target.

    3. Scegli Visualizza impostazioni. In Ruolo di gruppo, puoi visualizzare, associare o dissociare il ruolo di gruppo.

      Per i passaggi che illustrano come collegare il ruolo del gruppo, consulta ruolo del gruppo.

     

    Utilizzo della CLI

     

    Per informazioni su come ottenere l'ID del gruppo da utilizzare con questi comandi, consulta Ottenere l'ID del gruppo.

Accesso ai log del file system

Se configuri la registrazione del file system, i file di log vengono archiviati in greengrass-root/ggc/var/log sul dispositivo core. Di seguito è riportata la struttura di directory generale:

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
Nota

Per impostazione predefinita, greengrass-root è la directory /greengrass. Se è configurata una directory di scrittura, i log si trovano in tale directory.

Le seguenti considerazioni si applicano quando si utilizzano i log del file system:

  • La lettura dei log di AWS IoT Greengrass nel file system richiede autorizzazioni root.

  • AWS IoT Greengrass supporta la rotazione basata sulle dimensioni e la pulizia automatica quando la quantità di dati di log ha quasi raggiunto il limite configurato.

  • Il file crash.log è disponibile solo nei log di file system. Questo registro non viene scritto in CloudWatch Logs.

  • Si applicano limitazioni relative all'utilizzo del disco. Per ulteriori informazioni, consulta Limitazioni di registrazione.

Nota

I log per il software AWS IoT Greengrass Core v1.0 vengono archiviati nella directory greengrass-root/var/log.

Configurazione della registrazione predefinita

Se le impostazioni di registrazione non vengono configurate in modo esplicito, dopo la prima distribuzione di gruppo AWS IoT Greengrass utilizza la seguente configurazione di registrazione predefinita:

Componenti di sistema AWS IoT Greengrass
  • Tipo - FileSystem

  • Componente - GreengrassSystem

  • Livello - INFO

  • Spazio - 128 KB

Funzioni Lambda definite dall'utente
  • Tipo - FileSystem

  • Componente - Lambda

  • Livello - INFO

  • Spazio - 128 KB

Nota

Prima della prima distribuzione, solo i componenti del sistema scrivono i log nel file system perché non vengono distribuite funzioni Lambda definite dall'utente.

Configurazione della registrazione per AWS IoT Greengrass

È possibile utilizzare la AWS IoT console o le AWS IoT GreengrassAPI per configurare la registrazione. AWS IoT Greengrass

Configurazione della registrazione (console)

Puoi configurare la registrazione nella pagina Impostazioni del gruppo.

  1. Nel riquadro di navigazione della AWS IoT console, in Gestione, espandi i dispositivi Greengrass, quindi scegli Gruppi (V1).

  2. Scegli il gruppo in cui desideri configurare la registrazione.

  3. Nella pagina di configurazione del gruppo, scegli la scheda Registri.

  4. Scegli la posizione della registrazione, come segue:

    • Per configurare CloudWatch la registrazione, per la configurazione CloudWatch dei registri, scegli Modifica.

    • Per configurare la registrazione di file system, per Configurazione log locale, scegli Modifica.

    Puoi configurare la registrazione per una posizione o entrambe le posizioni.

  5. Nella modalità di configurazione dei registri, selezionare il livello di registro del sistema Greengrass o il livello di registro delle funzioni User Lambda. Puoi scegliere un componente o entrambi i componenti.

  6. Scegli il livello minimo di eventi che desideri registrare. Gli eventi al di sotto di questa soglia vengono filtrati e non vengono archiviati.

  7. Selezionare Salva. Le modifiche diventano effettive dopo la distribuzione del gruppo.

Configurazione della registrazione (API)

Puoi utilizzare le API di logger AWS IoT Greengrass per configurare la registrazione in modo programmatico. Ad esempio, puoi utilizzare l'operazione CreateLoggerDefinition per creare una definizione di logger basata su un payload LoggerDefinitionVersion, che utilizza la sintassi seguente:

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

LoggerDefinitionVersion è una serie di uno o più oggetti Logger che hanno le seguenti proprietà:

Id

Un identificatore per il logger.

Type

Il meccanismo di storage per gli eventi di log. Quando AWSCloudWatch viene utilizzato, gli eventi di registro vengono inviati a Logs. CloudWatch Quando viene utilizzato FileSystem, gli eventi di log vengono archiviati nel file system locale.

Valori validi: AWSCloudWatch, FileSystem

Component

L'origine dell'evento di log. Quando viene utilizzato GreengrassSystem, vengono registrati gli eventi provenienti dai componenti di sistema Greengrass. Quando viene utilizzato Lambda, vengono registrati gli eventi provenienti dalle funzioni Lambda definite dall'utente.

Valori validi: GreengrassSystem, Lambda

Level

La soglia del livello di log. Gli eventi di log al di sotto di questa soglia vengono filtrati e non vengono archiviati.

Valori validi: DEBUG, INFO (consigliato), WARN, ERROR, FATAL

Space

Il volume massimo di storage locale, in KB, da utilizzare per l'archiviazione dei log. Questo campo si applica solo se Type è impostato su FileSystem.

Esempio di configurazione

L'esempio LoggerDefinitionVersion seguente specifica una configurazione di registrazione che effettua le seguenti operazioni:

  • Attiva la registrazione del file system ERROR e versioni successive per i componenti AWS IoT Greengrass del sistema.

  • Attiva la registrazione del file system INFO (e versioni successive) per le funzioni Lambda definite dall'utente.

  • Attiva CloudWatch INFO (e oltre) la registrazione per le funzioni Lambda definite dall'utente.

{ "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" } ] } }

Dopo aver creato una versione della definizione di logger, puoi utilizzare l'ARN della versione per creare una versione di gruppo prima di distribuire il gruppo.

Limitazioni di registrazione

AWS IoT Greengrass presenta le seguenti limitazioni di registrazione.

Transazioni al secondo

Quando la registrazione CloudWatch è abilitata, il componente di registrazione registra in batch gli eventi localmente prima di inviarli a CloudWatch, in modo che tu possa effettuare il log a una velocità superiore a cinque richieste al secondo per flusso di log.

Memoria

Se AWS IoT Greengrass è configurato per inviare log a CloudWatch e una funzione Lambda registra più di 5 MB/secondo per un periodo di tempo prolungato, la pipeline di elaborazione interna alla fine si riempie. Il caso peggiore teorico è di 6 MB per funzione Lambda.

Differenza dell'ora

Quando la registrazione a CloudWatch è abilitata, il componente di registrazione firma le richieste CloudWatch utilizzando il normale processo di firma Signature versione 4. Se l'ora di sistema sul dispositivo AWS IoT Greengrass principale non è sincronizzata per più di 15 minuti, le richieste vengono rifiutate.

Utilizzo del disco

Utilizza la seguente formula per calcolare il volume totale massimo di utilizzo del disco per la registrazione.

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

Dove:

greengrass-system-component-space

Il volume massimo di storage locale per i log del componente di sistema AWS IoT Greengrass.

lambda-space

La quantità massima di archiviazione locale per i log delle funzioni Lambda.

lambda-count

Il numero di funzioni Lambda distribuite.

Perdita di log

Se il dispositivo AWS IoT Greengrass principale è configurato per accedere solo a CloudWatch e non è disponibile alcuna connettività Internet, non è possibile recuperare i log attualmente presenti in memoria.

Quando le funzioni Lambda vengono terminate (ad esempio durante la distribuzione), non vengono scritti registri di alcuni secondi. CloudWatch

CloudTrail registri

AWS IoT Greengrassviene eseguito conAWS CloudTrail, un servizio che fornisce un registro delle azioni intraprese da un utente, un ruolo o un AWS servizio inAWS IoT Greengrass. Per ulteriori informazioni, consulta Registrazione delle chiamate API AWS IoT Greengrass con AWS CloudTrail.