Come posso configurare i livelli di registrazione in modo dinamico per risorse specifiche in AWS IoT Core?

5 minuti di lettura
0

Voglio configurare la registrazione specifica delle risorse in modo dinamico per i miei log di AWS IoT Core.

Breve descrizione

Nota: Questo articolo si riferisce solo alla V2 dei log di AWS IoT Core.

Puoi utilizzare i log di AWS IoT Core per impostare dinamicamente i livelli di registrazione per risorse specifiche. Puoi utilizzare un gruppo di oggetti dinamico per impostare un livello di registrazione specifico per la risorsa. Devi registrare i client come oggetti e devono connettersi con lo stesso ID client associato al nome dell'oggetto. Il gruppo di oggetti dinamico utilizza una query di indicizzazione del parco istanze che trova e aggiunge, automaticamente e continuamente, gli oggetti che soddisfano le condizioni della query al gruppo.

È consigliabile configurare la registrazione predefinita a un livello di verbosità inferiore e la registrazione specifica delle risorse a un livello di verbosità più elevato. I livelli di verbosità del log includono DISABLED (il più basso), ERROR, WARN, INFO e DEBUG (il più alto).

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.

Importante: A seconda delle dimensioni del parco istanze di AWS IoT Core, l'attivazione di livelli di log più verbosi può comportare costi elevati e rendere più difficile la risoluzione dei problemi. INFO o DEBUG devono essere utilizzati solo come misura temporanea durante la risoluzione dei problemi. Una volta completata la risoluzione dei problemi, i livelli di registrazione devono essere riportati a un'impostazione meno verbosa.

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 l'Interfaccia della linea di comando AWS dovrebbe puntare verso la Regione AWS di destinazione. Devi avere client connessi e che interagiscono con i tuoi endpoint AWS IoT Core, come oggetti IoT registrati.

Nota: Se visualizzi errori durante l'esecuzione dei comandi dell'AWS CLI, assicurati di utilizzare la versione più recente dell'interfaccia della linea di comando AWS.

Configurazione della registrazione automatica per risorse specifiche

1.    Crea un oggetto AWS IoT e aggiungi un attributo dell'oggetto.

Nota: Se necessario, puoi aggiungere altri attributi degli oggetti. Quindi, puoi modificare la query dinamica del gruppo di oggetti per cercarli.

2.    Attiva l'indicizzazione degli oggetti.

3.    Esegui il comando DescribeIndex per verificare che l'indice degli oggetti abbia un attributo indexStatus ATTIVO:

aws iot describe-index --index-name "AWS_Things"

4.    Crea un gruppo di oggetti dinamico utilizzando la console AWS IoT o l'Interfaccia della linea di comando AWS.

Console AWS IoT

1.    Attiva l'indicizzazione del parco istanze se non l'hai già fatto.

2.    Accedi alla console AWS IoT.

3.    Nel riquadro di navigazione, scegli Tutti i dispositivi, quindi Gruppi di oggetti.

4.    Scegli Crea gruppo di oggetti.

5.    In Tipo di gruppo di oggetti, scegli Crea gruppo di oggetti dinamico, quindi scegli Avanti.

6.    Per Nome del gruppo di oggetti, inserisci logging_level_debug_dynamic. Quindi, scegli Crea gruppo di oggetti.
Nota: Sostituisci logging_level_debug_dynamic con il nome del gruppo di oggetti.

7.    In Query, inserisci attributes.firmware:1, quindi premi Invio per applicare l'istruzione della query di ricerca.
Nota: Sostituisci firmware:1 con l'attributo e il valore dell'oggetto che desideri utilizzare per la query.

8.    Scegli Anteprima query per visualizzare tutti gli oggetti che corrispondono ai criteri della query.

9.    Scegli Crea gruppo di oggetti.

AWS CLI

1.    Esegui il comando CreateDynamicThingGroup per creare un gruppo di oggetti dinamico:

Nota: La creazione di gruppi di oggetti dinamici non è istantanea e può richiedere del tempo per essere completata. Per ulteriori informazioni, consulta Creazione di un gruppo di oggetti dinamico.

aws iot create-dynamic-thing-group \
 --thing-group-name "logging_level_debug_dynamic" \
 --query-string "attributes.firmware:1"

Nota: Nell'esempio precedente, sostituisci firmware:1 con l'attributo e il valore che desideri utilizzare per la query. Sostituisci logging_level_debug_dynamic con il nome del gruppo di oggetti.

L'output è simile al seguente messaggio:

{
 "thingGroupName": "logging_level_debug_dynamic",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic",
 "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456",
 "indexName": "AWS_Things",
 "queryString": "attributes.firmware:1",
 "queryVersion": "2017-09-30"
}

2.    Esegui il comando DescribeThingGroup per verificare che il gruppo di oggetti dinamico sia ATTIVO:

aws iot describe-thing-group --thing-group-name "logging_level_debug_dynamic"

Nota: Nell'esempio precedente, sostituisci logging_level_debug_dynamic con il nome del gruppo di oggetti.

L'output è simile al seguente messaggio:

{
 "thingGroupName": "logging_level_debug_dynamic",
 "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic",
 "version": 1,
 "thingGroupProperties": {},
 "thingGroupMetadata": {
 "creationDate": "2022-11-30T12:37:19.980000+00:00"
 },
 "indexName": "AWS_Things",
 "queryString": "attributes.firmware:1",
 "queryVersion": "2017-09-30",
 "status": "ACTIVE"
}

3.    Esegui il comando ](https://docs.aws.amazon.com/iot/latest/apireference/API_SetV2LoggingLevel.html)SetV2LoggingLevel[ per impostare il livello di registrazione per la risorsa. Il completamento dell'impostazione del livello di registrazione può richiedere fino a dieci minuti.

aws iot set-v2-logging-level \
 --log-target targetType=THING_GROUP,targetName=logging_level_debug_dynamic \
 --log-level DEBUG

Nota: Nell'esempio precedente, sostituisci logging_level_debug_dynamic con il nome del gruppo di oggetti dinamico.

L'output è simile al seguente messaggio. La registrazione predefinita è inclusa nell'output e comprende i dettagli in base alle configurazioni. Vengono visualizzati anche altri livelli di registrazione configurati.

{
"logTargetConfigurations": [{
"logTarget": {
"targetType": "DEFAULT"
},
"logLevel": "WARN"
},
{
"logTarget": {
"targetType": "THING_GROUP",
"targetName": "
logging_level_debug_dynamic "
},
"logLevel": "DEBUG"
}
]
}

Monitoraggio dei log generati

È consigliabile monitorare i log IoT per individuare eventuali errori o problemi. Puoi utilizzare la console AWS CloudWatch Logs o l'Interfaccia della linea di comando AWS per monitorare i log di AWS IoT Core. Per ulteriori informazioni, consulta la sezione "Monitoring log entries" di Come posso gestire al meglio i livelli di registrazione dei miei log AWS IoT in AWS IoT Core?

Informazioni correlate

Prezzi di Gestione del dispositivo AWS IoT

Come posso configurare le impostazioni di registrazione predefinite per AWS IoT Core?

Come posso configurare manualmente i livelli di registrazione per risorse specifiche in AWS IoT Core?

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa