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
-
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).
Seleccione el grupo de destino.
-
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 buscar el rol del grupo, utilice el comando get-associated-role.
-
Para asociar el rol del grupo, utilice el comando associate-role-to-group.
-
Para quitar el rol del grupo, utilice el comando disassociate-role-from-group.
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
en el dispositivo del núcleo. A continuación, se muestra la estructura de directorios de alto nivel:greengrass-root
/ggc/var/log
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.
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).
-
Elija el grupo en el que desea configurar el registro.
-
En la página de configuración del grupo, elija la pestaña Registros.
-
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.
-
-
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.
-
Elija el nivel de eventos más bajo que desea registrar. Los eventos por debajo de este umbral se filtran y no se almacenan.
-
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 utilizaFileSystem
, 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 utilizaLambda
, 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 enFileSystem
.
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.