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 publicará actualizaciones que proporcionen características, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten en 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 características nuevas y es compatible con más plataformas.

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 de AWS IoT Greengrass Core puede escribir registros en Amazon CloudWatch y en el sistema de archivos local del dispositivo del núcleo. Las funciones de Lambda y los conectores que se ejecutan en el núcleo también pueden escribir registros en CloudWatch Logs 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.

Acceso a registros de CloudWatch

Si configura el registro de CloudWatch, puede ver los registros en la página Registros de la consola de Amazon CloudWatch. 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

Las siguientes consideraciones se aplican cuando utilice CloudWatch Logs:

  • Los registros se envían a CloudWatch Logs 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.

  • El rol de su grupo de Greengrass debe permitir a AWS IoT Greengrass escribir a CloudWatch Logs. 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 identidad (políticas de IAM) para CloudWatch Logs 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 de AWS IoT, en Administrar, expanda los Dispositivos de 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 de AWS IoT o las API de AWS IoT Greengrass para configurar el registro de AWS IoT Greengrass.

nota

Para permitir que AWS IoT Greengrass escriba registros en CloudWatch Logs, su rol de grupo debe permitir las acciones requeridas de CloudWatch Logs.

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 de AWS IoT, en Administrar, expanda los Dispositivos de 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 los registros de CloudWatch, en Configuración de registros de CloudWatch, 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 se usa AWSCloudWatch, los eventos de registro se envían a los registros de CloudWatch. 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 versiones superiores) en el sistema de archivos para las funciones de 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 esté activada la opción de registro en CloudWatch, el componente de registro crea lotes de eventos de registro en el nivel local antes de enviarlos a CloudWatch para poder realizar el registro a una velocidad superior a cinco solicitudes por segundo por flujo de registro.

Memoria

Si se ha configurado AWS IoT Greengrass para que envíe los registros a CloudWatch y una función de Lambda registra más de 5 MB/segundo durante un periodo de tiempo prolongado, la canalización de procesamiento interno acaba por llenarse. El peor caso teórico es 6 MB por función de Lambda.

Desfase del reloj

Cuando se activa la opción de registro en CloudWatch, el componente de registro firma solicitudes para CloudWatch utilizando el proceso de firma Signature Version 4 normal. 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 el dispositivo principal de AWS IoT Greengrass está configurado para iniciar sesión únicamente en CloudWatch y no hay conexión a Internet, no hay manera de recuperar los registros que se encuentren en la memoria.

Cuando las funciones de Lambda se terminan (por ejemplo, durante la implementación), hay unos segundos de los registros que no se escriben en Cloudwatch.

Registros de CloudTrail

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.