Monitorización con registros de AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Monitorización con registros de AWS IoT Greengrass

AWS IoT Greengrass consta del servicio de nube y el software de AWS IoT Greengrass Core. El software AWS IoT Greengrass Core puede escribir registros en Amazon CloudWatch y en el sistema de archivos local del dispositivo principal. Las funciones y los conectores Lambda que se ejecutan en el núcleo también pueden escribir registros en los CloudWatch registros y en el sistema de archivos local. Puede utilizar registros para monitorizar eventos y solucionar problemas. Todas las entradas de registro de AWS IoT Greengrass incluyen una marca temporal, un nivel de registro e información sobre el evento. Los cambios en la configuración de registro surten efecto después de implementar el grupo.

El registro está configurado en el nivel de grupo. Para ver los pasos que muestran cómo configurar el registro para un grupo de Greengrass, consulte Configuración de registro en AWS IoT Greengrass.

Acceder a CloudWatch los registros

Si configuras el CloudWatch registro, puedes ver los registros en la página Logs de la CloudWatch consola de Amazon. Los grupos de registros de AWS IoT Greengrass utilizan las siguientes convenciones de nomenclatura:

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

Cada grupo de registros contiene flujos de registros que utilizan la siguiente convención de nomenclatura:

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

Al utilizar CloudWatch Logs, se tienen en cuenta las siguientes consideraciones:

  • Los registros se envían a CloudWatch los registros con un número limitado de reintentos en caso de que no haya conexión a Internet. Cuando se agotan los reintentos, el evento se elimina.

  • Se aplican limitaciones de transacciones y de memoria, entre otras. Para obtener más información, consulte Limitaciones de registro.

  • Su rol de grupo de Greengrass debe permitir AWS IoT Greengrass escribir en Logs. CloudWatch Para conceder permisos, integre la siguiente política en línea en su rol de grupo.

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

    Puede conceder acceso granular a los recursos de registro. Para obtener más información, consulte Uso de políticas basadas en la identidad (políticas de IAM) para CloudWatch los registros en la Guía del usuario de Amazon CloudWatch .

    El rol del grupo es un rol de IAM que usted crea y asocia a su grupo de Greengrass. Puede usar la consola o la API de AWS IoT Greengrass para administrar el rol del grupo.

     

    Uso de la consola
    1. En el panel de navegación de la consola AWS IoT, en Administrar, expanda los dispositivos Greengrass y, a continuación, elija Grupos (V1).

    2. Seleccione el grupo de destino.

    3. Elija Ver configuración. En Rol del grupo, puede ver, asociar o desasociar el rol de grupo.

      Para ver los pasos que muestran cómo asociar el rol del grupo, consulte rol de grupo.

     

    Uso de la CLI

     

    Para obtener información sobre cómo obtener el ID del grupo para utilizarlo con estos comandos, consulte Obtener el ID del grupo.

Acceso a los registros del sistema de archivos

Si configura el registro del sistema de archivos, los archivos de registro se almacenan en greengrass-root/ggc/var/log en el dispositivo del núcleo. A continuación, se muestra la estructura de directorios de alto nivel:

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
nota

De forma predeterminada, greengrass-root es el directorio /greengrass. Si se configura un directorio de escritura, entonces los registros están en ese directorio.

Las siguientes consideraciones se aplican cuando se utilizan los registros del sistema de archivos:

  • La lectura de los registros de AWS IoT Greengrass en el sistema de archivos requiere permisos raíz.

  • AWS IoT Greengrass admite la rotación basada en tamaño y la limpieza automática cuando la cantidad de datos de registro se acerca al límite configurado.

  • El archivo crash.log solo está disponible en los registros del sistema de archivos. Este registro no se escribe en CloudWatch Logs.

  • Se aplican limitaciones de uso de disco. Para obtener más información, consulte Limitaciones de registro.

nota

Los registros del software de AWS IoT Greengrass Core v1.0 se almacenan en el directorio greengrass-root/var/log.

Configuración de registro predeterminada

Si las opciones de registro no se configuran de forma explícita, AWS IoT Greengrass utiliza la siguiente configuración de registro predeterminada después de la implementación del primer grupo.

Componentes del sistema de AWS IoT Greengrass
  • Escriba - FileSystem

  • Componente - GreengrassSystem

  • Nivel - INFO

  • Espacio - 128 KB

Funciones de Lambda definidas por el usuario
  • Escriba - FileSystem

  • Componente - Lambda

  • Nivel - INFO

  • Espacio - 128 KB

nota

Antes de la primera implementación, únicamente los componentes del sistema escriben registros en el sistema de archivos, ya que no se han implementado funciones de Lambda definidas por el usuario.

Configuración de registro en AWS IoT Greengrass

Puede utilizar la consola AWS IoT o las API de AWS IoT Greengrass para configurar el registro AWS IoT Greengrass.

nota

AWS IoT GreengrassPara permitir la escritura de registros en los CloudWatch registros, su rol de grupo debe permitir las acciones de CloudWatch registro requeridas.

Configuración de registro (consola)

Puede configurar el registro en la página Configuración del grupo.

  1. En el panel de navegación de la consola AWS IoT, en Administrar, expanda los dispositivos Greengrass y, a continuación, elija Grupos (V1).

  2. Elija el grupo en el que desea configurar el registro.

  3. En la página de configuración del grupo, elija la pestaña Registros.

  4. Elija la ubicación de registro de la siguiente manera:

    • Para configurar el CloudWatch registro, para configurar CloudWatch los registros, seleccione Editar.

    • Para configurar el registro en el sistema de archivos, en Local logs configuration (Configuración de registros locales), elija Edit (Editar).

    Puede configurar el registro para una ubicación o para ambas.

  5. En el modal de configuración de edición de registros, seleccione el nivel de registro del sistema Greengrass o el nivel de registro de las funciones de Lambda de usuario. Puede elegir un componente o ambos.

  6. Elija el nivel de eventos más bajo que desea registrar. Los eventos por debajo de este umbral se filtran y no se almacenan.

  7. Seleccione Guardar. Los cambios surten efecto después de implementar el grupo.

Configuración de registro (API)

Puede utilizar API de registrador de AWS IoT Greengrass para configurar el registro mediante programación. Por ejemplo, utilice la acción CreateLoggerDefinition para crear una definición de registradores basada en una carga LoggerDefinitionVersion, que utiliza la sintaxis siguiente:

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

LoggerDefinitionVersion es una matriz de uno o varios objetos Logger que tienen las propiedades siguientes:

Id

Un identificador para el registrador.

Type

El mecanismo de almacenamiento de eventos de registro. Cuando AWSCloudWatch se usa, los eventos del registro se envían a CloudWatch los registros. Cuando se utiliza FileSystem, los eventos de registro se almacenan en el sistema de archivos local.

Valores válidos: AWSCloudWatch, FileSystem

Component

El origen del evento de registro. Cuando se utiliza GreengrassSystem, se registran eventos de componentes del sistema de Greengrass. Cuando se utiliza Lambda, se registran los eventos de las funciones de Lambda definidas por el usuario.

Valores válidos: GreengrassSystem, Lambda

Level

El umbral del nivel de registro. Los eventos de registro por debajo de este umbral se filtran y no se almacenan.

Valores válidos: DEBUG, INFO (recomendado), WARN, ERROR, FATAL

Space

La cantidad máxima de almacenamiento local, en KB, que se utilizará para almacenar registros. Este campo se aplica únicamente cuando Type se establece en FileSystem.

Ejemplo de configuración

En el siguiente ejemplo de LoggerDefinitionVersion se especifica una configuración de registro que:

  • Activa el registro del nivel ERROR en el sistema de archivos para los componentes del sistema de AWS IoT Greengrass.

  • Activa el registro del nivel INFO (y superior) en el sistema de archivos para las funciones de Lambda definidas por el usuario.

  • Activa CloudWatch INFO (y más) el registro para las funciones Lambda definidas por el usuario.

{ "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" } ] } }

Una vez que se haya creado una versión de la definición de registradores, puede utilizar su ARN de la versión para crear una versión del grupo antes de implementar este.

Limitaciones de registro

AWS IoT Greengrass tiene las siguientes limitaciones de registro.

Transacciones por segundo

Cuando el registro CloudWatch está activado, el componente de registro registra los eventos de forma local por lotes antes de enviarlos a CloudWatch, de modo que puede registrar a una velocidad superior a cinco solicitudes por segundo por flujo de registro.

Memoria

Si AWS IoT Greengrass está configurada para enviar registros CloudWatch y una función Lambda registra más de 5 MB/segundo durante un período prolongado, la canalización de procesamiento interno finalmente se llena. El peor caso teórico es 6 MB por función de Lambda.

Desfase del reloj

Cuando el inicio de sesión CloudWatch está activado, el componente de registro firma las solicitudes CloudWatch mediante el proceso de firma normal de la versión 4 de Signature. Si la hora del sistema del dispositivo principal de AWS IoT Greengrass no está sincronizada en más de 15 minutos, las solicitudes se rechazan.

Consumo de disco

Utilice la siguiente fórmula para calcular la cantidad máxima total de consumo de disco para la actividad de registro.

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

Donde:

greengrass-system-component-space

La cantidad máxima de almacenamiento local para los registros de los componentes del sistema de AWS IoT Greengrass.

lambda-space

La cantidad máxima de almacenamiento local para registros de funciones de Lambda.

lambda-count

El número de funciones de Lambda implementadas.

Pérdida de registros

Si tu dispositivo AWS IoT Greengrass principal está configurado para iniciar sesión únicamente CloudWatch y no hay conexión a Internet, no tienes forma de recuperar los registros que se encuentran actualmente en la memoria.

Cuando se finalizan las funciones de Lambda (por ejemplo, durante el despliegue), no se escriben los registros de unos segundos. CloudWatch

CloudTrail registros

AWS IoT Greengrass se ejecuta con AWS CloudTrail, un servicio que proporciona un registro de las acciones hechas por un usuario, un rol o un servicio de AWS en AWS IoT Greengrass. Para obtener más información, consulte Registro de llamadas a la API de AWS IoT Greengrass con AWS CloudTrail.