Comment configurer dynamiquement les niveaux de journalisation pour des ressources spécifiques dans AWS IoT Core ?

Lecture de 5 minute(s)
0

Je souhaite configurer dynamiquement la journalisation spécifique aux ressources pour mes journaux AWS IoT Core.

Brève description

**Remarque :**Cet article concerne uniquement la version 2 des journaux AWS IoT Core.

Vous pouvez utiliser les journaux AWS IoT Core pour définir de manière dynamique des niveaux de journalisation pour des ressources spécifiques. Vous pouvez utiliser un groupe d'objets dynamique pour définir un niveau de journalisation spécifique à une ressource. Vous devez enregistrer vos clients comme objets et ils doivent se connecter avec l’identifiant client associé au nom de l'objet. Le groupe d'objets dynamique utilise une requête d'indexation de flotte qui recherche et ajoute automatiquement au groupe des objets réunissant les conditions de la requête.

Il est recommandé de configurer la journalisation par défaut à un niveau de verbosité inférieur, et la journalisation spécifique à la ressource à un niveau de verbosité supérieur. Les niveaux de verbosité du journal incluent DISABLED (le plus bas), ERROR, WARN, INFO et DEBUG (le plus élevé).

Lors de la création ou de la mise à jour d'un groupe d'objets dynamique, les objets sont éligibles pour figurer dans un groupe d'objets dynamique et ne pas y être ajoutés automatiquement. Pour plus d'informations, consultez la section Les commandes réussies peuvent enregistrer des erreurs.

Important : En fonction de la taille de votre parc AWS IoT Core, l'activation de niveaux de journalisation plus précis peut augmenter les coûts et complexifier la résolution des problèmes. INFO ou DEBUG ne doivent être utilisés que comme mesure temporaire lors du dépannage. Une fois le dépannage terminé, les niveaux de journalisation doivent être redéfinis sur un paramètre moins détaillé.

Résolution

Prérequis

Vérifiez que l'interface de la ligne de commande AWS (AWS CLI) est installée localement avec les informations d'identification d'administrateur IoT. La région AWS par défaut pour l'interface de ligne de commande AWS doit pointer vers la région AWS ciblée. Vous devez avoir des clients connectés à vos points de terminaison AWS IoT Core et qui interagissent avec ces derniers comme objets IoT enregistrés.

Remarque : En cas de réception d’erreurs durant l'exécution des commandes de l'AWS CLI, vérifiez que vous utilisez la dernière version de l'AWS CLI.

Configurer la journalisation automatique pour des ressources spécifiques

1.Créez un objet AWS IoT et ajoutez-y un attribut d'objet.

Remarque : Vous pouvez ajouter d'autres attributs d'objet selon vos besoins. Vous pouvez ensuite modifier la requête de groupe d'objets dynamique pour les rechercher.

2.Activez l'indexation des objets.

3.Exécutez la commande DescribeIndex pour vérifier que votre index d'objets possède un attribut IndexStatus ACTIF :

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

4.Créez un groupe d'objets dynamique au moyen de la console AWS IoT ou de l'interface de ligne de commande AWS.

Console IoT AWS

1.Activez l'indexation de la flotte si ce n'est pas déjà fait.

2.Connectez-vous à la console AWS IoT.

3.Dans le volet de navigation, sélectionnez Tous les appareils, puis Groupes d'objets.

4.Sélectionnez Créer un groupe d'objets.

5.Dans le champ Type de groupe d'objets, sélectionnez Créer un groupe d'objets dynamique, puis Suivant.

6.Dans le champ Nom du groupe d'objets, saisissez logging_level_debug_dynamic. Sélectionnez ensuite Créer un groupe d’objets.
Remarque : Remplacez logging_level_debug_dynamic par le nom de votre groupe d'objets.

7.Sous Requête, saisissez attributes.firmware:1, puis appuyez sur Entrée pour appliquer l'instruction de requête de recherche.
Remarque : Remplacez firmware:1 par l'attribut et la valeur de l'objet que vous souhaitez utiliser pour la requête.

8.Sélectionnez Aperçu de la requête pour voir tous les objets correspondant aux critères de la requête.

9.Sélectionnez Créer un groupe d'objets.

AWS CLI

1.Exécutez la commande CreateDynamicThingGroup pour créer un groupe d'objets dynamique :

**Remarque :**La création de groupes d'objets dynamiques n'est pas instantanée et peut prendre un certain temps. Pour plus d'informations, consultez Création d'un groupe d'objets dynamique.

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

**Remarque :**Dans l'exemple précédent, remplacez firmware:1 par l'attribut et la valeur que vous souhaitez utiliser pour la requête. Remplacez logging_level_debug_dynamic par le nom de votre groupe d'objets.

Un message du type suivant s’affiche :

{
 "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.Exécutez la commande DescribeThingGroup pour vérifier que votre groupe d'objets dynamique est ACTIF :

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

**Remarque :**Dans l'exemple précédent, remplacez logging_level_debug_dynamic par le nom de votre groupe d'objets.

Un message du type suivant s’affiche :

{
 "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.Exécutez la commande SetV2LoggingLevel pour définir le niveau de journalisation pour un client spécifique. Le réglage du niveau de journalisation peut demander jusqu'à dix minutes.

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

Remarque : Dans l'exemple précédent, remplacez logging_level_debug_dynamic par le nom de votre groupe d'objets dynamiques.

La sortie ressemble au message suivant. La journalisation par défaut est intégrée à la sortie et inclut les détails en fonction de vos configurations. Les autres niveaux de journalisation configurés sont également affichés.

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

Surveiller les journaux générés

Il est recommandé de surveiller vos journaux IoT pour détecter tout problème. Vous pouvez utiliser la Console Amazon CloudWatch Logs ou l'AWS CLI pour surveiller vos journaux AWS IoT Core. Pour plus d'informations, consultez la section « Surveiller les entrées des journaux » de la section Comment optimiser la gestion des niveaux de journalisation de mes journaux AWS IoT dans AWS IoT Core ?

Informations connexes

Tarification d'AWS IoT Device Management

Comment configurer les paramètres de journalisation par défaut pour AWS IoT Core ?

Comment configurer manuellement les niveaux de journalisation pour des ressources spécifiques dans AWS IoT Core ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an