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

5 minuto de leitura
0

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

Breve descrição

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

Os logs do AWS IoT Core permitem que você defina níveis de login específicos de recursos para:

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

Isso é feito, criando um nível de registro para um tipo de alvo específico e configurando seu nível de verbosidade. Os tipos de destino incluem: THING_GROUP, CLIENT_ID, SOURCE_IP ou PRINCIPAL_ID. É recomendado, configurar o log padrão para um nível detalhado mais baixo e configurar o log específico do recurso para um nível detalhado mais alto.

Os níveis de detalhe do log, 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. Ativar o log detalhado também gera maior tráfego de dados. 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 log devem ser redefinidos para uma configuração menos detalhada.

Soluçã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, seja como itens de IoT registrados ou não registrados.

Observação: se você receber erros ao executar comandos da AWS CLI,, verifique se você está usando a versão mais recente da AWS CLI.

Configurar o log manual para clientes registrados como coisas

Você pode gerenciar logs específicos de recursos para várias coisas, em um nível de log definido e, em seguida, adicionar ou remover itens do grupo de itens manualmente. Seus dispositivos e clientes devem estar registrados como itens de IoT no AWS IoT Core e, devem se conectar usando o mesmo nome de coisa associado ao ID do cliente. Você pode usar um grupo de coisas estático com um tipo alvo de THING_GROUP para gerenciar o grupo de coisas. Se você configurar um grupo de coisas pai dentro de uma hierarquia, a configuração também se aplicará aos grupos secundários da hierarquia.

Observação: se você usa grupos de itens estáticos como tipo de destino, deve considerar seus limites de cota. Para mais informações, consulte Limites e cotas de recursos do AWS IoT Core Thing Group.

1.    Crie dois grupos de coisas estáticas. Você pode fazer isso usando o console do AWS IoT ou usando o create-thing-group no comando CLI da AWS. Neste exemplo, o AWS CLI é usado.

aws iot create-thing-group --thing-group-name logging_level_info
aws iot create-thing-group --thing-group-name logging_level_debug

Observação: se você estiver usando grupos de coisas existentes, substitua logging_level_info e logging_level_debug pelos nomes dos seus grupos de coisas.

A saída é semelhante à seguinte mensagem:

{
 "thingGroupName": "logging_level_info",
 "thingGroupArn": "arn:aws:iot:eu-west1-1:123456789012:thinggroup/logging_level_info",
 "thingGroupId": "58dd497e-97fc-47d2-8745-422bb21234AA"
}
{
 "thingGroupName": "logging_level_debug",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug",
 "thingGroupId": "2a9dc698-9a40-4487-81ec-2cb4101234BB"
}

2.    Execute o comando ](https://docs.aws.amazon.com/iot/latest/apireference/API_SetV2LoggingLevel.html)SetV2LoggingLevel[ para definir os níveis de log dos grupos de coisas: Observação: pode levar até 10 minutos para que as alterações na configuração do nível do log sejam aplicadas.

aws iot set-v2-logging-level \
 --log-target targetType=THING_GROUP,targetName=logging_level_info \
 --log-level INFO

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

Observação: substitua INFO e DEBUG pelos níveis de log que você deseja definir para cada grupo de coisas.

3.    Execute o comando a seguir para confirmar se os níveis de log estão configurados corretamente:

aws iot list-v2-logging-levels

A saída é semelhante à seguinte mensagem:

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

4.    Execute o comando ](https://docs.aws.amazon.com/iot/latest/apireference/API_AddThingToThingGroup.html)AddThingToThingGroup[ para adicionar algo ao grupo de coisas apropriado:

aws iot add-thing-to-thing-group \
 --thing-name YourThingName1 \
 --thing-group-name logging_level_info

Observação: substitua YourThingName1 pelo nome da coisa que você está adicionando ao grupo de coisas.

Configurar o log manual para clientes não registrados como coisas

Se você não registrar suas coisas no AWS IoT Core, ainda poderá adicionar níveis de registro específicos de recursos para vários tipos de alvo. Esses tipos de destino são atributos do cliente e incluem CLIENT_ID, SOURCE_IP ou PRINCIPAL_ID. Se seu dispositivo já estiver registrado como um AWS IoT Core, você ainda poderá usar esses atributos do cliente para gerenciar os níveis de registro.

1.    Execute o comando SetV2LoggingLevel para definir o nível de registro para um cliente específico:

aws iot set-v2-logging-level \
 --log-target targetType=CLIENT_ID,targetName=YourClientId \
 --log-level YourLogLevel

Observação: para usar um tipo de destino diferente, substitua CLIENT_ID por um valor compatível usado pelo cliente de destino, como SOURCE_IP ou PRINCIPAL_ID.

2.    Execute o comando a seguir para ter a confirmação de que os níveis de log estão configurados corretamente:

aws iot list-v2-logging-levels

A saída é semelhante à seguinte mensagem:

...
 {
 "logTarget": {
 "targetType": "CLIENT_ID",
 "targetName": "YourClientId"
 },
 "logLevel": "YourLogLevel"
 }
...

Monitorando registros gerados

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

Informações relacionadas

Monitoramento do AWS IoT

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

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

AWS OFICIAL
AWS OFICIALAtualizada há um ano