¿Cómo configuro los niveles de registro de forma dinámica para recursos específicos en AWS IoT Core?

6 minutos de lectura
0

Quiero configurar el registro de recursos específicos de forma dinámica para mis registros de AWS IoT Core.

Descripción breve

Nota: Este artículo se refiere únicamente a la V2 de los registros de AWS IoT Core.

Puede utilizar los registros de AWS IoT Core para establecer de forma dinámica los niveles de registro para recursos específicos. Puede usar un grupo de objetos dinámico para establecer un nivel de registro específico para un recurso. Debe registrar a sus clientes como objetos y deben conectarse con la misma ID de cliente asociada al nombre de el objeto. El grupo de objetos dinámicos utiliza una consulta de indexación de flotas que busca y añade continuamente objetos al grupo que cumplen las condiciones de la consulta.

Se recomienda configurar el registro predeterminado en un nivel de detalle inferior y configurar el registro específico de los recursos en un nivel de detalle superior. Los niveles de detalle del registro son DISABLED (el más bajo), ERROR, WARN, INFO y DEBUG (el más alto).

Al crear o actualizar un grupo de objetos dinámico, los objetos pueden estar en un grupo de objetos dinámico y no añadirse a él automáticamente. Para obtener más información, consulte Los comandos correctos pueden registrar errores.

Importante: Según el tamaño de su flota de AWS IoT Core, activar niveles de registro más detallados puede generar costes elevados y dificultar la resolución de problemas. INFO o DEBUG solo deben usarse como medida temporal durante la resolución de problemas. Una vez finalizada la solución de problemas, los niveles de registro deben volver a ajustarse en una configuración menos detallada.

Resolución

Requisito previo

Asegúrese de tener AWS Command Line Interface (AWS CLI) instalada localmente con las credenciales de permisos de administrador de IoT. La región de AWS predeterminada para AWS CLI debe apuntar a la región de AWS objetivo. Debe tener clientes conectados a sus puntos de conexión de AWS IoT Core e interactuar con ellos, ya sea como objetos de IoT registrados o no registrados.

Nota: Si recibe errores al ejecutar los comandos de AWS CLI, asegúrese de utilizar la versión más reciente de AWS CLI.

Configuración del registro automático para recursos específicos

1.    Cree un objeto de AWS IoT y agréguele un atributo de objeto.

Nota: Puede añadir más atributos de objetos según sea necesario. A continuación, puede cambiar la consulta del grupo dinámico de objetos para buscarlas.

2.    Activa la indexación de objetos.

3.    Ejecute el comando DescribeIndex para comprobar que su índice de objetos tenga un atributo indexStatus ACTIVO:

aws iot describe-index --index-name "AWS_Things"

4.    Cree un grupo de objetos dinámico mediante la consola de AWS IoT o AWS CLI.

Consola de AWS IoT

1.    Active la indexación de flotas si aún no lo ha hecho.

2.    Inicie sesión en la consola de AWS IoT.

3.    En el panel de navegación, elija Todos los dispositivos y, a continuación, elija Grupos de objetos.

4.    Elija Crear grupo de objetos.

5.    Para el tipo de grupo de objetos, elija Crear grupo de objetos dinámico y, a continuación, elija Siguiente.

6.    Para el nombre del grupo Objeto, introduzca logging_level_debug_dynamic. A continuación, seleccione Crear grupo de objetos.
Nota: Reemplace logging_level_debug_dynamic por el nombre de su grupo de objetos.

7.    En Consulta, escriba attributes.firmware:1 y, a continuación, pulse Entrar para aplicar la sentencia de consulta de búsqueda.
Nota: Sustituya firmware:1 por el atributo y el valor del objeto que desee utilizar para la consulta.

8.    Seleccione Vista previa de la consulta para ver todos los objetos que coinciden con los criterios de la consulta.

9.    Elija Crear grupo de objetos.

AWS CLI

1.    Ejecute el comando CreateDynamicThingGroup para crear un grupo de objetos dinámico:

Nota: La creación dinámica de grupos de objetos no es instantánea y puede tardar algún tiempo en completarse. Para obtener más información, consulte Crear un grupo de objetos dinámico.

aws iot create-dynamic-thing-group \
 --thing-group-name "logging_level_debug_dynamic" \
 --query-string "attributes.firmware:1"

Nota: En el ejemplo anterior, sustituya firmware:1 por el atributo y el valor que desee utilizar para la consulta. Reemplace logging_level_debug_dynamic por el nombre de su grupo de objetos.

El resultado es similar al siguiente mensaje:

{
 "thingGroupName": "logging_level_debug_dynamic",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic",
 "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456",
 "indexName": "AWS_Things",
 "queryString": "attributes.firmware:1",
 "queryVersion": "2017-09-30"
}

2.    Ejecute el comando DescribeThingGroup para comprobar que su grupo de objetos dinámico esté ACTIVO:

aws iot describe-thing-group --thing-group-name "logging_level_debug_dynamic"

Nota: En el ejemplo anterior, reemplace logging_level_debug_dynamic por el nombre de su grupo de objetos.

El resultado es similar al siguiente mensaje:

{
 "thingGroupName": "logging_level_debug_dynamic",
 "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic",
 "version": 1,
 "thingGroupProperties": {},
 "thingGroupMetadata": {
 "creationDate": "2022-11-30T12:37:19.980000+00:00"
 },
 "indexName": "AWS_Things",
 "queryString": "attributes.firmware:1",
 "queryVersion": "2017-09-30",
 "status": "ACTIVE"
}

3.    Ejecute SetV2LoggingLevel para establecer el nivel de registro de un cliente específico. La configuración del nivel de registro puede tardar hasta diez minutos.

aws iot set-v2-logging-level \
 --log-target targetType=THING_GROUP,targetName=logging_level_debug_dynamic \
 --log-level DEBUG

**Nota:**En el ejemplo anterior, reemplace logging_level_debug_dynamic por el nombre de su grupo de objetos dinámico.

El resultado es similar al siguiente mensaje. El registro predeterminado se incluye en la salida e incluye los detalles en función de las configuraciones. También se muestran otros niveles de registro que haya configurado.

{
"logTargetConfigurations": [{
"logTarget": {
"targetType": "DEFAULT"
},
"logLevel": "WARN"
},
{
"logTarget": {
"targetType": "THING_GROUP",
"targetName": "
logging_level_debug_dynamic "
},
"logLevel": "DEBUG"
}
]
}

Supervisión de los registros generados

Se recomienda supervisar los registros de IoT para detectar dificultades o problemas. Puede utilizar la consola de registros de Amazon CloudWatch o AWS CLI para supervisar sus registros de AWS IoT Core. Para más información, consulte la sección "Supervisión de las entradas de registro" de ¿Cómo puedo administrar mejor los niveles de registro de mis registros de AWS IoT en AWS IoT Core?

Información relacionada

Precios de AWS IoT Device Management

¿Cómo configuro los ajustes de registro predeterminados para AWS IoT Core?

¿Cómo configuro manualmente los niveles de registro para recursos específicos en AWS IoT Core?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año