Surveillance avec les journaux AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

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.

Surveillance avec les journaux AWS IoT Greengrass

AWS IoT Greengrass se compose du service cloud et du logiciel AWS IoT Greengrass Core. Le logiciel AWS IoT Greengrass Core peut écrire des journaux sur Amazon CloudWatch et dans le système de fichiers local de votre appareil principal. Les fonctions Lambda et les connecteurs exécutés sur le noyau peuvent également écrire des journaux dans Logs et dans le système de fichiers local. CloudWatch Vous pouvez utiliser les journaux pour surveiller les événements et résoudre les problèmes. Toutes les entrées de journal AWS IoT Greengrass comportent un horodatage, un niveau de journalisation, ainsi que des informations sur l'événement. Les modifications apportées aux paramètres de journalisation prennent effet après le déploiement du groupe.

La journalisation est configurée au niveau du groupe. Pour savoir comment configurer la journalisation pour un groupe Greengrass, veuillez consulter Configurer la journalisation pour AWS IoT Greengrass.

Accès aux CloudWatch journaux

Si vous configurez la CloudWatch journalisation, vous pouvez consulter les journaux sur la page Logs de la CloudWatch console Amazon. Les groupes de journaux pour les journaux AWS IoT Greengrass utilisent les conventions de dénomination suivantes :

/aws/greengrass/GreengrassSystem/greengrass-system-component-name /aws/greengrass/Lambda/aws-region/account-id/lambda-function-name

Chaque groupe de journaux contient des flux de journaux qui utilisent la convention de dénomination suivante :

date/account-id/greengrass-group-id/name-of-core-that-generated-log

Les considérations suivantes s'appliquent lorsque vous utilisez CloudWatch des journaux :

  • Les journaux sont envoyés à CloudWatch Logs avec un nombre limité de tentatives en cas d'absence de connexion Internet. Une fois le nombre de tentatives atteint, l'événement est supprimé.

  • Transaction, mémoire et d'autres limitations s'appliquent. Pour plus d’informations, consultez Limites de la journalisation.

  • Votre rôle dans le groupe Greengrass doit vous permettre d'AWS IoT Greengrassécrire dans Logs. CloudWatch Pour accorder des autorisations, intégrez la stratégie en ligne suivante à votre rôle de groupe.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
    Note

    Vous pouvez accorder un accès plus granulaire à votre journal de ressources. Pour plus d'informations, consultez la section Utilisation de politiques basées sur l'identité (politiques IAM) pour les CloudWatch journaux dans le guide de l'utilisateur Amazon CloudWatch .

    Le rôle de groupe est un rôle IAM que vous créez et associez à votre groupe Greengrass. Vous pouvez utiliser la console ou l'API AWS IoT Greengrass pour gérer le rôle de groupe.

     

    Utilisation de la console
    1. Dans le volet de navigation de la AWS IoT console, sous Gérer, développez les appareils Greengrass, puis choisissez Groups (V1).

    2. Choisissez le groupe cible.

    3. Choisissez Afficher les paramètres. Sous Rôle de groupe, vous pouvez afficher, associer ou dissocier le rôle de groupe.

      Pour connaître la procédure permettant d'attacher le rôle de groupe, veuillez consulter rôle de groupe.

     

    Utilisation de la CLI

     

    Pour savoir comment obtenir l'ID de groupe à utiliser avec ces commandes, reportez-vous à Obtention de l'ID de groupe.

Accès aux journaux du système de fichiers

Si vous configurez la journalisation de système de fichiers, les fichiers journaux sont stockés sous greengrass-root/ggc/var/log sur l'appareil principal. Voici la structure de répertoires de haut niveau :

greengrass-root/ggc/var/log - crash.log - system - log files for each Greengrass system component - user - region - account-id - log files generated by each user-defined Lambda function - aws - log files generated by each connector
Note

Par défaut, greengrass_root est le répertoire /greengrass. Si un répertoire en écriture est configuré, les journaux se trouvent dans ce répertoire.

Les considérations suivantes s'appliquent lorsque vous utilisez les journaux du système de fichiers :

  • La lecture des journaux AWS IoT Greengrass sur le système de fichiers requiert des autorisations racine.

  • AWS IoT Greengrass prend en charge la rotation basée sur la taille et le nettoyage automatique lorsque le volume des données de journalisation est proche de la limite configurée.

  • Le fichier crash.log est disponible dans les journaux du système de fichiers uniquement. Ce journal n'est pas écrit dans CloudWatch Logs.

  • Des limitations d'utilisation du disque s'appliquent. Pour plus d’informations, consultez Limites de la journalisation.

Note

Les journaux relatifs aux logiciels AWS IoT Greengrass Core v1.0 sont stockés sous le répertoire greengrass-root/var/log.

Configuration de journalisation par défaut

Si les paramètres de journalisation ne sont pas configurés explicitement, AWS IoT Greengrass utilise la configuration de journalisation par défaut suivante après le déploiement du premier groupe.

AWS IoT Greengrass Composants système
  • Type - FileSystem

  • Composant - GreengrassSystem

  • Niveau - INFO

  • Espace - 128 KB

Fonctions Lambda définies par l'utilisateur
  • Type - FileSystem

  • Composant - Lambda

  • Niveau - INFO

  • Espace - 128 KB

Note

Avant le premier déploiement, seuls les composants du système écrivent des journaux dans le système de fichiers, car aucune fonction Lambda définie par l'utilisateur n'est déployée.

Configurer la journalisation pour AWS IoT Greengrass

Vous pouvez utiliser la AWS IoT console ou les AWS IoT GreengrassAPI pour configurer la AWS IoT Greengrass journalisation.

Note

AWS IoT GreengrassPour autoriser l'écriture de journaux dans CloudWatch Logs, votre rôle de groupe doit autoriser les actions CloudWatch Logs requises.

Configurer la journalisation (console)

Vous pouvez configurer la journalisation sur la page Settings (Paramètres) du groupe.

  1. Dans le volet de navigation de la AWS IoT console, sous Gérer, développez les appareils Greengrass, puis choisissez Groups (V1).

  2. Choisissez le groupe dans lequel vous souhaitez configurer la journalisation.

  3. Sur la page de configuration du groupe, choisissez l'onglet Logs.

  4. Choisissez l'emplacement de journalisation, comme suit :

    • Pour configurer la CloudWatch journalisation, pour la configuration CloudWatch des journaux, choisissez Modifier.

    • Pour configurer la journalisation du système de fichiers, pour la configuration des journaux locaux, choisissez Edit (Modifier).

    Vous pouvez configurer la journalisation pour un emplacement ou les deux.

  5. Dans le mode de configuration des journaux d'édition, sélectionnez le niveau de journal du système Greengrass ou le niveau de journal des fonctions User Lambda. Vous pouvez choisir un composant ou les deux.

  6. Choisissez le plus bas niveau d'événements que vous souhaitez consigner. Les évènements en dessous de ce seuil sont filtrés, mais ne sont pas stockés.

  7. Choisissez Enregistrer. Les modifications prennent effet après le déploiement du groupe.

Configurer la journalisation (API)

Vous pouvez utiliser les API de journalisation AWS IoT Greengrass pour configurer la journalisation par programmation. Par exemple, utilisez l'action CreateLoggerDefinition pour créer une définition d'enregistreur d'événements en fonction d'une charge utile LoggerDefinitionVersion, qui utilise la syntaxe suivante :

{ "Loggers": [ { "Id": "string", "Type": "FileSystem|AWSCloudWatch", "Component": "GreengrassSystem|Lambda", "Level": "DEBUG|INFO|WARN|ERROR|FATAL", "Space": "integer" }, { "Id": "string", ... } ] }

LoggerDefinitionVersion est un tableau d'un ou de plusieurs objets Logger dont les propriétés sont les suivantes :

Id

Identifiant unique de l'enregistreur d'événements.

Type

Mécanisme de stockage pour les événements de journaux. Lorsqu'il AWSCloudWatch est utilisé, les événements du journal sont envoyés à CloudWatch Logs. Lorsque FileSystem est utilisé, les journaux d'événements sont stockés dans le système de fichiers local.

Valeurs valides : AWSCloudWatch, FileSystem

Component

Source de l'événement de journal. Lorsque GreengrassSystem est utilisé, les événements provenant des composants système Greengrass sont consignés. Quand Lambda est utilisé, les événements provenant des fonctions Lambda définies par l'utilisateur sont consignés.

Valeurs valides : GreengrassSystem, Lambda

Level

Seuil du niveau de journalisation. Les journaux d'évènements en dessous de ce seuil sont filtrés, mais ne sont pas stockés.

Valeurs valides : DEBUG, INFO (recommandée), WARN, ERROR, FATAL

Space

Volume maximum de stockage local, en Ko, à utiliser pour stocker les journaux. Ce champ s'applique uniquement lorsque Type est défini sur FileSystem.

Exemple de configuration

L'exemple LoggerDefinitionVersion suivant spécifie un fichier de configuration qui :

  • Active la journalisation du système de fichiers ERROR et au-delà pour les composants AWS IoT Greengrass du système.

  • Active la journalisation du système de fichiers INFO (et versions ultérieures) pour les fonctions Lambda définies par l'utilisateur.

  • Active CloudWatch INFO (et au-delà) la journalisation pour les fonctions Lambda définies par l'utilisateur.

{ "Name": "LoggingExample", "InitialVersion": { "Loggers": [ { "Id": "1", "Component": "GreengrassSystem", "Level": "ERROR", "Space": 10240, "Type": "FileSystem" }, { "Id": "2", "Component": "Lambda", "Level": "INFO", "Space": 10240, "Type": "FileSystem" }, { "Id": "3", "Component": "Lambda", "Level": "INFO", "Type": "AWSCloudWatch" } ] } }

Lorsque vous avez créé une version de la définition de l'enregistreur d'événements, vous pouvez utiliser son ARN de version pour créer une version de groupe avant de déployer le groupe.

Limites de la journalisation

AWS IoT Greengrass possède les limitations de journalisation suivantes.

Transactions par seconde

Lorsque la connexion à CloudWatch est activée, le composant de journalisation regroupe les événements du journal localement avant de les envoyer CloudWatch, de sorte que vous pouvez enregistrer à un rythme supérieur à cinq demandes par seconde et par flux de journal.

Mémoire

S'il AWS IoT Greengrass est configuré pour envoyer des journaux CloudWatch et qu'une fonction Lambda enregistre plus de 5 Mo/seconde pendant une période prolongée, le pipeline de traitement interne finit par se remplir. Le pire scénario théorique est de 6 Mo par fonction Lambda.

Décalage d'horloge

Lorsque la connexion à CloudWatch est activée, le composant de journalisation signe les demandes en CloudWatch utilisant le processus de signature normal de Signature Version 4. Si l'heure du système sur le périphérique AWS IoT Greengrass principal est désynchronisée de plus de 15 minutes, les demandes sont rejetées.

Utilisation du disque

Utilisez la formule suivante pour calculer le volume total maximal d'espace disque affecté à la journalisation.

greengrass-system-component-space * 8 // 7 if automatic IP detection is disabled + 128KB // the internal log for the local logging component + lambda-space * lambda-count // different versions of a Lambda function are treated as one

Où :

greengrass-system-component-space

Volume maximal de stockage local pour les journaux des composants du système AWS IoT Greengrass.

lambda-space

La quantité maximale de stockage local pour les journaux des fonctions Lambda.

lambda-count

Le nombre de fonctions Lambda déployées.

Perte de journaux

Si votre appareil AWS IoT Greengrass principal est configuré pour se connecter uniquement à Internet CloudWatch et qu'il n'y a aucune connexion Internet, vous n'avez aucun moyen de récupérer les journaux actuellement en mémoire.

Lorsque les fonctions Lambda sont interrompues (par exemple, pendant le déploiement), les journaux de quelques secondes ne sont pas écrits. CloudWatch

CloudTrail journaux

AWS IoT Greengrassfonctionne avecAWS CloudTrail, un service qui fournit un enregistrement des actions entreprises par un utilisateur, un rôle ou un AWS service dansAWS IoT Greengrass. Pour plus d'informations, consultez Journalisation des appels d'API AWS IoT Greengrass avec AWS CloudTrail.