Como gerenciar da melhor maneira possível os níveis de registro em log do AWS IoT no AWS IoT Core?

7 minuto de leitura
0

Quero seguir práticas recomendadas ao configurar meus logs do AWS IoT no AWS IoT Core para reduzir custos e tráfego de dados.

Breve descrição

Observação: este artigo refere-se apenas à V2 dos logs do AWS IoT Core.

É uma prática recomendada saber quais recursos do AWS IoT Core devem ser monitorados e em que nível. Você pode segmentar seus recursos do AWS IoT Core e atribuir a cada segmento um nível de registro em log adequado às suas necessidades de monitoramento. O log do AWS IoT Core permite que você defina níveis de registro em log padrão e níveis de registro em log específicos para seus recursos.

É uma prática recomendada configurar o seguinte:

  • O registro de log padrão, de forma a ter um nível de registro em log de baixa verbosidade, como os níveis ERROR ou WARN. Se o registro em log padrão estiver configurado, ele será aplicado a todos os recursos, a menos que estes tenham o registro em log específico de recurso configurado.
  • Registro em log específico de recursos (manual ou dinâmico), de forma a ter um nível mais detalhado, como INFO ou DEBUG. Isso pode ser configurado para diferentes tipos de destinos, como THING_GROUP, CLIENT_ID, SOURCE_IP, or PRINCIPAL_ID.

O registro em log padrão e o registro em log específico de recurso podem ser usados simultaneamente. Os níveis de verbosidade incluem DISABLED (mais baixo), ERROR, WARN, INFO e DEBUG (mais alto).

**Importante:**dependendo do tamanho da sua frota do AWS IoT Core, ativar níveis de log mais detalhados pode gerar altos custos e dificultar a solução de problemas. Níveis de registro em log mais detalhados também geram maior tráfego de dados. É uma boa prática usar INFO ou DEBUG apenas como uma medida temporária na solução de problemas. Após a conclusão da solução de problemas, é uma prática recomendada redefinir os níveis de registro em log para uma configuração menos detalhada.

Resolução

Pré-requisito

Certifique-se de ter a AWS Command Line Interface (AWS CLI) instalada localmente com credenciais de permissão de administrador de IoT. A região padrão da AWS para o AWS CLI deve apontar para a região alvo da AWS. Você deve ter clientes conectados ao seu AWS IoT Core, seja como coisas de IoT registradas ou não registradas.

Observação: se você receber erros ao executar os comandos da AWS CLI, utilize a versão mais recente da AWS CLI.

Registro em log padrão

Ao definir o nível de log padrão para seus logs do AWS IoT como ERROR ou WARN, você pode analisar erros ou avisos de log. Definir o padrão para níveis menos detalhados reduz os custos e o tráfego de dados. Para mais informações, consulte How do I configure the default logging settings for AWS IoT Core? (Como definir as configurações de registro em log padrão para o AWS IoT Core?)

Observação: você deve fornecer logs do AWS IoT Core ao AWS Support ao criar um caso. O AWS Support não tem acesso a essas informações, pois elas são consideradas dados do cliente.

Registro em log manual de recursos específicos

Os logs do AWS IoT Core permitem que você defina níveis de registro em log específico de recursos para:

  • Clientes registrados como coisas
  • Clientes não registrados como coisas

Para mais informações, consulte How do I configure logging levels manually for specific resources in AWS IoT Core? (Como configurar níveis de registro em log manualmente para recursos específicos no AWS IoT Core?)

Para clientes registrados como coisas, você pode gerenciar o registro em log específico de recurso para várias coisas em um nível de registro em log definido. Você também pode adicionar ou remover coisas do grupo de coisas manualmente. Seus dispositivos e clientes devem estar registrados como coisas de IoT no AWS IoT Core e devem se conectar usando o mesmo ID de cliente associado ao nome da coisa. Em seguida, você pode usar um grupo de coisas estático com um tipo de destino de THING_GROUP para gerenciar o grupo de coisas.

Observação: é necessário considerar os limites de cota ao usar grupos de coisas estáticos. Para mais informações, consulte (AWS IoT Core thing group resource limits and quotas) Limites e cotas de recursos de grupos de coisas do AWS IoT Core.

Para clientes não registrados como coisas, é possível usar atributos de cliente como o tipo de destino para gerenciar recursos. Esses atributos incluem CLIENT_ID, SOURCE_IP ou PRINCIPAL_ID.

Registro em log automático de recursos específicos

Você pode usar um grupo dinâmico de coisas para definir automaticamente níveis de registro em log específico de recurso para suas coisas. Seus clientes devem estar registrados como objetos de IoT e se conectar com o mesmo ID de cliente que o nome da coisa. O grupo dinâmico usa uma consulta de indexação de frota que continuamente localiza e adiciona automaticamente ao grupo coisas que atendem às condições dessa consulta. Para mais informações, consulte How do I configure logging levels dynamically for specific resources in AWS IoT Core? (Como configurar níveis de registro em log automaticamente para recursos específicos no AWS IoT Core?)

Observação: ao criar ou atualizar um grupo dinâmico, coisas podem ser elegíveis para estar em um grupo dinâmico e não serem adicionadas a ele automaticamente. Para mais informações, consulte Successful commands can log errors (Comandos bem-sucedidos podem registrar erros).

Monitorar entradas de log

Você pode monitorar suas entradas de log do AWS IoT com o console do Amazon CloudWatch ou com a AWS CLI:

Console do CloudWatch

1.    Abra o console do CloudWatch.

2.    No painel de navegação, em Logs, escolha Grupos de logs.

3.    Na caixa de texto de filtros, insira AWSIoTLogsV2 e pressione Enter.
Observação: o grupo de logs AWSIotLogsV2 não estará visível no console do CloudWatch até que você ative com êxito o registro em log no AWS IoT Core. As entradas de log também devem ser gravadas por operações do AWS IoT para que o grupo de logs fique visível.

4.    Escolha AWSIoTLogsV2.

5.    Escolha Pesquisar tudo. É exibida uma lista completa dos logs do AWS IoT gerados para a sua conta.

AWS CLI

Execute o comando a seguir para obter seus logs do AWS IoT na AWS CLI:

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

Observação: é possível usar --filter-pattern para procurar atributos de log específicos. Para mais informações, consulte Filter and pattern syntax (Sintaxe de filtros e padrões).

O valor do campo “logLevel” reflete o nível de registro em log configurado para o destino. No exemplo a seguir, o nível de registro em log do destino está configurado como 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
}

Observação: CLIENT_ID está disponível somente ao se conectar ao AWS IoT Core usando os protocolos MQTT ou MQTT via WSS. O protocolo HTTPS não oferece suporte a IDs de clientes. Em vez disso, use os tipos de destino SOURCE_IP ou PRINCIPAL_ID.

Editar ou excluir níveis de registro em log

Você pode alterar o nível de registro em log para o nível padrão e para recursos específicos a qualquer momento. Pode levar até dez minutos para que as alterações sejam refletidas.

Na AWS CLI, execute o comando delete-v2-logging-level com as seguintes edições feitas nos campos --target-type e --target-name:

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

Informações relacionadas

Endpoints e cotas do AWS IoT Device Management

Monitorar o AWS IoT

Preços do AWS IoT Device Management

AWS OFICIAL
AWS OFICIALAtualizada há um ano