View a markdown version of this page

Configurer AWS IoT journalisation - AWS IoT Core

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer AWS IoT journalisation

Vous devez activer la journalisation à l'aide de la AWS IoT console, de l'interface de ligne de commande ou de l'API pour pouvoir surveiller et enregistrer AWS IoT l'activité. Vous pouvez configurer la journalisation à trois niveaux : AWS IoT au niveau du compte, au niveau de l'événement ou au niveau spécifique des ressources. Event-level et la journalisation spécifique aux ressources est disponible exclusivement avec la journalisation V2. Les clients utilisant la journalisation V1 doivent effectuer une migration vers la V2 pour accéder à ces fonctionnalités. Voir les détails.

Lorsque vous réfléchissez à la manière de configurer votre AWS IoT journalisation, la configuration de journalisation au niveau du compte détermine la manière dont AWS IoT l'activité sera enregistrée, sauf indication contraire. Dans un premier temps, vous souhaiterez peut-être obtenir des journaux détaillés avec un niveau de journalisation par défaut INFO ou DEBUG. Après avoir examiné les journaux initiaux, vous pouvez modifier le niveau de journalisation par défaut pour un niveau moins détaillé, tel que WARN ou ERROR au niveau du compte ou de l'événement, et définir un niveau de journalisation spécifique aux ressources plus détaillé pour les ressources susceptibles de nécessiter une plus grande attention. Les niveaux de journal peuvent être modifiés quand vous le souhaitez.

Cette rubrique traite de la connexion côté cloud. AWS IoT Pour plus d'informations sur la journalisation et la surveillance côté appareil, voir Charger les journaux côté appareil vers. CloudWatch

Pour plus d'informations sur la journalisation et AWS IoT Greengrass la surveillance, voir Journalisation et surveillance dans AWS IoT Greengrass.

Configuration de la connexion à la version V2 AWS IoT

Déterminer votre version de journalisation

L'GetV2LoggingOptions API renvoie un NotConfiguredException si la journalisation V2 n'est pas activée. Cette erreur se produit lorsque la journalisation V1 est utilisée ou qu'aucune journalisation n'a été configurée.

Comprendre les fonctionnalités de journalisation de la V2

La journalisation V2 fournit deux fonctionnalités clés : la journalisation au niveau des événements et la journalisation spécifique aux ressources. Event-levella journalisation permet une configuration de journalisation ciblée avec des niveaux de journalisation et des destinations de groupes de CloudWatch journaux personnalisables. Resource-specific la journalisation vous permet de filtrer les journaux par groupe d'objets, IP source, ID client ou ID principal. Ensemble, ces fonctionnalités fournissent un contrôle granulaire et une visibilité complète des opérations IoT, améliorant ainsi la facilité de recherche dans les journaux et réduisant les coûts en éliminant les activités de journalisation inutiles.

Migration de la version 1 vers la version 2

Vous pouvez migrer vers la journalisation V2 à l'aide de l' SetV2LoggingOptions API via la AWS CLI ou le SDK. Après la migration, achemine AWS IoT automatiquement tous les journaux vers le groupe de CloudWatch journaux « AWSIotLogsV2 ». Important : si vos applications ou ressources en aval consomment des informations provenant de « AWSIotLogs », mettez-les à jour pour utiliser le chemin de groupe de journaux correspondant.

Configurer le rôle et la stratégie de journalisation

Avant de pouvoir activer la connexion AWS IoT, vous devez créer un rôle IAM et une politique qui vous AWS IoT autorisent à écrire des activités de AWS IoT CloudWatch journal pour enregistrer les groupes en votre nom. Vous pouvez également générer un rôle IAM avec les politiques nécessaires dans la section Journaux de la AWS IoT console.

Note

Avant d'activer la AWS IoT journalisation, assurez-vous de bien comprendre les autorisations d'accès aux CloudWatch journaux. Les utilisateurs ayant accès aux CloudWatch journaux peuvent consulter les informations de débogage de vos appareils. Pour plus d'informations, consultez Authentification et contrôle d'accès pour Amazon CloudWatch Logs.

Si vous vous attendez à des tendances de trafic élevées en AWS IoT Core raison des tests de charge, pensez à désactiver la journalisation IoT pour éviter toute limitation. Si un trafic élevé est détecté, notre service peut désactiver la connexion à votre compte.

La section suivante montre comment créer un rôle et une politique de journalisation pour les AWS IoT Core ressources.

Création d'un rôle de journalisation

Pour créer un rôle de journalisation, ouvrez le hub Roles de la console IAM et choisissez Create role.

  1. Sous Sélectionner une entité approuvée, choisissez AWS Service . Choisissez ensuite IoT sous Cas d'utilisation. Si vous ne voyez pas IoT, saisissez et recherchez IoT dans le menu déroulant Cas d'utilisation pour d'autres AWS services :. Sélectionnez Suivant.

  2. Sur la page Ajouter des autorisations, vous verrez les politiques automatiquement associées au rôle de service. Choisissez Suivant.

  3. Sur la page Name, review, and Create (Créer un rôle et vérifier), saisissez un Role name (Nom du rôle) etRole description (Description de Role) pour le role, puis Create role(Créer un rôle).

Stratégie de rôle de journalisation

Les documents de politique suivants fournissent la politique de rôle et la politique de confiance qui permettent AWS IoT de soumettre des entrées de journal CloudWatch à en votre nom. Si vous configurez la journalisation au niveau des événements avec un groupe de CloudWatch journaux personnalisé, vous devez mettre à jour la politique de rôle pour inclure l'ARN de ressource personnalisé.

Si vous avez également autorisé AWS IoT Core for LoRaWAN à soumettre des entrées de journal, vous verrez un document de politique créé pour vous qui enregistre les deux activités.

Note

Ces documents ont été créés pour vous lorsque vous avez créé le rôle de journalisation. Les documents comportent des variables ${partition}, ${region} , et ${accountId} , que vous devez remplacer par vos valeurs.

  • Remplacez la partition par la partition de la région.

  • Remplacez la région par la AWS région que vous utilisez. Assurez-vous d'utiliser la même AWS région que celle que vous avez utilisée pour configurer l' AWS interface de ligne de commande sur votre appareil.

  • Remplacez l'identifiant du compte par votre identifiant de AWS compte.

Politique de rôle :

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "iot:GetLoggingOptions", "iot:SetLoggingOptions", "iot:SetV2LoggingOptions", "iot:GetV2LoggingOptions", "iot:SetV2LoggingLevel", "iot:ListV2LoggingLevels", "iot:DeleteV2LoggingLevel" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:AWSIotLogsV2:*" ] } ] }

Politique de confiance pour enregistrer uniquement les AWS IoT Core activités :

{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS IoT La journalisation peut ne pas être publiée dans CloudWatch Logs en raison d'autorisations de rôle IAM insuffisantes. Dans ce cas, vérifiez les métriques de CloudWatch journalisation pour étudier et résoudre les problèmes.

Configurez la connexion dans AWS IoT (console)

Cette section explique comment configurer la AWS IoT journalisation à l'aide de la AWS IoT console. Vous pouvez configurer la journalisation au niveau du compte, au niveau des événements et des ressources.

Pour configurer AWS IoT journalisation :
  1. Connectez-vous à la AWS IoT console. Pour de plus amples informations, veuillez consulter Ouvrez le fichier AWS IoT console.

  2. Dans le volet de navigation de gauche, choisissez Journaux (auparavant, une section sous Paramètres).

  3. Configurez la journalisation au niveau du compte : la journalisation au niveau du compte s'applique à l'ensemble de votre AWS IoT parc (appareils ou terminaux), sauf si elle est remplacée par des paramètres spécifiques au niveau des événements ou des ressources.

    1. Dans la section Account-level Journalisation, sélectionnez Gérer la journalisation au niveau du compte pour effectuer les mises à jour.

    2. Cochez la case « Activer la journalisation » pour commencer à envoyer des journaux à CloudWatch. Lorsque « Activer la journalisation » n'est pas cochée, AWS IoT aucun CloudWatch journal n'est envoyé aux groupes de journaux, quelles que soient les configurations de journalisation au niveau des événements ou des ressources.

    3. Sous Rôle de journal IAM, sélectionnez un rôle existant dans la liste déroulante. Vous pouvez Afficher les détails des rôles pour inspecter les autorisations des rôles. Vous pouvez également sélectionner Créer un nouveau rôle pour configurer un nouveau rôle IAM. Le rôle de journalisation fournit des politiques qui permettent AWS IoT de soumettre des entrées de journal CloudWatch à en votre nom. Si vous configurez la journalisation au niveau des événements avec un groupe de CloudWatch journaux personnalisé, vous devez mettre à jour la politique de rôle pour inclure l'ARN de ce groupe de journaux.

    4. Choisissez le niveau de journal par défaut qui correspond au niveau de détail des entrées de journal que vous souhaitez voir apparaître dans les CloudWatch journaux. Remarque : le niveau de journalisation « DEBUG » fournit le plus de détails mais augmente CloudWatch les coûts. CloudWatch les destinations des groupes de journaux ne peuvent pas être configurées au niveau du compte. Vous pouvez toutefois spécifier des groupes de journaux personnalisés pour des types d'événements individuels, comme décrit dans la section suivante.

    5. Choisissez Mettre à jour la journalisation pour enregistrer vos modifications.

  4. Event-level la journalisation vous permet de capturer des journaux de manière sélective pour les événements pertinents et de les diriger vers des groupes de CloudWatch journaux dédiés. Cela vous permet d'organiser les journaux par cas d'utilisation pour une meilleure visibilité, de les partager avec différents publics et de réduire les CloudWatch coûts en activant les journaux et en définissant des niveaux de journalisation en fonction de la criticité des événements.

    Configurer la journalisation au niveau des événements  : la journalisation au niveau des événements capture des AWS IoT événements spécifiques, tels que les tentatives d'authentification des clients. Ces paramètres annulent la Account-Level journalisation.

    1. Dans la section Event-level Journalisation, sélectionnez Gérer la journalisation au niveau des événements pour effectuer des mises à jour.

    2. Par défaut, les types d'événements héritent de la configuration de journalisation au niveau du compte. Remarque : Lorsque la journalisation spécifique à une ressource est configurée, elle remplace les paramètres au niveau du compte et de l'événement.

    3. Pour modifier les paramètres d'événements individuels, cliquez sur la valeur dans la ligne d'événements correspondante. Vous pouvez régler à la fois le niveau de journalisation et la destination du groupe de CloudWatch logs. Lorsque vous spécifiez une destination de groupe de CloudWatch journaux personnalisée, vous devez vérifier que la politique de rôle IAM inclut des autorisations pour le nouveau groupe de journaux. L'absence de mise à jour de la politique de rôle AWS IoT empêchera l'écriture de journaux dans le groupe de journaux personnalisé. Après avoir effectué votre sélection, cliquez sur la coche pour confirmer votre choix. La colonne « Modifié » affichera « Oui » pour indiquer les modifications en attente.

    4. Cliquez sur Mettre à jour la journalisation pour appliquer vos modifications ou cliquez sur Annuler pour les annuler.

  5. Configurer les Resource-specific remplacements : les Resource-specific remplacements appliquent un paramètre de journalisation aux ressources sélectionnées. Une ressource peut être un groupe d'objets, une adresse IP source, un identifiant client ou un identifiant principal. Resource-specific la configuration de journalisation remplace les paramètres au niveau du compte et au niveau des événements. Lorsqu'il est activé, il génère des journaux pour tous les types d'événements au niveau de journalisation configuré pour les ressources spécifiées. Par exemple, vous pouvez définir la journalisation au niveau du débogage pour un objet spécifique tout en conservant la journalisation au niveau des informations pour tous les autres objets.

    1. Sélectionnez Ajouter des remplacements spécifiques à la ressource dans la Resource-specific section Dérogations.

    2. Choisissez une cible de journal : groupe d'objets, adresse IP source, identifiant client ou identifiant principal.

    3. Entrez la valeur cible de journal correspondante pour le type de cible que vous avez sélectionné.

    4. Sélectionnez le niveau de journalisation souhaité dans le menu déroulant de la section Niveau de Resource-specific journalisation.

    5. Cliquez sur Soumettre pour ajouter la modification ou sur Annuler pour annuler les modifications.

    6. Pour modifier une dérogation spécifique à une ressource existante, cochez la case à côté de la ressource et cliquez sur « Supprimer » pour supprimer la dérogation ou sur « Modifier » pour la modifier.

Une fois que vous avez activé la journalisation, visitez Visualisation AWS IoT se connecte à la CloudWatch console pour en savoir plus sur l'affichage des entrées du journal.

Configurer le compte et Event-level se connecter AWS IoT (CLIP)

Cette section décrit comment configurer la journalisation globale à l'aide de AWS IoT l'interface de ligne de commande.

Vous pouvez éventuellement configurer la Event-level journalisation. Event-level la journalisation capture les informations de journalisation au niveau des événements, telles que les événements d'authentification et d'autorisation ou de création de certificats. Vous pouvez personnaliser à la fois le niveau du journal et les destinations des groupes de CloudWatch journaux au niveau de l'événement. Event-level la journalisation fonctionne à un niveau plus ciblé que la journalisation au niveau du compte et remplace donc les paramètres de journalisation au niveau du compte. Cette approche hiérarchique vous permet de gérer différentes stratégies de journalisation pour différents types d'événements en fonction de leur importance opérationnelle et de considérations de coût.

Note

Vous avez besoin du nom de ressource Amazon (ARN) du rôle que vous souhaitez utiliser. Si vous devez créer un rôle à utiliser pour la journalisation, veuillez consulter Création d'un rôle de journalisation avant de continuer. Lorsque vous spécifiez un groupe de CloudWatch journaux personnalisé pour n'importe quel type d'événement, assurez-vous que votre rôle de journalisation dispose des autorisations requises pour le groupe de journaux cible.

Le principal utilisé pour appeler l'API doit avoir Transmission des autorisations de rôle pour votre rôle de journalisation.

Vous pouvez également effectuer cette procédure avec l'API en utilisant les méthodes de l' AWS API qui correspondent aux commandes CLI présentées ici.

Pour utiliser l'interface de ligne de commande afin de configurer la journalisation par défaut pour AWS IoT
  1. Utilisez la commande set-v2-logging-options pour définir les options de journalisation de votre compte.

    aws iot set-v2-logging-options \ --event-configurations event-configuration-list \ --role-arn logging-role-arn \ --default-log-level log-level

    où :

    --role-arn

    Le rôle ARN qui accorde AWS IoT l'autorisation d'écrire dans vos CloudWatch journaux dans Logs. Role-arn la configuration est requise pour la configuration initiale.

    --default-log-level

    Le niveau de journalisation à utiliser. Les valeurs valides sont : ERROR WARNINFO,DEBUG, ouDISABLED. Default-log-level la configuration est requise pour la configuration initiale.

    --no-disable-all-logs

    Paramètre facultatif qui active l'ensemble de la AWS IoT journalisation. Utilisez ce paramètre pour activer la journalisation lorsqu'elle est désactivée.

    --disable-all-logs

    Paramètre facultatif qui désactive toute AWS IoT journalisation. Utilisez ce paramètre pour désactiver la journalisation lorsqu'elle est activée.

    --event-configurations

    Ce paramètre est facultatif et vous permet de personnaliser les paramètres de journalisation pour chaque type d'événement :

    • EventType : type d'événement qui remplace le paramètre au niveau du compte

    • LogLevel : remplacez le paramètre au niveau du compte par DEBUG, INFO, ERROR, WARN ou DISABLED

    • LogDestination : Spécifiez un groupe de CloudWatch journaux personnalisé pour la remise des journaux

    Vous pouvez configurer le niveau de journalisation et la destination du journal indépendamment pour chaque type d'événement. Si ce n'est pas spécifié, les événements hériteront des paramètres au niveau du compte

    aws iot set-v2-logging-options \ --event-configurations "[{\"eventType\":\"Publish-In\",\"logLevel\":\"INFO\",\"logDestination\":\"examplePublishInLogGroup\"}]"
  2. Utilisez la commande get-v2-logging-options pour obtenir vos options de journalisation actuelles.

    aws iot get-v2-logging-options \ --verbose

    où :

    --verbose

    Paramètre facultatif qui vous permet de récupérer tous les EventTypes et leurs configurations.

Une fois que vous avez activé la journalisation, visitez Visualisation AWS IoT se connecte à la CloudWatch console pour en savoir plus sur l'affichage des entrées du journal.

Note

AWS IoT continue de prendre en charge les anciennes commandes (set-logging-optionsetget-logging-options) permettant de configurer et d'obtenir une journalisation globale sur votre compte. Lorsque ces commandes sont utilisées, les journaux obtenus contiennent du texte brut et non des charges de travail JSON et la latence de journalisation est généralement plus élevée. Aucune amélioration supplémentaire ne sera apportée à l'implémentation de ces anciennes commandes. Nous vous recommandons d'utiliser les versions « v2 » pour configurer vos options de journalisation et, dans la mesure du possible, de modifier les anciennes applications qui utilisent les anciennes versions.

Configurez Resource-specific les remplacements dans AWS IoT (CLIP)

Cette section décrit comment configurer les Resource-specific remplacements à l'aide de l'interface AWS IoT de ligne de commande. Resource-specific overrides vous permet de spécifier un niveau de journalisation pour une ressource spécifique identifiée par un groupe d'objets, un ID client, une adresse IP source ou un identifiant principal. Lorsque la journalisation spécifique à une ressource est activée, elle remplace les paramètres au niveau du compte et au niveau des événements. Tous les types d'événements génèrent des journaux pour la ressource spécifiée au niveau de journalisation configuré, même si ces événements sont désactivés dans les configurations au niveau des événements.

Les groupes d'objets peuvent contenir d'autres groupes d'objets pour créer une relation hiérarchique. Cette procédure décrit comment configurer la journalisation d'un seul groupe d'objets. Vous pouvez appliquer cette procédure au groupe d'objets parent dans une hiérarchie pour configurer la journalisation de tous les groupes d'objets de la hiérarchie. Vous pouvez également appliquer cette procédure à un groupe d'objets enfant pour remplacer la configuration de journalisation de son parent.

Un objet peut appartenir à un groupe d'objets. Cette appartenance permet à l'objet d'hériter des configurations, des politiques et des paramètres appliqués au groupe d'objets. Les groupes d'objets sont utilisés pour gérer et appliquer des paramètres à plusieurs éléments de manière collective, plutôt que de traiter chaque élément individuellement. Lorsque votre identifiant client correspond au nom de l'objet, la session client est AWS IoT Core automatiquement associée à la ressource d'objet correspondante. Cela permet à la session client d'hériter des configurations et des paramètres appliqués aux groupes d'objets auxquels appartient l'objet, y compris les niveaux de journalisation. Si votre identifiant client ne correspond pas au nom de l'objet, vous pouvez activer la pièce jointe exclusive pour établir l'association. Pour plus d’informations, consultez Associer un AWS IoT objet à une connexion client MQTT.

Outre les groupes d'objets, vous pouvez également enregistrer des cibles telles que l'ID client, l'IP source et l'ID principal d'un appareil.

Note

Vous avez besoin du nom de ressource Amazon (ARN) du rôle que vous souhaitez utiliser. Si vous devez créer un rôle à utiliser pour la journalisation, veuillez consulter Création d'un rôle de journalisation avant de continuer.

Le principal utilisé pour appeler l'API doit avoir Transmission des autorisations de rôle pour votre rôle de journalisation.

Vous pouvez également effectuer cette procédure avec l'API en utilisant les méthodes de l' AWS API qui correspondent aux commandes CLI présentées ici.

Pour utiliser l'interface de ligne de commande afin de configurer des Resource-specific remplacements pour AWS IoT
  1. Activez la journalisation au niveau du compte avant de configurer la journalisation spécifique aux ressources à l'aide de la commande suivante : commande aws iot set-v2-logging-options

  2. Utilisez la set-v2-logging-level commande pour configurer les Resource-specific remplacements. Consultez l'exemple suivant pour la configuration des groupes d'objets :

    aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=thing_group_name \ --log-level log_level
    --log-target

    Type et nom de la ressource pour laquelle vous configurez la journalisation. La targetType valeur doit être l'une des suivantes : THING_GROUP | CLIENT_ID | SOURCE_IP |PRINCIPAL_ID. La valeur du paramètre log-target peut être du texte, comme indiqué dans l'exemple de commande précédent, ou une chaîne JSON, telle que l'exemple suivant.

    aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \ --log-level log_level
    --log-level

    Le niveau de journalisation utilisé lors de la génération de journaux pour la ressource spécifiée. Les valeurs valides sont : DEBUG, INFO, ERROR, WARN et DISABLED.

  3. Utilisez la commande list-v2-logging-levels pour répertorier les niveaux de journalisation actuellement configurés.

    aws iot list-v2-logging-levels
  4. Utilisez la commande delete-v2-logging-level pour supprimer un niveau de journalisation spécifique à la ressource, tel que les exemples suivants.

    aws iot delete-v2-logging-level \ --target-type "THING_GROUP" \ --target-name "thing_group_name"
    aws iot delete-v2-logging-level \ --target-type=CLIENT_ID --target-name=ClientId1
    --target-type

    La target-type valeur doit être l'une des suivantes : THING_GROUP | CLIENT_ID | SOURCE_IP |PRINCIPAL_ID.

    --target-name

    Nom du groupe d'objets pour lequel le niveau de journalisation doit être supprimé.

Niveaux de journalisation.

Ces niveaux de journal déterminent les événements qui sont consignés et s'appliquent aux niveaux de journal par défaut et spécifiques aux ressources.

ERROR

Toute erreur qui entraîne l'échec d'une opération.

Exemple : échec de l'authentification de l'appareil en raison de l'expiration du certificat.

Les journaux contiennent uniquement des informations ERROR.

WARN

Tout ce qui peut éventuellement entraîner des incohérences dans le système, mais qui n'entraîne pas nécessairement l'échec de l'opération.

Exemple : approche de la limite de débit de messages.

Les journaux contiennent des informations ERROR et WARN.

INFO

High-level des informations sur le flux des choses.

Exemple : un client s'est inscrit avec succès à une rubrique MQTT.

Les journaux contiennent des informations INFO, ERROR et WARN.

DEBUG

Informations qui peuvent être utiles lors du débogage d'un problème.

Exemple : IoT Rules Engine a détecté un message publié dans la rubrique « rule/test » des règles et a démarré son exécution avec succès. La règle est configurée avec RepublishAction.

Les journaux contiennent des informations DEBUG, INFO, ERROR et WARN.

DISABLED

Toute la journalisation est désactivée.