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.
Configuration de la AWS IoT journalisation
Vous devez activer la journalisation à l'aide de la AWS IoT console, de la CLI ou de l'API avant de pouvoir surveiller et consigner 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 à la ressource. La journalisation au niveau des événements et 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. Pour commencer, vous souhaiterez peut-être obtenir des journaux détaillés dont le niveau de journal par défaut est INFO ou DEBUG. Après avoir examiné les journaux initiaux, vous pouvez modifier le niveau de journal par défaut à 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 journal plus détaillé spécifique aux ressources 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 Télécharger les journaux côté appareil vers. CloudWatch
Pour plus d'informations sur la journalisation et AWS IoT Greengrass la surveillance, consultez la section Connexion et surveillance AWS IoT Greengrass.
Configuration de la connexion à la V2 AWS IoT
Déterminer votre version de journalisation
L'LoggingOptions API GetV2 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 version
La journalisation V2 fournit deux fonctionnalités clés : la journalisation au niveau des événements et la journalisation spécifique aux ressources. La journalisation au niveau des événements permet une configuration de journalisation ciblée avec des niveaux de journalisation et des destinations de groupes de CloudWatch journaux personnalisables. La journalisation spécifique aux ressources 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 consultabilité des 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'LoggingOptions API SetV2 via la AWS CLI
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 autorisant l'enregistrement des AWS IoT activités des AWS IoT journaux dans les groupes de CloudWatch journaux en votre nom. Vous pouvez également générer un rôle IAM avec les politiques nécessaires dans la section Logs 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 modèles de trafic élevés en AWS IoT Core raison des tests de charge, pensez à désactiver la journalisation de l'IoT pour éviter les ralentissements. Si un trafic élevé est détecté, notre service peut désactiver la connexion à votre compte.
Ce qui suit 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
-
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.
-
Sur la page Ajouter des autorisations, vous verrez les politiques automatiquement associées au rôle de service. Choisissez Suivant.
-
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 AWS IoT permettent 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 la ressource personnalisée.
Si vous êtes é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 contiennent des variables
${partition},
,${region}
, et que vous devez remplacer par vos valeurs.${accountId}
-
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 la AWS CLI sur votre appareil.
-
Remplacez account-id 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 permettant de ne consigner que AWS IoT Core l'activité :
-
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWS IoT La journalisation peut ne pas publier la journalisation 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 défaillances.
Configurer la connexion dans AWS IoT (console)
Cette section décrit comment configurer la AWS IoT journalisation à l'aide de la AWS IoT console. Vous pouvez configurer une journalisation au niveau du compte, au niveau des événements et des ressources spécifiques.
Pour configurer la AWS IoT journalisation :
-
Connectez-vous à la AWS IoT console. Pour de plus amples informations, veuillez consulter Ouvrez la AWS IoT console.
-
Dans le volet de navigation de gauche, choisissez Logs (auparavant une section sous Paramètres).
-
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 aux événements ou aux ressources.
-
Sous Journalisation au niveau du compte, sélectionnez Gérer la journalisation au niveau du compte pour effectuer des mises à jour.
-
Cochez la case « Activer la journalisation » pour commencer à envoyer les 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 au niveau des ressources.
-
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 vérifier 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 AWS IoT permettent 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 afin d'inclure l'ARN de ce groupe de journaux.
-
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.
-
Choisissez Mettre à jour la journalisation pour enregistrer vos modifications.
-
-
La journalisation au niveau des événements vous permet de capturer de manière sélective les journaux des événements pertinents et de les diriger vers des groupes de CloudWatch journaux dédiés. Cela vous donne la flexibilité 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 remplacent la journalisation au niveau du compte.
-
Dans la section Journalisation au niveau des événements, sélectionnez Gérer la journalisation au niveau des événements pour effectuer des mises à jour.
-
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.
-
Pour modifier les paramètres des événements individuels, cliquez sur la valeur dans la ligne d'événement correspondante. Vous pouvez ajuster à la fois le niveau du journal et la destination du groupe de CloudWatch journaux. 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 les autorisations pour le nouveau groupe de journaux. L'échec de la 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 le crochet pour confirmer votre choix. La colonne « Est modifié » affichera « Oui » pour indiquer les modifications en attente.
-
Cliquez sur Mettre à jour la journalisation pour appliquer vos modifications ou choisissez Annuler pour annuler.
-
-
Configurer les remplacements spécifiques aux ressources : les remplacements spécifiques aux ressources 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. La configuration de journalisation spécifique aux ressources 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.
-
Sélectionnez Ajouter des remplacements spécifiques aux ressources dans la section Dérogations spécifiques aux ressources.
-
Choisissez une cible de journal : groupe d'objets, IP source, ID client ou ID principal.
-
Entrez la valeur cible du journal correspondante pour le type de cible que vous avez sélectionné.
-
Sélectionnez le niveau de journal souhaité dans le menu déroulant de la section Niveau de journal spécifique à la ressource.
-
Cliquez sur Soumettre pour ajouter la dérogation ou sur Annuler pour annuler les modifications.
-
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 Afficher AWS IoT les journaux dans la CloudWatch console pour en savoir plus sur l'affichage des entrées du journal.
Configuration de la connexion au niveau du compte et de l'événement AWS IoT (CLI)
Cette section décrit comment configurer la journalisation globale pour à l'aide AWS IoT de la CLI.
Vous pouvez éventuellement configurer la journalisation au niveau des événements. La journalisation au niveau des événements 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 des événements. La journalisation au niveau des événements 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 leurs coûts.
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 un 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 exécuter 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 la CLI afin de configurer la journalisation par défaut pour AWS IoT
-
Utilisez la commande set-v2-logging-options
pour définir les options de journalisation de votre compte. aws iot set-v2-logging-options \ --event-configurationsevent-configuration-list\ --role-arnlogging-role-arn\ --default-log-levellog-leveloù :
- --role-arn
-
Le rôle ARN qui accorde AWS IoT l'autorisation d'écrire dans vos CloudWatch journaux dans Logs. La configuration role-ARN est requise pour la configuration initiale.
- --default-log-level
-
Le niveau de journalisation à utiliser. Les valeurs valides sont :
ERRORWARN,INFO,DEBUG, ouDISABLED. Default-log-levelune configuration est requise pour la configuration initiale. - --no-disable-all-logs
-
Paramètre facultatif qui active toute 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 des types d'événements individuels :
-
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 livraison des journaux
-
Vous pouvez configurer le niveau de journalisation et la destination du journal indépendamment pour chaque type d'événement. S'ils ne sont pas spécifiés, 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\"}]" -
Utilisez la commande get-v2-logging-options
pour obtenir vos options de journalisation actuelles. aws iot get-v2-logging-options \ --verboseoù :
- --verbose
-
Paramètre facultatif qui vous permet de récupérer tous les types d'événements et leurs configurations.
Une fois que vous avez activé la journalisation, visitez Afficher AWS IoT les journaux dans 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 connexion 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.
Configurer les remplacements spécifiques aux ressources dans (CLI) AWS IoT
Cette section décrit comment configurer les remplacements spécifiques aux ressources à l'aide de la AWS IoT CLI. Les remplacements spécifiques aux ressources vous permettent de spécifier un niveau de journalisation pour une ressource spécifique identifiée par un groupe d'objets, un identifiant client, une adresse IP source ou un identifiant principal. Lorsque la journalisation spécifique aux ressources 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 être membre d'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 collectivement, plutôt que de traiter chaque élément individuellement. Lorsque votre ID 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 exécuter 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 la CLI afin de configurer des remplacements spécifiques aux ressources pour AWS IoT
-
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
-
Utilisez la set-v2-logging-level
commande pour configurer les remplacements spécifiques aux ressources. 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-levellog_level- --log-target
-
Type et nom de la ressource pour laquelle vous configurez la journalisation. La
targetTypevaleur 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-levellog_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.
-
Utilisez la commande list-v2-logging-levels
pour répertorier les niveaux de journalisation actuellement configurés. aws iot list-v2-logging-levels -
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-typevaleur 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 des messages.
Les journaux contiennent des informations ERROR et WARN.
- INFO
-
Informations générales sur le flux des objets.
Exemple : un client s'est inscrit avec succès à un sujet 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 le thème des règles « rule/test » 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.