Come posso gestire al meglio i livelli di log dei log AWS IoT in AWS IoT Core?
Desidero seguire le best practice quando configuro i log AWS IoT in AWS IoT Core per ridurre i costi e il traffico di dati.
Breve descrizione
Nota: La seguente soluzione è valida solo per i log AWS IoT Core v2.
Come best practice, scopri quali risorse AWS IoT Core devi monitorare e a quale livello. Dividi le risorse AWS IoT Core, quindi assegna a ciascun segmento un livello di log adeguato. Puoi impostare livelli di log predefiniti o livelli di log specifici per le risorse.
Ad esempio, configura la registrazione predefinita in modo che abbia un livello di log meno dettagliato, come ERROR o WARN. Quando configuri la registrazione predefinita, la configurazione viene applicata a tutte le risorse per le quali non è configurata la registrazione specifica della risorsa. Per ottenere un livello più dettagliato, come INFO o DEBUG, configura la registrazione specifica della risorsa. È possibile configurare la registrazione a livello di risorsa per diversi tipi di destinazione, ad esempio THING\ _GROUP, CLIENT\ _ID, SOURCE\ _IP o PRINCIPAL\ _ID.
È possibile utilizzare simultaneamente la registrazione predefinita e la registrazione specifica per le risorse.
Importante: in base alle dimensioni del parco AWS IoT Core, livelli di log più dettagliati possono comportare costi più elevati e complicare la risoluzione dei problemi. L'uso di livelli di registrazione più dettagliati comporta anche un aumento del traffico di dati. È consigliabile utilizzare solo INFO o DEBUG per risolvere temporaneamente i problemi. Una volta risolto il problema, reimposta il log su un livello meno dettagliato. Per ulteriori informazioni sui livelli di log, consulta Log levels.
Risoluzione
Prerequisiti:
- L’interfaccia della linea di comando AWS (AWS CLI) è installata sul computer locale con le credenziali di autorizzazione dell’amministratore AWS IoT. La regione AWS predefinita per AWS CLI deve puntare verso la regione di destinazione.
- I client devono essere connessi ad AWS IoT Core come oggetti IoT, sia registrati che non registrati.
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Uso della registrazione predefinita per ridurre i costi e il traffico di dati
Impostando il livello di registrazione predefinito su ERROR o WARN per i log AWS IoT, è possibile esaminare i log di errore o di avviso. Questi livelli dettagliati riducono i costi e il traffico dati. Per ulteriori informazioni, consulta Come posso configurare manualmente i livelli di registrazione per risorse specifiche in AWS IoT Core?
Nota: se crei un caso Supporto AWS, devi fornire i log di AWS IoT Core.
Registrazione manuale delle risorse
Per informazioni su come registrare manualmente le risorse, consulta Come posso configurare manualmente i livelli di registrazione per risorse specifiche in AWS IoT Core?
Registrazione dinamica delle risorse
Per ulteriori informazioni su come registrare dinamicamente le risorse, consulta Come posso configurare i livelli di registrazione in modo dinamico per risorse specifiche in AWS IoT Core?
Monitoraggio delle voci dei log
È possibile monitorare le voci dei log di AWS IoT con la console Amazon CloudWatch o AWS CLI.
Console CloudWatch
Per monitorare i log di AWS IoT nella console CloudWatch, consulta Viewing AWS IoT logs in the CloudWatch console.
AWS CLI
Per ottenere i log in AWS CLI, esegui il comando filter-log-events. Sostituisci YourStartTimeInMilliseconds con l'ora di inizio in millisecondi:
aws logs filter-log-events --log-group-name AWSIotLogsV2 \ --start-time YourStartTimeInMilliseconds
Nota: per cercare specifici attributi dei log è possibile utilizzare --filter-pattern. Per ulteriori informazioni, consulta Filter and pattern syntax for metric filters, subscription filters, filter log events, and Live Tail.
Il valore logLevel è il livello di log configurato per la destinazione. In questo esempio, il livello di log per la destinazione è INFO:
{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "INFO", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Success", "eventType": "Connect", "protocol": "MQTT", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a123456", "sourceIp": "123.123.123.123", "sourcePort": 13490 }
Nota: CLIENT_ID è disponibile solo quando ci si connette ad AWS IoT Core utilizzando MQTT o MQTT tramite protocolli WSS. Il protocollo HTTPS non supporta gli ID client. È invece possibile utilizzare i tipi di destinazione SOURCE_IP o PRINCIPAL_ID.
Modifica o eliminazione dei livelli di log
È possibile modificare il livello di log predefinito e il livello di log specifico della risorsa in qualsiasi momento. Il completamento delle modifiche può richiedere fino a 10 minuti.
Esegui il comando AWS CLI delete-v2-logging-level. Sostituisci YourTargetName con il nome della destinazione:
aws iot delete-v2-logging-level \ --target-type "THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID" \ --target-name YourTargetName
Informazioni correlate

Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 6 mesi fa