Configurar registro em log da AWS IoT - AWS IoT Core

Configurar registro em log da AWS IoT

Você deve habilitar o registro em log usando o console do AWS IoT, a CLI ou a API antes de monitorar e registrar em log a atividade do AWS IoT.

É possível habilitar o registro em log para todo o AWS IoT ou somente grupos específicos. É possível configurar o registro em log do AWS IoT usando o console do AWS IoT, a CLI ou a API. No entanto, você deve usar a CLI ou a API para configurar o registro em log para grupos específicos de objetos.

Ao considerar como configurar o registro em log do AWS IoT, a configuração padrão determina como a atividade do AWS IoT será registrada, a menos que seja especificado de outra forma. No começo, talvez você queira obter logs detalhados com um nível de log padrão de INFO ou DEBUG. Depois que analisar os logs iniciais, você poderá alterar o nível de log padrão para um nível menos detalhado, como WARN ou ERROR e definir um nível de log mais detalhado específico do recursos em recursos que possam precisar de mais atenção. É possível alterar os níveis de log sempre que quiser.

Este tópico aborda o registro em log na nuvem AWS IoT. Para obter informações sobre registro em log e monitoramento do lado do dispositivo, consulte a opção Carregar registros em log do lado do dispositivo para o CloudWatch.

Para obter informações sobre registro em log e monitoramentoAWS IoT Greengrass, consulte a opção Registro em log e monitoramento em AWS IoT Greengrass. Em 30 de junho de 2023, o software Core AWS IoT Greengrass migrou para o AWS IoT Greengrass Version 2.

Configurar a função e a política de registro em log

Antes que possa habilitar o registro em log no AWS IoT, você deve criar um perfil do IAM e uma política que forneça à permissão AWS para monitorar a atividade do AWS IoT em seu nome. Você também pode gerar um perfil do IAM com as políticas necessárias na seção Logs do AWS IoT console.

nota

Antes de habilitar o registro em log do AWS IoT, entenda as permissões de acesso do CloudWatch Logs. Os usuários com acesso ao CloudWatch Logs podem ver informações de depuração em seus dispositivos. Para obter mais informações, consulte a opção Autenticação e controle de acesso para o Amazon CloudWatch Logs.

Se você espera altos padrões de tráfego AWS IoT Core devido aos testes de carga, considere desativar o registro em log de IoT para evitar o controle de utilização. Se for detectado tráfego intenso, nosso serviço poderá desativar o registro em log em sua conta.

Veja a seguir como criar uma função de registro em log e uma política para recursos AWS IoT Core.

Criar uma função de registro em log

Para criar uma função de registro em log, abra o hub Roles do console do IAM e escolha a opção Criar função.

  1. Em Selecionar tipo de entidade confiável, selecione a opção AWS Serviço. Em seguida, escolha a opção IoT em Caso de uso. Se a opção IoT não for exibida, entre e pesquise IoT em Casos de uso para outros AWS serviços: menu suspenso. Escolha Próximo.

  2. Na página Adicionar permissões, você verá as políticas que são automaticamente anexadas ao perfil de serviço. Escolha Próximo.

  3. Na página Nome, revisão e criação, insira um Nome do perfil e uma Descrição da função para a função e escolha Criar função.

  4. Na lista de Funções, encontre a função criada, abra-a e copie o ARN da função (logging-role-arn) a ser usado em Configurar o registro em log padrão no AWS IoT (console).

Política de função de registro em log

Os documentos de políticas a seguir fornecem as políticas de função e de confiança que permitem que o AWS IoT envie entradas de log ao CloudWatch em seu nome. Se você também permitiu AWS IoT Core que o LoRaWAN enviasse entradas de log, você verá um documento de política criado para você que registra em log as duas atividades.

nota

Esses documentos foram criados para você quando você criou a função de registro em log. Os documentos têm variáveis, ${partition}, ${region}, e ${accountId}, que você deve substituir pelos seus valores.

Política de função:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "iot:GetLoggingOptions", "iot:SetLoggingOptions", "iot:SetV2LoggingOptions", "iot:GetV2LoggingOptions", "iot:SetV2LoggingLevel", "iot:ListV2LoggingLevels", "iot:DeleteV2LoggingLevel" ], "Resource": [ "arn:${partition}:logs:${region}:${accountId}:log-group:AWSIotLogsV2:*" ] } ] }

Política de confiança para registrar em log somente atividades do AWS IoT Core:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Configurar o registro em log padrão no AWS IoT (console)

Esta seção descreve como usar o console do AWS IoT para configurar o registro em log para todo o AWS IoT. Para configurar o registro em log somente para grupos de objetos específicos, use a CLI ou a API. Para obter informações sobre como configurar o registro em log para grupos de objetos específicos, consulte Configurar registro em log de recursos específicos no AWS IoT (CLI).

Para usar o console do AWS IoT para configurar o registro em log padrão para todo o AWS IoT
  1. Faça login no console do AWS IoT. Para obter mais informações, consulte Abra o console do AWS IoT.

  2. No painel de navegação à esquerda, escolha Configurações. Na seção Logs da página Configurações, escolha Gerenciar logs.

    A página Logs exibe a função de registro em log e o nível de detalhamento usados por todo o AWS IoT.

    A página Logs exibindo a função e o nível de detalhamento do log.
  3. Na página Logs, escolha Selecionar função para especificar uma função que você criou em Criar uma função de registro em log, ou Criar função para criar uma nova função para usar no registro em log.

    A página Logs exibindo a função e o nível do log.
  4. Escolha o nível de log que descreve o nível de detalhe das entradas de log que você deseja que apareçam nos logs do CloudWatch.

  5. Escolha Atualizar para salvar suas alterações.

Depois que habilitar o registro em log, acesse Visualização de logsAWS IoT no console do CloudWatch para saber mais sobre como visualizar as entradas de log.

Configurar registro em log padrão no AWS IoT (CLI)

Esta seção descreve como configurar o registro em log global para o AWS IoT usando a CLI.

nota

É necessário o nome do recurso da Amazon (ARN) da função que você deseja usar. Se você precisar criar uma função a ser usada para o registro em log, consulte Criar uma função de registro em log antes de continuar.

A entidade principal usada para chamar a API deve ter Transmitir as permissões de função para sua função de registro em log.

Também é possível executar esse procedimento com a API usando os métodos na API da AWS que correspondam aos comandos da CLI mostrados aqui.

Para usar a CLI a fim de configurar o registro em log padrão para o AWS IoT
  1. Use o comando set-v2-logging-options para definir as opções de registro em log para sua conta.

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    onde:

    --role-arn

    O ARN da função que concede permissão ao AWS IoT para gravar em seus logs no CloudWatch Logs.

    --default-log-level

    O nível de log a ser usado. Os valores válidos são ERROR, WARN, INFO, DEBUG ou DISABLED.

    --no-disable-all-logs

    Um parâmetro opcional que permite todos os registros em log do AWS IoT. Use esse parâmetro para habilitar o registro em log se ele estiver desabilitado no momento.

    --disable-all-logs

    Um parâmetro opcional que desativa todos os registros em log do AWS IoT. Use esse parâmetro para desabilitar o registro em log se ele estiver habilitado no momento.

  2. Use o comando get-v2-logging-options para obter as opções de registro em log atuais.

    aws iot get-v2-logging-options

Depois que habilitar o registro em log, acesse Visualização de logsAWS IoT no console do CloudWatch para saber mais sobre como visualizar as entradas de log.

nota

O AWS IoT continua a oferecer suporte a comandos mais antigos (set-logging-options e get-logging-options) para definir e obter o registro em log global na conta. Lembre-se de que, quando esses comandos são usados, os logs resultantes conterão texto sem formatação, em vez de cargas úteis JSON, e a latência dos registros em logs geralmente será mais alta. Não haverá mais melhorias à implementação desses comandos mais antigos. Recomendamos que você use a versão "v2" para configurar suas opções de registro em log e, quando possível, altere quaisquer aplicativos legados que usam as versões mais antigas.

Configurar registro em log de recursos específicos no AWS IoT (CLI)

Esta seção descreve como configurar o registro em log específico de recursos para o AWS IoT usando a CLI. O registro em log de recursos específicos permite que você especifique um nível de log para um grupo de objetos específico.

Grupos de objetos podem conter outros grupos de objetos para criar um relacionamento hierárquico. Este procedimento descreve como configurar o registro em log de um único grupo de objetos. É possível aplicar esse procedimento ao grupo de objetos pai em uma hierarquia para configurar o registro em log para todos os grupos de objetos na hierarquia. Também é possível aplicar esse procedimento a um grupo de objetos filho para substituir a configuração de registro em log do grupo pai.

Além dos grupos de objetos, você também pode registrar destinos como o ID do cliente, o IP de origem e o ID principal do dispositivo.

nota

É necessário o nome do recurso da Amazon (ARN) da função que você deseja usar. Se você precisar criar uma função a ser usada para o registro em log, consulte Criar uma função de registro em log antes de continuar.

A entidade principal usada para chamar a API deve ter Transmitir as permissões de função para sua função de registro em log.

Também é possível executar esse procedimento com a API usando os métodos na API da AWS que correspondam aos comandos da CLI mostrados aqui.

Como usar a CLI para configurar o registro em log de recursos específicos para o AWS IoT
  1. Use o comando set-v2-logging-options para definir as opções de registro em log para sua conta.

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    onde:

    --role-arn

    O ARN da função que concede permissão ao AWS IoT para gravar em seus logs no CloudWatch Logs.

    --default-log-level

    O nível de log a ser usado. Os valores válidos são ERROR, WARN, INFO, DEBUG ou DISABLED.

    --no-disable-all-logs

    Um parâmetro opcional que permite todos os registros em log do AWS IoT. Use esse parâmetro para habilitar o registro em log se ele estiver desabilitado no momento.

    --disable-all-logs

    Um parâmetro opcional que desativa todos os registros em log do AWS IoT. Use esse parâmetro para desabilitar o registro em log se ele estiver habilitado no momento.

  2. Use o comando set-v2-logging-level para configurar o registro em log específico de recursos para um grupo de objetos.

    aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=thing_group_name \ --log-level log_level
    --log-target

    O tipo e o nome do recurso para o qual você está configurando o registro em log. O valor target_type deve ser um dos seguintes: THING_GROUP | CLIENT_ID | SOURCE_IP |PRINCIPAL_ID. O valor do parâmetro-alvo de log pode ser texto, como mostrado no exemplo de comando anterior, ou uma string JSON, como o exemplo a seguir.

    aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \ --log-level log_level
    --log-level

    O nível de registro em log usado ao gerar logs para o recurso especificado. Os valores válidos são: DEBUG, INFO, ERROR, WARN e DISABLED

    aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=ClientId1 \ --log-level DEBUG
  3. Use o comando list-v2-logging-levels para listar os níveis de registro em log configurados no momento.

    aws iot list-v2-logging-levels
  4. Use o comando delete-v2-logging-level para excluir um nível de registro em log específico de recursos, conforme os exemplos seguintes.

    aws iot delete-v2-logging-level \ --target-type "THING_GROUP" \ --target-name "thing_group_name"
    aws iot delete-v2-logging-level \ --target-type=CLIENT_ID --target-name=ClientId1
    --targetType

    O valor target_type deve ser um dos seguintes: THING_GROUP | CLIENT_ID | SOURCE_IP |PRINCIPAL_ID.

    --targetName

    O nome do grupo de objetos do qual remover o nível de registro em log.

Depois que habilitar o registro em log, acesse Visualização de logsAWS IoT no console do CloudWatch para saber mais sobre como visualizar as entradas de log.

Níveis de log

Esses níveis de log determinam os eventos que são registrados em log e se aplicam aos níveis de log padrão e de recursos específicos.

ERRO

Qualquer erro que cause a falha de uma operação.

Os logs incluem apenas informações do tipo ERRO.

WARN

Tudo que possa causar inconsistências no sistema, mas que não cause falha na operação.

Os logs incluem informações dos tipos ERRO e AVISO.

INFORMAÇÕES

Informações de alto nível sobre o fluxo das objetos.

Os logs incluem informações dos tipos INFORMAÇÕES, ERRO e AVISO.

DEBUG

Informações que podem ser úteis ao depurar um problema.

Os logs incluem informações dos tipos DEBUG, INFORMAÇÕES, ERRO e AVISO.

DISABLED

Todos os registros são desativados.