¿Cuál es la mejor manera de administrar los niveles de registro de mis registros de AWS IoT en AWS IoT Core?

6 minutos de lectura
0

Quiero seguir las prácticas recomendadas al configurar mis registros de AWS IoT en AWS IoT Core para reducir los costes y el tráfico de datos.

Descripción breve

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

Se recomienda saber qué recursos de AWS IoT Core deben supervisarse y a qué nivel. Puede segmentar sus recursos de AWS IoT Core y asignar a cada segmento un nivel de registro que se adapte a sus necesidades de monitoreo. El registro de AWS IoT Core le permite establecer niveles de registro predeterminados y niveles de registro específicos para sus recursos.

Se recomienda configurar:

  • El registro predeterminado tiene un nivel de registro bajo, como los niveles ERROR o WARN. Si el registro predeterminado está configurado, se aplica a todos los recursos, a menos que tengan configurado un registro específico de los recursos.
  • Registro específico de recursos (manual o dinámico) para tener un nivel más detallado, como INFO o DEBUG. Se puede configurar para diferentes tipos de objetivos, como THING_GROUP, CLIENT_ID, SOURCE_IP o PRINCIPAL_ID.

El registro predeterminado y el registro específico de recursos se pueden utilizar simultáneamente. Los niveles de detalle del registro son DISABLED (el más bajo), ERROR, WARN, INFO y DEBUG (el más alto).

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. Los niveles de registro más detallados también generan un mayor tráfico de datos. Se recomienda utilizar INFO o DEBUG solo como medida temporal para solucionar problemas. Una vez completada la solución de problemas, se recomienda restablecer los niveles de registro a una configuración menos detallada.

Resolución

Requisito previo

Asegúrese de tener la interfaz de la línea de comandos de AWS (AWS CLI) instalada localmente con las credenciales de permisos de administrador de IoT. La región de AWS predeterminada para la AWS CLI debe apuntar a la región de AWS objetivo. Debe tener clientes conectados a su AWS IoT Core, 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.

Registro predeterminado

Al establecer el nivel de registro predeterminado para sus registros de AWS IoT en ERROR o WARN, puede revisar los errores o advertencias del registro cuando se produzcan. Si se establece el valor predeterminado en niveles menos detallados, se reducen los costes y el tráfico de datos. Para obtener más información, consulte ¿Cómo configuro los ajustes de registro predeterminados para AWS IoT Core?

Nota: Debe proporcionar los registros de AWS IoT Core a AWS Support al crear un caso. AWS Support no tiene acceso a esta información porque se considera información del cliente.

Registrar recursos específicos de forma manual

Los registros de AWS IoT Core le permiten establecer niveles de registro específicos de los recursos para:

  • Clientes registrados como objetos
  • Clientes no registrados como objetos

Para obtener más información, consulte ¿Cómo configuro los niveles de registro manualmente para recursos específicos en AWS IoT Core?

Para los clientes registrados como objetos, puede administrar el registro específico de recursos para varios objetos en un nivel de registro definido. También puede añadir o eliminar objetos del grupo de objetos manualmente. Sus dispositivos y clientes deben estar registrados como objetos de IoT en AWS IoT Core y deben conectarse con el mismo nombre de objeto asociado al ID de cliente. A continuación, puede usar un grupo de objetos estático con un tipo de destino de THING_GROUP para administrar el grupo de objetos.

Nota: Debe tener en cuenta los límites de cuota cuando utilice grupos de objetos estáticos. Para obtener más información, consulte los límites y cuotas de recursos del grupo de objetos AWS IoT Core.

Para los clientes no registrados como objetos, puede utilizar los atributos del cliente como tipo de destino para administrar los recursos. Estos atributos incluyen CLIENT_ID, SOURCE_IP o PRINCIPAL_ID.

Registrar recursos específicos automáticamente

Puede usar un grupo de objetos dinámico para establecer automáticamente niveles de registro específicos de los recursos para sus objetos. Sus clientes deben estar registrados como objetos de IoT y conectarse con el mismo ID de cliente que el nombre del 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. Para obtener más información, consulte ¿Cómo configuro los niveles de registro de forma dinámica para recursos específicos en AWS IoT Core?

Nota: 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.

Monitorización de entradas de registro

Puede supervisar las entradas de registro de AWS IoT con la consola de Amazon CloudWatch o AWS CLI:

Consola CloudWatch

1.    Abra la consola de CloudWatch.

2.    En el panel de navegación, en Registros, elija Grupos de registros.

3.    En el cuadro de texto de filtros, escriba AWSIoTLogsV2 y, a continuación, presione Entrar.
Nota: El grupo de registros AWSIoTLogsV2 no estará visible en la consola de CloudWatch hasta que haya activado correctamente el registro en AWS IoT Core. Las operaciones de IoT de AWS también deben escribir las entradas de registro para que el grupo de registros esté visible.

4.    Elija ** AWSIoTLogsV2**.

5.    Seleccione Buscar en todos. Aparece una lista completa de los registros de AWS IoT generados para su cuenta.

AWS CLI

Ejecute el siguiente comando para obtener sus registros de AWS IoT en AWS CLI:

aws logs filter-log-events --log-group-name AWSIotLogsV2 \
 --start-time YourStartTimeInMilliseconds

Nota: Puede usar --filter-pattern para buscar atributos de registro específicos. Para obtener más información, consulte Sintaxis de filtros y patrones.

El valor del campo "logLevel" refleja el nivel de registro que está configurado para el objetivo. En el siguiente ejemplo, el nivel de registro del destino se configura en INFO:

{
 "timestamp": "2017-08-10 15:37:23.476",
 "logLevel": "INFO",
 "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb",
 "accountId": "123456789012",
 "status": "Success",
 "eventType": "Connect",
 "protocol": "MQTT",
 "clientId": "abf27092886e49a8a5c1922749736453",
 "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a123456",
 "sourceIp": "123.123.123.123",
 "sourcePort": 13490
}

Nota: CLIENT_ID solo está disponible cuando se conecta a AWS IoT Core mediante los protocolos MQTT o MQTT a través de WSS. El protocolo HTTPS no admite identificadores de cliente. Utilice los tipos de destino SOURCE_IP o PRINCIPAL_ID en su lugar.

Edición o eliminación de niveles de registro

Puede cambiar el nivel de registro tanto para el nivel predeterminado como para recursos específicos en cualquier momento. Los cambios pueden tardar hasta diez minutos en reflejarse.

En AWS CLI, ejecute el comando delete-v2-logging-level con las siguientes modificaciones en los campos --target-type y ** --target-name** :

aws iot delete-v2-logging-level \
 --target-type "THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID" \
 --target-name YourTargetName

Información relacionada

Puntos de conexión y cuotas de AWS IoT Device Management

Supervisión de AWS IoT

Precios de AWS IoT Device Management

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año