Come posso gestire al meglio i livelli di registrazione dei miei log AWS IoT in AWS IoT Core?

6 minuti di lettura
0

Voglio seguire le migliori pratiche quando configuro i miei log AWS IoT in AWS IoT Core per ridurre i costi e il traffico di dati.

Breve descrizione

**Nota:**questo articolo fa riferimento solo alla versione V2 dei log AWS IoT Core.

È importante comprendere quali risorse di AWS IoT Core devono essere monitorate e a quale livello. È possibile segmentare le risorse AWS IoT Core e assegnare a ogni segmento un livello di registrazione adatto alle proprie esigenze di monitoraggio. La registrazione predefinita di AWS IoT Core permette di configurare livelli di registrazione predefiniti e personalizzati per tue risorse.

Si consiglia di configurare:

  • La registrazione predefinita per ottenere un livello di registrazione poco dettagliato, come livelli ERROR o WARN. Se viene impostata la registrazione predefinita, questa sarà applicata a tutte le risorse a meno che non siano configurate registrazioni specifiche per tali risorse.

  • La registrazione specifica per le risorse (manuale o dinamica) per avere un livello più dettagliato, come INFO o DEBUG. Si possono configurare diversi tipi di target come THING_GROUP, CLIENT_ID, SOURCE_IP o PRINCIPAL_ID.

È possibile utilizzare simultaneamente la registrazione predefinita e la registrazione specifica per le risorse. I livelli di dettaglio includono DISABLED (il più basso), ERROR, WARN, INFO e DEBUG (il più alto).

Importante: a seconda delle dimensioni del parco istanze di AWS IoT Core, l'attivazione di livelli di log più dettagliati può comportare costi elevati e rendere più complessa la risoluzione dei problemi. L'uso di livelli di registrazione più dettagliati comporta anche un aumento del traffico di dati. È consigliabile utilizzare le funzioni INFO o DEBUG solo come misura temporanea durante la risoluzione dei problemi. Una volta completata questa operazione, si consiglia di ripristinare i livelli di registrazione a un'impostazione meno dettagliata.

Risoluzione

Prerequisito

Assicurati di avere l'interfaccia della linea di comando AWS (AWS CLI) installata localmente con le credenziali di autorizzazione dell'amministratore IoT. La regione AWS predefinita per AWS CLI deve puntare verso la regione AWS di destinazione. I client devono essere connessi ad AWS IoT Core come oggetti IoT, sia registrati che non registrati.

**Nota:**Se ricevi errori quando esegui i comandi AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Registrazione predefinita

Impostando il livello di registrazione predefinito per i log di AWS IoT su ERROR o WARN, puoi esaminare i log di errore o di avviso. Impostare il livello di registrazione predefinito su livelli poco dettagliati riduce i costi e il traffico di dati. Per ulteriori informazioni, consulta Come posso configurare le impostazioni di registrazione predefinite per AWS IoT Core?

Nota: Quando crei un caso, è necessario fornire i log di AWS IoT Core al Supporto AWS.

Il Supporto AWS non ha accesso a queste informazioni perché sono considerate dati dei clienti.

Registrazione manuale di risorse specifiche

I log di AWS IoT Core permettono di impostare livelli di registrazione specifici per le risorse per:

  • Clienti registrati come oggetti
  • Clienti non registrati come oggetti

Per ulteriori informazioni, consulta Come posso configurare manualmente i livelli di registrazione per risorse specifiche in AWS IoT Core?

Per i clienti registrati come oggetti, è possibile gestire la registrazione specifica delle risorse per più elementi a un livello di registrazione definito. Inoltre, è possibile aggiungere o rimuovere elementi dal gruppo manualmente. Per garantire una corretta registrazione dei client come oggetti IoT in AWS IoT Core e la corretta connessione utilizzando l'ID client associato al proprio nome dell'oggetto.

Per gestire il gruppo di oggetti è quindi possibile utilizzare un gruppo di oggetti statico con un tipo di target THING_GROUP.

Nota: Quando di utilizzano i gruppi statici è necessario considerare i limiti di quota. Per ulteriori informazioni, consulta Limiti e quote delle risorse dei gruppi di oggetti di AWS IoT Core.

Per i client non registrati come oggetti, è possibile utilizzare gli attributi dei client come tipi di target per gestire le risorse. Questi attributi includono CLIENT_ID, SOURCE_IP o PRINCIPAL_ID.

Registrazione automatica di risorse specifiche

Per impostare un livello di registrazione specifico per le risorse è possibile utilizzare un gruppo di oggetti dinamico. I client devono essere registrati come oggetti IoT e connettersi utilizzando lo stesso ID client come nome dell'oggetto. Il gruppo di oggetti dinamico utilizza una query di indicizzazione del parco istanze che trova e aggiunge continuamente e automaticamente al gruppo gli oggetti che soddisfano le condizioni della query. Per ulteriori informazioni, consulta Come posso configurare i livelli di registrazione in modo dinamico per risorse specifiche in AWS IoT Core?

Nota: quando si crea o si aggiorna un gruppo di oggetti dinamico, gli oggetti possono essere idonei a far parte di un gruppo e non essere aggiunti automaticamente. Per ulteriori informazioni, consulta I comandi eseguiti in modo corretto possono registrare errori.

Monitoraggio delle voci dei log

È possibile monitorare le voci dei log di AWS IoT con la console Amazon CloudWatch o con AWS CLI:

Console CloudWatch

1.    Apri la console CloudWatch.

2.    Nel pannello di navigazione, in Log, scegli Gruppi di log.

3.    Nella casella di testo dei filtri, inserisci AWSIoTLogsV2, poi premi Invio.
Nota: il gruppo di log AWSIoTLogsV2 non sarà visibile nella console CloudWatch fino a quando non avrai attivato correttamente la registrazione dei log in AWS IoT Core. Inoltre, affinché siano visibili, le voci dei log devono essere scritte dalle operazioni AWS IoT per il gruppo di log.

4.    Scegli AWSIoTLogsV2.

5.    Scegli Cerca tutto. Viene visualizzato un elenco completo dei log AWS IoT generati per il tuo account.

AWS CLI

Esegui il seguente comando in AWS CLI per ottenere i log AWS IoT:

aws logs filter-log-events --log-group-name AWSIotLogsV2 \
 --start-time YourStartTimeInMilliseconds

**Nota:**per creare specifici attributi dei log è possibile utilizzare --filter-pattern. Per ulteriori informazioni, consulta Sintassi di filtri e modelli.

Il valore del campo "logLevel" riflette il livello di registrazione configurato per il target. Nell'esempio seguente, il livello di registrazione per il target è configurato su 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. Utilizza invece i tipi di target SOURCE_IP o PRINCIPAL_ID.

Modificare o eliminare i livelli di registrazione

È possibile modificare il livello di registrazione sia per il livello predefinito che per le risorse specifiche in qualsiasi momento. L'applicazione delle modifiche può richiedere fino a dieci minuti.

In AWS CLI, esegui il comando delete-v2-logging-level con le seguenti modifiche apportate ai campi --target-type e --target-name:

aws iot delete-v2-logging-level \
 --target-type "THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID" \
 --target-name YourTargetName

Informazioni correlate

Endpoint e quote di Gestione del dispositivo AWS IoT

Monitoraggio di AWS IoT

Prezzi di Gestione del dispositivo AWS IoT

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa