View a markdown version of this page

Configura AWS IoT logging - AWS IoT Core

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à.

Configura AWS IoT logging

È necessario abilitare la registrazione utilizzando la AWS IoT console, la CLI o l'API prima di poter monitorare e registrare AWS IoT l'attività. È possibile configurare la registrazione AWS IoT a tre livelli: a livello di account, a livello di evento o a livello di risorsa specifica. Event-level e la registrazione specifica delle risorse sono disponibili esclusivamente con la registrazione V2. I clienti che utilizzano la registrazione V1 devono eseguire una migrazione alla V2 per accedere a queste funzionalità. Vedi i dettagli. https://docs.aws.amazon.com/iot/latest/developerguide/configure-logging.html#migration-v1-v2

Quando si considera come configurare la AWS IoT registrazione, la configurazione della registrazione a livello di account determina come verrà registrata AWS IoT l'attività se non diversamente specificato. Inizialmente, potresti voler ottenere registri dettagliati con un livello di registro predefinito di INFO o DEBUG. Dopo aver esaminato i log iniziali, è possibile modificare il livello di registro predefinito impostando un livello meno dettagliato, ad esempio WARN o ERROR, a livello di account o di evento e impostare un livello di registro più dettagliato e specifico per le risorse che potrebbero richiedere maggiore attenzione. I livelli di log possono essere modificati ogni volta che vuoi.

Questo argomento riguarda l'accesso dal cloud. AWS IoT Per informazioni sulla registrazione e il monitoraggio lato dispositivo, consulta Caricare i log lato dispositivo su. CloudWatch

Per informazioni sulla registrazione e il monitoraggio, vedi Accesso e monitoraggio. AWS IoT GreengrassAWS IoT Greengrass

Configurazione dell'accesso alla V2 AWS IoT

Determinazione della versione di registrazione

L'GetV2LoggingOptions API restituisce un messaggio NotConfiguredException se la registrazione V2 non è abilitata. Questo errore si verifica quando la registrazione V1 è in uso o non è stata configurata alcuna registrazione.

Informazioni sulle funzionalità di registrazione della V2

La registrazione V2 offre due funzionalità chiave: registrazione a livello di evento e registrazione specifica delle risorse. Event-levella registrazione consente una configurazione mirata della registrazione con livelli di registro personalizzabili e destinazioni dei gruppi di log. CloudWatch Resource-specific la registrazione consente di filtrare i log per gruppo di oggetti, IP di origine, ID client o ID principale. Insieme, queste funzionalità forniscono un controllo granulare e una visibilità completa sulle operazioni IoT, migliorando la ricercabilità dei log e riducendo i costi eliminando le attività di registrazione non necessarie.

Migrazione da V1 a V2

Puoi migrare alla registrazione V2 utilizzando l' SetV2LoggingOptions API tramite la CLI o l'SDK. AWS https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/set-v2-logging-options.html Dopo la migrazione, indirizza AWS IoT automaticamente tutti i log al gruppo di log ''. CloudWatch AWSIotLogsV2 Importante: se le applicazioni o le risorse downstream consumano informazioni da 'AWSIotLogs', aggiornale per utilizzare il percorso del gruppo di log corrispondente.

Configurare il ruolo e il criterio di registrazione

Prima di poter abilitare l'accesso AWS IoT, devi creare un ruolo IAM e una policy che AWS IoT autorizzi a scrivere attività di AWS IoT registro nei gruppi di CloudWatch log per tuo conto. Puoi anche generare un ruolo IAM con le policy necessarie nella sezione Logs della AWS IoT console.

Nota

Prima di abilitare la AWS IoT registrazione, assicurati di aver compreso le autorizzazioni di accesso ai CloudWatch log. Gli utenti con accesso ai CloudWatch log possono visualizzare le informazioni di debug dai tuoi dispositivi. Per ulteriori informazioni, consulta Autenticazione e controllo degli accessi per Amazon CloudWatch Logs.

Se prevedi un traffico elevato a AWS IoT Core causa dei test di carico, valuta la possibilità di disabilitare la registrazione IoT per evitare la limitazione. Se viene rilevato un traffico elevato, il nostro servizio potrebbe disabilitare l'accesso al tuo account.

Di seguito viene illustrato come creare un ruolo e una policy di registrazione per le risorse. AWS IoT Core

Creazione di un ruolo di logging

Per creare un ruolo di registrazione, apri la finestra di dialogo Roles hub of the IAM console (Hub ruoli della console IAM) e scegli Create role (Crea ruolo).

  1. In Select trusted entity (Seleziona un'entità attendibile), scegli AWS Service. Quindi scegli IoT in Use case (Caso d'uso). Se IoT non viene visualizzata, entra e cerca IoT dal menu a discesa Casi d'uso per altri servizi AWS :. Seleziona Avanti.

  2. Nella pagina Add permissions (Aggiungi autorizzazioni), vengono visualizzate le policy che sono automaticamente collegate al ruolo di servizio. Scegli Next (Successivo).

  3. Nella pagina Name, review, and create (Nomina, verifica e crea), immetti Role name (Nome ruolo) e Role description (Descrizione ruolo) per il ruolo, quindi scegli Create role (Crea ruolo).

Policy del ruolo di logging

I seguenti documenti sulla politica forniscono la politica del ruolo e la politica di fiducia che consentono AWS IoT di inviare voci di registro per CloudWatch conto dell'utente. Se si configura la registrazione a livello di evento con un gruppo di CloudWatch log personalizzato, è necessario aggiornare la politica del ruolo per includere l'ARN della risorsa personalizzata.

Se hai anche il permesso AWS IoT Core per LoRaWAN di inviare voci di registro, vedrai un documento di policy creato per te che registra entrambe le attività.

Nota

Questi documenti sono stati creati al momento della creazione del ruolo di logging. I documenti contengono variabili e ${accountId} devono essere sostituite con i propri valori. ${partition}, ${region}

  • Sostituisci la partizione con la partizione della regione.

  • Sostituisci la regione con la AWS regione che usi. Assicurati di utilizzare la stessa AWS regione utilizzata per configurare la AWS CLI sul tuo dispositivo.

  • Sostituisci l'ID dell'account con l'ID del tuo AWS account.

Policy del ruolo:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "iot:GetLoggingOptions", "iot:SetLoggingOptions", "iot:SetV2LoggingOptions", "iot:GetV2LoggingOptions", "iot:SetV2LoggingLevel", "iot:ListV2LoggingLevels", "iot:DeleteV2LoggingLevel" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:AWSIotLogsV2:*" ] } ] }

Politica di fiducia per registrare solo AWS IoT Core le attività:

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS IoT La registrazione potrebbe non riuscire a pubblicare la registrazione CloudWatch nei log a causa delle autorizzazioni insufficienti per i ruoli IAM. In questo caso, controlla le metriche di CloudWatch registrazione per analizzare e risolvere i problemi.

Configura l'accesso a AWS IoT (console)

Questa sezione descrive come configurare la AWS IoT registrazione utilizzando la AWS IoT console. È possibile impostare la registrazione a livello di account, a livello di evento e a livello di risorsa.

Per configurare AWS IoT registrazione:
  1. Accedi alla AWS IoT console. Per ulteriori informazioni, consulta Apri il AWS IoT console.

  2. Nel riquadro di navigazione a sinistra, scegli Registri (in precedenza era una sezione in Impostazioni).

  3. Configura la registrazione a livello di account: la registrazione a livello di account si applica a tutta la tua AWS IoT flotta (dispositivi o endpoint), a meno che non venga sostituita da impostazioni a livello di evento o specifiche delle risorse.

    1. Account-level Nella sezione Registrazione, seleziona Gestisci la registrazione a livello di account per effettuare gli aggiornamenti.

    2. Seleziona la casella di controllo «Abilita registrazione» per iniziare a inviare i log a. CloudWatch Se «Abilita registrazione» è deselezionata, non AWS IoT invierà alcun registro ai gruppi di log, indipendentemente dalle configurazioni di CloudWatch registrazione a livello di evento o di risorsa.

    3. In IAM log role, seleziona un ruolo esistente dall'elenco a discesa. Puoi visualizzare i dettagli del ruolo per controllare le autorizzazioni del ruolo. In alternativa, seleziona Crea nuovo ruolo per configurare un nuovo ruolo IAM. Il ruolo di registrazione fornisce politiche che consentono di AWS IoT inviare voci di registro per tuo CloudWatch conto. Se si configura la registrazione a livello di evento con un gruppo di CloudWatch log personalizzato, è necessario aggiornare la politica del ruolo per includere l'ARN per questo gruppo di log.

    4. Scegli il livello di registro predefinito che corrisponde al livello di dettaglio delle voci di registro che desideri visualizzare nei registri. CloudWatch Nota: il livello di registro «DEBUG» fornisce il maggior numero di dettagli ma aumenta CloudWatch i costi. CloudWatch le destinazioni dei gruppi di log non possono essere configurate a livello di account. Tuttavia, è possibile specificare gruppi di log personalizzati per singoli tipi di eventi come descritto nella sezione seguente.

    5. Scegli Aggiorna registrazione per salvare le modifiche.

  4. Event-level la registrazione consente di acquisire selettivamente i registri degli eventi pertinenti e indirizzarli a gruppi di log dedicati CloudWatch . Ciò offre la flessibilità di organizzare i log per casi d'uso per una migliore rilevabilità, condividerli con destinatari diversi e ridurre CloudWatch i costi abilitando i log e impostando i livelli di log in base alla criticità degli eventi.

    Configura la registrazione a livello di evento: la registrazione a livello di evento acquisisce eventi specifici, come i tentativi di autenticazione del client. AWS IoT Queste impostazioni sostituiscono la registrazione. Account-Level

    1. Nella sezione Event-level registrazione, seleziona Gestisci la registrazione a livello di evento per effettuare gli aggiornamenti.

    2. Per impostazione predefinita, i tipi di eventi ereditano la configurazione di registrazione a livello di account. Nota: quando la registrazione specifica della risorsa è configurata, sostituisce le impostazioni a livello di account ed evento.

    3. Per modificare le impostazioni per singoli eventi, fai clic sul valore nella riga dell'evento corrispondente. È possibile regolare sia il livello di registro che la destinazione del gruppo di CloudWatch log. Quando si specifica una destinazione personalizzata per un gruppo di CloudWatch log, è necessario verificare che la policy del ruolo IAM includa le autorizzazioni per il nuovo gruppo di log. Il mancato aggiornamento della policy sui ruoli AWS IoT impedirà la scrittura dei log nel gruppo di log personalizzato. Dopo aver effettuato la selezione, fai clic sul segno di spunta per confermare la scelta. La colonna «È modificato» mostrerà «Sì» per indicare le modifiche in sospeso.

    4. Fai clic su Aggiorna registrazione per applicare le modifiche o scegli Annulla per annullare.

  5. Configura le Resource-specific sostituzioni: le Resource-specific sostituzioni applicano un'impostazione di registrazione alle risorse selezionate. Una risorsa può essere un gruppo di oggetti, un IP di origine, un ID client o un ID principale. Resource-specific la configurazione di registrazione sostituisce le impostazioni a livello di account e a livello di evento. Se abilitata, genera registri per tutti i tipi di eventi al livello di registrazione configurato per le risorse specificate. Ad esempio, è possibile impostare la registrazione a livello di debug per un oggetto specifico mantenendo la registrazione a livello di informazioni per tutti gli altri oggetti.

    1. Seleziona Aggiungi sostituzioni specifiche per le risorse nella sezione Sostituzioni. Resource-specific

    2. Scegli una destinazione del registro: gruppo di oggetti, IP di origine, ID client o ID principale.

    3. Immettete il valore di destinazione del log corrispondente per il tipo di destinazione selezionato.

    4. Seleziona il livello di registro desiderato dal menu a discesa nella sezione del livello di Resource-specific registro.

    5. Fai clic su Invia per aggiungere l'override o su Annulla per annullare le modifiche.

    6. Per modificare una sostituzione specifica per una risorsa esistente, seleziona la casella di controllo accanto alla risorsa e fai clic su «Rimuovi» per eliminare l'override o su «Modifica» per modificarla.

Dopo aver abilitato la registrazione, visita Visualizzazione AWS IoT accede alla CloudWatch console per ulteriori informazioni sulla visualizzazione delle voci di registro.

Configura l'account e accedi Event-level AWS IoT (CLI)

Questa sezione descrive come configurare la registrazione globale AWS IoT utilizzando la CLI.

È possibile configurare facoltativamente la registrazione. Event-level Event-level la registrazione acquisisce le informazioni di registrazione a livello di evento, ad esempio eventi di autenticazione e autorizzazione o creazione di certificati. È possibile personalizzare sia il livello di registro che le destinazioni dei gruppi di CloudWatch log a livello di evento. Event-level la registrazione opera a un livello più mirato rispetto alla registrazione a livello di account e pertanto sostituisce le impostazioni di registrazione a livello di account. Questo approccio gerarchico consente di mantenere diverse strategie di registrazione per diversi tipi di eventi in base alla loro importanza operativa e alle considerazioni relative ai costi.

Nota

Hai bisogno dell'ARN (Amazon Resource Name) del ruolo che desideri utilizzare. Se è necessario creare un ruolo da utilizzare per la registrazione, consulta Creazione di un ruolo di logging prima di continuare. Quando specifichi un gruppo di CloudWatch log personalizzato per qualsiasi tipo di evento, assicurati che il tuo ruolo di registrazione disponga delle autorizzazioni richieste per il gruppo di log di destinazione.

L'entità principale utilizzata per effettuare la chiamata API deve avere Passaggio delle autorizzazioni ai ruoli per il ruolo di logging.

Puoi anche eseguire questa procedura con l'API utilizzando i metodi dell' AWS API che corrispondono ai comandi CLI mostrati qui.

Per utilizzare la CLI per configurare la registrazione predefinita per AWS IoT
  1. Usa il comando set-v2-logging-options per impostare le opzioni di logging per l'account.

    aws iot set-v2-logging-options \ --event-configurations event-configuration-list \ --role-arn logging-role-arn \ --default-log-level log-level

    dove:

    --role-arn

    Il ruolo ARN che concede l' AWS IoT autorizzazione a scrivere nei tuoi log in Logs. CloudWatch Role-arn la configurazione è necessaria per la configurazione iniziale.

    --default-log-level

    Il livello di log da usare. I valori validi sono: ERRORWARN,INFO,DEBUG, oDISABLED. Default-log-level la configurazione è richiesta per la configurazione iniziale.

    --no-disable-all-logs

    Un parametro opzionale che abilita tutte AWS IoT le registrazioni. Utilizzare questo parametro per abilitare la registrazione quando è attualmente disattivata.

    --disable-all-logs

    Un parametro opzionale che disabilita tutte le AWS IoT registrazioni. Utilizzare questo parametro per disabilitare la registrazione quando è attualmente abilitata.

    --event-configurations

    Questo parametro è opzionale e consente di personalizzare le impostazioni di registrazione per i singoli tipi di eventi:

    • eventType: il tipo di evento che sostituisce l'impostazione a livello di account

    • logLevel: sostituisci l'impostazione a livello di account con DEBUG, INFO, ERROR, WARN o DISABLED

    • logDestination: specifica un gruppo di log personalizzato per la consegna dei log CloudWatch

    È possibile configurare il livello di registrazione e la destinazione del registro in modo indipendente per ciascun tipo di evento. Se non specificato, gli eventi erediteranno le impostazioni a livello di account

    aws iot set-v2-logging-options \ --event-configurations "[{\"eventType\":\"Publish-In\",\"logLevel\":\"INFO\",\"logDestination\":\"examplePublishInLogGroup\"}]"
  2. Utilizzare il comando get-v2-logging-options per ottenere le opzioni di registrazione correnti.

    aws iot get-v2-logging-options \ --verbose

    dove:

    --verbose

    Un parametro opzionale che consente di recuperare tutti gli EventTypes e le relative configurazioni.

Dopo aver abilitato la registrazione, visita Visualizzazione AWS IoT accede alla CloudWatch console per ulteriori informazioni sulla visualizzazione delle voci di registro.

Nota

AWS IoT continua a supportare i comandi precedenti (set-logging-optionseget-logging-options) per impostare e ottenere la registrazione globale sul tuo account. Va tenuto presente che, utilizzando questi comandi, i log risultanti contengono testo normale anziché payload JSON e la latenza di logging è generalmente più elevata. Non verranno apportati ulteriori miglioramenti all'implementazione dei comandi precedenti. Ti consigliamo di utilizzare le versioni «v2" per configurare le opzioni di registrazione e, quando possibile, modificare le applicazioni legacy che utilizzano le versioni precedenti.

Configura le sostituzioni Resource-specific in AWS IoT (CLI)

Questa sezione descrive come configurare le Resource-specific sostituzioni AWS IoT utilizzando la CLI. Resource-specific overrides consente di specificare un livello di registrazione per una risorsa specifica identificata da Thing Group, Client ID, Source IP o Principal ID. Quando la registrazione specifica della risorsa è abilitata, sovrascrive le impostazioni a livello di account e a livello di evento. Tutti i tipi di eventi genereranno registri per la risorsa specificata al livello di registrazione configurato, anche se tali eventi sono disabilitati nelle configurazioni a livello di evento.

I gruppi di oggetti possono contenere altri gruppi di oggetti per creare una relazione gerarchica. In questa procedura viene descritto come configurare la registrazione di un singolo gruppo di oggetti. È possibile applicare questa procedura al gruppo di elementi padre in una gerarchia per configurare la registrazione per tutti i gruppi di elementi nella gerarchia. È inoltre possibile applicare questa procedura a un gruppo di elementi figlio per ignorare la configurazione di registrazione del relativo elemento padre.

Un oggetto può essere membro di un gruppo di oggetti. Questa appartenenza consente all'oggetto di ereditare configurazioni, politiche e impostazioni applicate al gruppo di oggetti. I gruppi di oggetti vengono utilizzati per gestire e applicare le impostazioni a più elementi collettivamente, anziché gestire ogni elemento singolarmente. Quando l'ID client corrisponde al nome dell'oggetto, AWS IoT Core assocerà automaticamente la sessione client alla risorsa dell'oggetto corrispondente. Ciò consente alla sessione client di ereditare le configurazioni e le impostazioni applicate ai gruppi di oggetti a cui appartiene l'oggetto, inclusi i livelli di registrazione. Se l'ID client non corrisponde al nome dell'oggetto, è possibile abilitare l'allegato esclusivo dell'oggetto per stabilire l'associazione. Per ulteriori informazioni, consulta Associazione di qualsiasi AWS IoT cosa a una connessione client MQTT.

Oltre ai gruppi di oggetti, puoi anche registrare destinazioni come l'ID client di un dispositivo, l'IP di origine e l'ID principale.

Nota

Hai bisogno dell'Amazon Resource Name (ARN) del ruolo che desideri utilizzare. Se è necessario creare un ruolo da utilizzare per la registrazione, consulta Creazione di un ruolo di logging prima di continuare.

L'entità principale utilizzata per effettuare la chiamata API deve avere Passaggio delle autorizzazioni ai ruoli per il ruolo di logging.

È inoltre possibile eseguire questa procedura con l'API utilizzando i metodi dell' AWS API che corrispondono ai comandi CLI mostrati qui.

Per utilizzare la CLI per configurare Resource-specific le sostituzioni per AWS IoT
  1. Abilita la registrazione a livello di account prima di configurare la registrazione specifica della risorsa utilizzando il seguente comando: comando aws iot set-v2-logging-options

  2. Usa set-v2-logging-level il comando Resource-specific per configurare le sostituzioni. Vedi l'esempio seguente per la configurazione del gruppo di oggetti:

    aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=thing_group_name \ --log-level log_level
    --log-target

    Il tipo e il nome della risorsa per cui stai configurando il logging. Il valore targetType deve essere uno dei seguenti: THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID. Il valore del parametro log-target può essere testo, come illustrato nell'esempio di comando precedente, o una stringa JSON, ad esempio nell'esempio seguente.

    aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \ --log-level log_level
    --log-level

    Livello di logging usato durante la generazione di log per la risorsa specificata. I valori validi sono: DEBUG, INFO, ERROR, WARN e DISABLED.

  3. Utilizzare il comando list-v2-logging-levels per elencare i livelli di registrazione attualmente configurati.

    aws iot list-v2-logging-levels
  4. Utilizza il comando delete-v2-logging-level per eliminare un livello di registrazione specifico delle risorse, come negli esempi seguenti.

    aws iot delete-v2-logging-level \ --target-type "THING_GROUP" \ --target-name "thing_group_name"
    aws iot delete-v2-logging-level \ --target-type=CLIENT_ID --target-name=ClientId1
    --target-type

    Il valore target-type deve essere uno dei seguenti: THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID.

    --target-name

    Nome del gruppo di oggetti per il quale rimuovere il livello di registrazione.

Livelli di log

Questi livelli di log determinano gli eventi registrati e si applicano ai livelli di log predefiniti e specifici delle risorse.

ERRORE

Qualsiasi errore che provoca la mancata riuscita di un'operazione.

Esempio: autenticazione del dispositivo non riuscita a causa del certificato scaduto.

I log includono solo informazioni per il livello ERROR.

WARN

Qualsiasi evento che può potenzialmente causare incoerenze nel sistema, ma potrebbe non provocare la mancata riuscita dell'operazione.

Esempio: avvicinamento al limite di frequenza dei messaggi.

I log includono informazioni per i livelli ERROR e WARN.

INFO

High-level informazioni sul flusso delle cose.

Esempio: un cliente si è iscritto con successo a un argomento MQTT.

I log includono informazioni per i livelli INFO, ERROR e WARN.

DEBUG

Informazioni che possono essere utili quando si esegue il debug di un problema.

Esempio: IoT Rules Engine ha rilevato un messaggio pubblicato nell'argomento delle regole «rule/test» e l'esecuzione è stata avviata con successo. La regola è configurata con RepublishAction.

I log includono informazioni per i livelli DEBUG, INFO, ERROR e WARN.

DISABILITATO

Tutte le attività di logging sino disabilitate.