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

Lecture de 6 minute(s)
0

Je souhaite configurer manuellement 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.

Les journaux AWS IoT Core vous permettent de définir des niveaux de journalisation spécifiques aux ressources pour les clients :

  • enregistrés en tant que choses
  • non enregistrés en tant que choses

en créant un niveau de journalisation pour un type de cible spécifique et en configurant son niveau de verbosité. Les types de cibles incluent THING_GROUP, CLIENT_ID, SOURCE_IP ou PRINCIPAL_ID. Il est recommandé de configurer la journalisation par défaut à un niveau de verbosité inférieur et de configurer 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é).

**Important :**en fonction de la taille de votre parc AWS IoT Core, l'activation de niveaux de journalisation plus précis peut entraîner des coûts élevés et compliquer la résolution des problèmes. L'activation de la journalisation détaillée entraîne également une augmentation du trafic de données. 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

Assurez-vous 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 interagir avec eux, en tant qu'objets IoT enregistrés ou non enregistrés.

**Remarque :**si des erreurs surviennent lors de l'exécution des commandes de l'AWS CLI, vérifiez que vous utilisez la version la plus récente de l'AWS CLI.

Configurer la journalisation manuelle pour les clients enregistrés en tant qu'objets

Vous pouvez gérer la journalisation spécifique à une ressource pour plusieurs éléments à un niveau de journalisation défini, puis ajouter ou supprimer manuellement des éléments du groupe d'objets. Vos appareils et clients doivent être enregistrés en tant qu'objets IoT dans AWS IoT Core et doivent se connecter en utilisant le même nom d'objet associé à l'identifiant client. Vous pouvez ensuite utiliser un groupe d’objets statique avec le type cible THING_GROUP pour gérer le groupe d'objets. Si vous configurez un groupe d'objets parent au sein d'une hiérarchie, la configuration s'applique également aux groupes d'objets enfants de la hiérarchie.

**Remarque :**si vous utilisez des groupes d'objets statiques comme type de cible, vous devez tenir compte de leurs limites de quota. Pour en savoir plus, consultez la rubrique Limites et quotas de ressources des groupes d'objets AWS IoT Core.

1.    Créez deux groupes d'objets statiques. Vous pouvez le faire à l'aide de la console AWS IoT ou de la commande create-thing-group dans l'AWS CLI. Cet exemple fait appel à l'AWS CLI.

aws iot create-thing-group --thing-group-name logging_level_info
aws iot create-thing-group --thing-group-name logging_level_debug

**Remarque :**si vous utilisez des groupes d'objets existants, remplacez logging_level_info et logging_level_debug par les noms de vos groupes d'objets.

La sortie ressemble au message suivant :

{
 "thingGroupName": "logging_level_info",
 "thingGroupArn": "arn:aws:iot:eu-west1-1:123456789012:thinggroup/logging_level_info",
 "thingGroupId": "58dd497e-97fc-47d2-8745-422bb21234AA"
}
{
 "thingGroupName": "logging_level_debug",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug",
 "thingGroupId": "2a9dc698-9a40-4487-81ec-2cb4101234BB"
}

2.    Exécutez la commande SetV2LoggingLevel pour définir les niveaux de journalisation des groupes d'objets : **Remarque :**les modifications de configuration au niveau du journal peuvent prendre jusqu'à 10 minutes pour être prises en compte.

aws iot set-v2-logging-level \
 --log-target targetType=THING_GROUP,targetName=logging_level_info \
 --log-level INFO

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

**Remarque :**remplacez INFO et DEBUG par les niveaux de journalisation que vous souhaitez définir pour chaque groupe d'objets.

3.    Exécutez la commande suivante pour vérifier que les niveaux de journalisation sont correctement configurés :

aws iot list-v2-logging-levels

La sortie ressemble au message suivant :

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

4.    Exécutez la commande AddThingToThingGroup pour ajouter un objet au groupe d'objets approprié :

aws iot add-thing-to-thing-group \
 --thing-name YourThingName1 \
 --thing-group-name logging_level_info

**Remarque :**remplacez YourThingName1 par le nom de l'objet que vous ajoutez au groupe d'objets.

Configurer la journalisation manuelle pour les clients qui ne sont pas enregistrés en tant qu'objets

Si vous n'enregistrez pas vos objets sur AWS IoT Core, vous pouvez toujours ajouter des niveaux de journalisation spécifiques aux ressources pour plusieurs types de cibles. Ces types de cibles sont des attributs client et incluent CLIENT_ID, SOURCE_IP ou PRINCIPAL_ID. Si votre périphérique est déjà enregistré en tant qu'objet AWS IoT Core, vous pouvez toujours utiliser ces attributs client pour gérer les niveaux de journalisation.

1.    Exécutez la commande SetV2LoggingLevel pour définir le niveau de journalisation pour un client spécifique :

aws iot set-v2-logging-level \
 --log-target targetType=CLIENT_ID,targetName=YourClientId \
 --log-level YourLogLevel

**Remarque :**pour utiliser un type de cible différent, remplacez CLIENT_ID par une valeur prise en charge utilisée par le client cible, telle que SOURCE_IP ou PRINCIPAL_ID.

2.    Exécutez la commande suivante pour vérifier que les niveaux de journalisation sont correctement configurés :

aws iot list-v2-logging-levels

La sortie ressemble au message suivant :

...
 {
 "logTarget": {
 "targetType": "CLIENT_ID",
 "targetName": "YourClientId"
 },
 "logLevel": "YourLogLevel"
 }
...

Surveillance des journaux générés

Il est recommandé de surveiller vos journaux IoT pour détecter d’éventuels anomalies ou problèmes. Vous pouvez utiliser la console Amazon CloudWatch Logs ou l'AWS CLI pour surveiller vos journaux AWS IoT Core.  Pour en savoir plus, consultez la rubrique « Surveiller les entrées des journaux » dans Comment gérer au mieux les niveaux de journalisation de mes journaux AWS IoT dans AWS IoT Core ?

Informations connexes

Surveillance d'AWS IoT

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

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

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