Como configuro os níveis de log dinamicamente para recursos específicos no AWS IoT Core?

6 minuto de leitura
0

Quero configurar dinamicamente o log específico de recursos para meus logs do AWS IoT Core.

Breve descrição

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

Você pode usar os logs do AWS IoT Core para definir dinamicamente os níveis de registro em log para recursos específicos. É possível usar um grupo dinâmico de coisas para definir um nível de registro em log específico de recurso. Você deve registrar seus clientes como coisas, e eles devem se conectar com o mesmo ID de cliente associado ao 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.

É uma prática recomendada configurar o registro em log padrão como um nível de verbosidade mais baixo e configurar o registro em log específico de recurso como um nível de verbosidade mais alto. Os níveis de verbosidade do log incluem DISABLED (mais baixo), ERROR, WARN, INFO e DEBUG (mais alto).

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).

**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. INFO ou DEBUG devem ser usados apenas como uma medida temporária durante a solução de problemas. Depois que a solução de problemas for concluída, os níveis de registro em log deverão ser redefinidos 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 e interagindo com seus endpoints do AWS IoT Core como coisas de IoT registradas.

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

Configurar o registro em log automático para recursos específicos

1.    Crie uma coisa do AWS IoT e adicione um atributo de coisa a ela.

Observação: é possível adicionar mais atributos de coisas conforme necessário. Em seguida, você pode alterar a consulta dinâmica do grupo de coisas para pesquisar esses atributos.

2.    Ative a indexação de coisas.

3.    Execute o comando DescribeIndex para verificar se seu índice de coisas tem um atributo indexStatus ATIVO:

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

4.    Crie um grupo de coisas dinâmico usando o console do AWS IoT ou a AWS CLI.

Console do AWS IoT

1.    Ative a indexação da frotas caso ainda não tenha feito isso.

2.    Fazer login no console do AWS IoT.

3.    No painel de navegação, escolha Todos os dispositivos e depois Grupos de coisas.

4.    Escolha Create thing group (Criar grupo de coisas).

5.    Em Thing group type (Tipo de grupo de coisas), escolha **Create dynamic thing group (Criar grupo de coisas dinâmico) ** e depois escolha Próximo (Avançar).

6.    Em Thing group name (Nome do grupo de coisas), insira logging_level_debug_dynamic. Em seguida, escolha Criar grupo de coisas.
Observação: substitua logging_level_debug_dynamic pelo nome do seu grupo de coisas.

7.    Em Query (Consulta), insira attributes.firmware:1 e pressione Enter para aplicar a instrução de consulta de pesquisa.
Observação: substitua firmware:1 pelo atributo e o valor da coisa que você deseja usar para a consulta.

8.    Escolha Preview query (Visualizar consulta) para ver todas as coisas que correspondem aos critérios da consulta.

9.    Escolha Create thing group (Criar grupo de coisas).

AWS CLI

1.    Execute o comando CreateDynamicThingGroup para criar um grupo de coisas dinâmico:

Observação: a criação do grupos de coisas dinâmico não é instantânea e pode levar algum tempo para ser concluída. Para mais informações, consulte Create a dynamic thing group (Criar um grupo de coisas dinâmico).

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

Observação: no exemplo anterior, substitua firmware:1 pelo atributo e o valor que você deseja usar para a consulta. Substitua logging_level_debug_dynamic pelo nome do seu grupo de coisas.

A saída é semelhante à seguinte mensagem:

{
 "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.    Execute o comando DescribeThingGroup para verificar se seu grupo dinâmico está ATIVO:

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

Observação: no exemplo anterior, substitua logging_level_debug_dynamic pelo nome do seu grupo de coisas.

A saída é semelhante à seguinte mensagem:

{
 "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.    Execute o comando SetV2LoggingLevel para definir o nível de registro do recurso. A configuração do nível de registro em log pode levar até dez minutos para ser concluída.

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

Observação: no exemplo anterior, substitua logging_level_debug_dynamic pelo nome do seu grupo de coisas dinâmico.

A saída é semelhante à seguinte mensagem. O registro em log padrão está incluído na saída e inclui os detalhes com base nas suas configurações. Outros níveis de registro em log que você configurou também são exibidos.

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

Monitorar os logs gerados

É uma boa prática monitorar seus logs de IoT em busca de problemas. Você pode usar o console do AWS CloudWatch Logs ou a AWS CLI para monitorar seus logs do AWS IoT Core. Para mais informações, consulte a seção “Monitorar entradas de log” de Como gerenciar da melhor maneira possível os níveis de logs do AWS IoT no AWS IoT Core?

Informações relacionadas

Preços do AWS IoT Device Management

Como faço para definir as configurações de log padrão para o AWS IoT Core?

Como configuro os níveis de log manualmente para recursos específicos no AWS IoT Core?

AWS OFICIAL
AWS OFICIALAtualizada há um ano