Téléchargement de journaux côté appareil à l'aide de AWS IoT règles - 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.

Téléchargement de journaux côté appareil à l'aide de AWS IoT règles

Vous pouvez utiliser le moteur de AWS IoT règles pour télécharger des enregistrements de journal à partir de fichiers journaux existants côté appareil (journaux du système, des applications et de l'appareil-client) vers Amazon. CloudWatch Lorsque des journaux côté appareil sont publiés sur une rubrique MQTT, l'action Règles des CloudWatch journaux transfère les messages vers les journaux. CloudWatch Ce processus explique comment télécharger les journaux des appareils par lots à l'aide du batchMode paramètre d'action des règles activé (défini surtrue).

Pour commencer à télécharger les journaux côté appareil vers CloudWatch, remplissez les conditions préalables suivantes.

Prérequis

Avant de commencer, vous devez exécuter les actions suivantes :

Pour plus d'informations sur ces conditions préalables, consultez la section Charger les journaux côté appareil vers. CloudWatch

Création d'un groupe de CloudWatch journaux

Pour créer un groupe de CloudWatch journaux, procédez comme suit. Choisissez l'onglet approprié selon que vous préférez effectuer les étapes via le AWS Management Console ou le AWS Command Line Interface (AWS CLI).

AWS Management Console
Pour créer un groupe de CloudWatch journaux à l'aide du AWS Management Console
  1. Ouvrez le AWS Management Console et naviguez vers CloudWatch.

  2. Dans le panneau de navigation, choisissez Logs, puis Log groups

  3. Sélectionnez Créer un groupe de journaux.

  4. Mettez à jour le nom du groupe de journaux et, éventellement, mettez à jour les champs des paramètres de rétention.

  5. Choisissez Créer.

AWS CLI
Pour créer un groupe de CloudWatch journaux à l'aide du AWS CLI
  1. Exécutez les commandes suivantes pour créer le groupe de journaux. Pour plus d'informations, consultez create-log-group le manuel de référence des commandes AWS CLI v2.

    Remplacez le nom du groupe de journaux dans l'exemple (uploadLogsGroup) par votre nom préféré.

    aws logs create-log-group --log-group-name uploadLogsGroup
  2. Pour confirmer que le groupe de journaux a été créé correctement, exécutez la commande suivante.

    aws logs describe-log-groups --log-group-name-prefix uploadLogsGroup

    Exemple de sortie :

    { "logGroups": [ { "logGroupName": "uploadLogsGroup", "creationTime": 1674521804657, "metricFilterCount": 0, "arn": "arn:aws:logs:us-east-1:111122223333:log-group:uploadLogsGroup:*", "storedBytes": 0 } ] }

Création d'une règle de rubrique

Pour créer une AWS IoT règle, procédez comme suit. Choisissez l'onglet approprié selon que vous préférez effectuer les étapes via le AWS Management Console ou le AWS Command Line Interface (AWS CLI).

AWS Management Console
Pour créer une règle de sujet à l'aide du AWS Management Console
  1. Ouvrez le hub de règles.

    1. Ouvrez le AWS Management Console et naviguez vers AWS IoT.

    2. Dans la barre de navigation, choisissez Routage des messages, puis Règles.

    3. Choisissez Créer une règle.

  2. Entrez les propriétés de la règle.

    1. Entrez un nom de règle alphanumérique.

    2. (Facultatif) Entrez une Règle de description puis Onglet.

    3. Choisissez Suivant.

  3. Entrez une instruction SQL.

    1. Entrez une instruction SQL en utilisant la rubrique MQTT que vous avez définie pour l'ingestion.

      Par exemple, SELECT * FROM '$aws/rules/things/thing_name/logs'

    2. Choisissez Suivant.

  4. Entrez les actions des règles.

    1. Dans le menu Action 1, choisissez CloudWatchlogs.

    2. Choisissez le nom de groupe de journal puis sélectionnez le groupe de journal que vous avez crée.

    3. Sélectionnez Utiliser le mode batch.

    4. Spécifiez le rôle IAM pour la règle.

      Si vous avez un rôle IAM pour la règle, procédez comme suit.

      1. Dans le menu du rôle IAM, choisissez votre rôle IAM.

      Si vous n'avez pas de rôle IAM pour la règle, procédez comme suit.

      1. Choisissez Create New Role (Créer un nouveau rôle).

      2. Pour Nom du rôle, entrez un nom unique et choisissez Créer.

      3. Vérifiez que le nom du rôle IAM est correct dans le champ du rôle IAM.

    5. Choisissez Suivant.

  5. Passez en revue la configuration du modèle.

    1. Vérifiez les paramètres du modèle de Tâche pour vérifier qu'ils sont corrects.

    2. Lorsque vous avez terminé, cliquez sur Create (Créer).

AWS CLI
Pour créer un rôle IAM et une règle de sujet à l'aide du AWS CLI
  1. Créez un rôle IAM qui accorde des droits à la AWS IoT règle.

    1. Créez une politique IAM.

      Exécutez la commande de l' suivante pour créer une Politique IAM Assurez-vous de mettre à jour la policy-name valeur du paramètre. Pour plus d'informations, consultez create-policyle manuel de référence des commandes AWS CLI v2.

      Note

      Si vous utilisez un système d'exploitation Microsoft Windows, vous devrez peut-être remplacer le marqueur de fin de ligne (\) par une coche (`) ou un autre caractère.

      aws iam create-policy \ --policy-name uploadLogsPolicy \ --policy-document \ '{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iot:CreateTopicRule", "iot:Publish", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" } }'
    2. Copiez l'ARN de la politique de votre sortie dans un éditeur de texte.

      Exemple de sortie :

      { "Policy": { "PolicyName": "uploadLogsPolicy", "PermissionsBoundaryUsageCount": 0, "CreateDate": "2023-01-23T18:30:10Z", "AttachmentCount": 0, "IsAttachable": true, "PolicyId": "AAABBBCCCDDDEEEFFFGGG", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::111122223333:policy/uploadLogsPolicy", "UpdateDate": "2023-01-23T18:30:10Z" } }
    3. Créer un rôle IAM et une politique de confiance.

      Exécutez la commande de l' suivante pour créer une politique IAM Assurez-vous de mettre à jour la role-name valeur du paramètre. Pour plus d'informations, consultez create-rolele manuel de référence des commandes AWS CLI v2.

      aws iam create-role \ --role-name uploadLogsRole \ --assume-role-policy-document \ '{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
    4. Attachez la politique IAM au rôle.

      Exécutez la commande de l' suivante pour créer une politique IAM Assurez-vous de mettre à jour les valeurs role-name et policy-arn paramètres. Pour plus d'informations, consultez attach-role-policyle manuel de référence des commandes AWS CLI v2.

      aws iam attach-role-policy \ --role-name uploadLogsRole \ --policy-arn arn:aws:iam::111122223333:policy/uploadLogsPolicy
    5. Passez en revue le rôle.

      Pour vérifier que le rôle IAM a été créé correctement, exécutez la commande suivante. Assurez-vous de mettre à jour la valeur du role-name paramètre. Pour plus d'informations, consultez get-rolele manuel de référence des commandes AWS CLI v2.

      aws iam get-role --role-name uploadLogsRole

      Exemple de sortie :

      { "Role": { "Path": "/", "RoleName": "uploadLogsRole", "RoleId": "AAABBBCCCDDDEEEFFFGGG", "Arn": "arn:aws:iam::111122223333:role/uploadLogsRole", "CreateDate": "2023-01-23T19:17:15+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "Description": "", "MaxSessionDuration": 3600, "RoleLastUsed": {} } }
  2. Créez une règle de AWS IoT sujet dans le AWS CLI.

    1. Pour créer une règle de AWS IoT rubrique, exécutez la commande suivante. Assurez-vous de mettre à jour le --rule-name, l'sqlinstruction, description, roleARN , et des logGroupName valeur de paramètres. Pour plus d'informations, consultez create-topic-rulele manuel de référence des commandes AWS CLI v2.

      aws iot create-topic-rule \ --rule-name uploadLogsRule \ --topic-rule-payload \ '{ "sql":"SELECT * FROM 'rules/things/thing_name/logs'", "description":"Upload logs test rule", "ruleDisabled":false, "awsIotSqlVersion":"2016-03-23", "actions":[ {"cloudwatchLogs": {"roleArn":"arn:aws:iam::111122223333:role/uploadLogsRole", "logGroupName":"uploadLogsGroup", "batchMode":true} } ] }'
    2. Pour vérifier que la règle a été créée correctement, exécutez la commande suivante. Assurez-vous de mettre à jour la valeur du role-name paramètre. Pour plus d'informations, consultez get-topic-rulele manuel de référence des commandes AWS CLI v2.

      aws iot get-topic-rule --rule-name uploadLogsRule

      Exemple de sortie :

      { "ruleArn": "arn:aws:iot:us-east-1:111122223333:rule/uploadLogsRule", "rule": { "ruleName": "uploadLogsRule", "sql": "SELECT * FROM rules/things/thing_name/logs", "description": "Upload logs test rule", "createdAt": "2023-01-24T16:28:15+00:00", "actions": [ { "cloudwatchLogs": { "roleArn": "arn:aws:iam::111122223333:role/uploadLogsRole", "logGroupName": "uploadLogsGroup", "batchMode": true } } ], "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23" } }

Envoi des journaux côté appareil à AWS IoT

Pour envoyer les journaux côté appareil à AWS IoT
  1. Pour envoyer des journaux historiques à AWS IoT, communiquez avec vos appareils pour vous assurer de ce qui suit.

    • Les informations du journal sont envoyées à l'espace de noms de rubrique approprié, comme indiqué dans la section Conditions préalables de cette procédure.

      Par exemple, $aws/rules/things/thing_name/logs

    • La charge utile du message MQTT est correctement formatée. Pour plus d'informations sur MQTT et la convention de dénomination recommandée, consultez la Rubriques MQTT section interne Importer les journaux côté appareil sur Amazon CloudWatch

  2. Vérifiez que les messages MQTT sont reçus dans le client AWS IoT MQTT.

    1. Ouvrez le AWS Management Console et naviguez vers AWS IoT.

    2. Pour afficher le client de test MQTT, dans la barre de navigation, choisissez Test, client de test MQTT.

    3. Pour S'abonner à une rubrique, Filtre de rubrique, entrez l'espace de noms de rubrique.

    4. Choisissez Souscrire.

      Les messages MQTT apparaissent dans le tableau des abonnements table de Rubriques, comme indiqué ci-dessous. Ces messages peuvent mettre jusqu'à cinq minutes avant d'apparaître.

      Les messages MQTT apparaissent dans le tableau des abonnements et des sujets.

Afficher les données du journal

Pour consulter vos enregistrements de journal dans CloudWatch Logs
  1. Ouvrez le AWS Management Console, puis naviguez vers CloudWatch.

  2. Dans la barre de navigation, choisissez Logs, Logs Insights.

  3. Dans le menu Sélectionner un ou plusieurs groupes de journaux, choisissez le groupe de journaux que vous avez spécifié dans la AWS IoT règle.

  4. Sur la page Logs Insights, choisissez Run query.