Configurar o registro em log para recursos do AWS IoT Wireless - AWS IoT Wireless

Configurar o registro em log para recursos do AWS IoT Wireless

Para configurar o registro em log de recursos do AWS IoT Wireless, use a API ou a CLI. Quando você começar a monitorar recursos do AWS IoT Wireless, é possível usar a configuração padrão. Para fazer isso, pule este tópico e avance para Monitorar o AWS IoT Wireless com o CloudWatch Logs para monitorar seus logs.

Depois de começar a monitorar os logs, é possível usar a CLI para alterar os níveis de log para uma opção mais detalhada, como fornecer informações de INFO e ERROR e ativar o registro em log para obter mais recursos.

Recursos e níveis de log do AWS IoT Wireless

Antes de usar a API ou a CLI, use a tabela a seguir para saber mais sobre os diferentes níveis de log e os recursos para os quais você pode configurar o registro em log. A tabela exibe parâmetros que você vê nos logs do CloudWatch ao monitorar recursos. A forma como você configura o registro em log para seus recursos determinará os logs que presentes no console.

Para obter informações sobre a aparência de uma amostra de logs do CloudWatch e como você pode usar esses parâmetros para registrar em log informações úteis sobre os recursos do AWS IoT Wireless, consulte Visualizar entradas de log do AWS IoT Wireless no CloudWatch.

Recursos e níveis de log
Nome Possíveis valores Descrição
logLevel

INFO, ERROR ou DISABLED

  • ERROR: exibe qualquer erro que cause a falha de uma operação. Os logs incluem somente informações de ERROR.

  • INFO: oferece informações de alto nível sobre o fluxo das objetos. Os logs incluem informações de INFO e ERROR.

  • DISABLED: desativa todos os registros em log.

resource

WirelessGateway ou WirelessDevice

O tipo do recurso, que pode ser WirelessGateway, ou WirelessDevice.

wirelessGatewayType LoRaWAN O tipo de gateway sem fio, quando resource é WirelessGateway, que é sempre LoRaWAN.
wirelessDeviceType LoRaWAN ou Sidewalk O tipo do dispositivo sem fio, quando resource é WirelessDevice, que pode ser LoRaWAN ou Sidewalk.
wirelessGatewayId - O identificador do gateway sem fio, quando resource é WirelessGateway.
wirelessDeviceId - O identificador do dispositivo sem fio, quando resource é WirelessDevice.
event Join, Rejoin, Registration, Uplink_data, Downlink_data, CUPS_Request, e Certificate O tipo de evento que está sendo registrado em log, que depende se o recurso que você está registrando em log é um dispositivo sem fio ou um gateway sem fio. Para ter mais informações, consulte Visualizar entradas de log do AWS IoT Wireless no CloudWatch.

API de registro em log do AWS IoT Wireless

É possível usar as seguintes ações de API para configurar o registro em log de recursos. A tabela também exibe um exemplo de política do IAM que você precisa criar para usar as ações de API. A seção a seguir descreve como usar as APIs para configurar níveis de log de recursos.

Ações de API de registro em log
Nome da API Descrição Exemplo de política do IAM

GetLogLevelsByResourceTypes

Retorna os níveis de log padrão atuais ou os níveis de log por tipo de recurso, que podem incluir opções de log para dispositivos sem fio ou gateways sem fio.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:GetLogLevelsByResourceTypes" ], "Resource": [ "*" ] } ] }

GetResourceLogLevel

Retorna a substituição em nível de log de um determinado identificador e tipo de recurso. O recurso pode ser um gateway sem fio ou um dispositivo sem fio.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:GetResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

PutResourceLogLevel

Define a substituição em nível de log de um determinado identificador e tipo de recurso. O recurso pode ser um gateway sem fio ou um dispositivo sem fio.

nota

Essa API tem um limite de 200 substituições em nível de log por conta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:PutResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

ResetAllResourceLogLevels

Remove as substituições em nível de log de todos os recursos, o que inclui gateways sem fio e dispositivos sem fio.

nota

Essa API não afeta os níveis de log definidos através da API UpdateLogLevelsByResourceTypes.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:ResetAllResourceLogLevels" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/*", "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/* ] } ] }

ResetResourceLogLevel

Remove a substituição em nível de log de um determinado identificador e tipo de recurso. O recurso pode ser um gateway sem fio ou um dispositivo sem fio.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:ResetResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

UpdateLogLevelsByResourceTypes

Define o nível de log padrão ou níveis de log por tipo de recurso. É possível usar essa API para opções de log para dispositivos sem fio ou gateways sem fio e controlar as mensagens de log que serão exibidas no CloudWatch.

nota

Os eventos são opcionais e o tipo de evento está atrelado ao tipo de recurso. Para ter mais informações, consulte Tipos de eventos e recursos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:UpdateLogLevelsByResourceTypes" ], "Resource": [ "*" ] } ] }

Configurar níveis de log de recursos usando a CLI

Esta seção descreve como configurar níveis de log para recursos do AWS IoT Wireless usando a API ou a AWS CLI.

Antes de usar a CLI:
  • Verifique se você criou a política do IAM para a API para a qual deseja executar o comando da CLI, conforme descrito anteriormente.

  • É necessário o nome do recurso da Amazon (ARN) do perfil que você deseja usar. Se precisar criar um perfil a ser usado para o registro em log, consulte Criar um perfil e uma política de log para o AWS IoT Wireless.

Por que usar o AWS CLI

Por padrão, se criar um perfil do IAM, IoTWirelessLogsRole, como descrito em Criar um perfil e uma política de log para o AWS IoT Wireless, você verá os logs do CloudWatch no AWS Management Console com nível de log padrão de ERROR. Para alterar o nível de log padrão para todos os recursos, ou para recursos específicos, use a API de registro em log AWS IoT Wireless ou a CLI.

Como usar a AWS CLI

As ações de API podem ser categorizadas nos tipos a seguir, dependendo se você deseja configurar os níveis de log para todos os recursos ou para recursos específicos:

  • As ações de API GetLogLevelsByResourceTypes e UpdateLogLevelsByResourceTypes podem recuperar e atualizar os níveis de log de todos os recursos da sua conta que sejam de um tipo específico, como um gateway sem fio ou um dispositivo LoRaWAN ou Sidewalk.

  • As ações de API GetResourceLogLevel, PutResourceLogLevel e ResetResourceLogLevel podem recuperar, atualizar e redefinir os níveis de log de recursos individuais a serem especificados usando um identificador de recurso.

  • A ação de API ResetAllResourceLogLevels redefine a substituição em nível de log para null para todos os recursos para os quais você especificou uma substituição em nível de log usando a API PutResourceLogLevel.

Como usar a CLI para configurar o registro em log de recursos específicos para o AWS IoT
nota

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.

  1. Por padrão, todos os recursos têm o nível de log definido como ERROR. Para definir os níveis de log padrão ou os níveis de log por tipos de recursos para todos os recursos da sua conta, use o comando update-log-levels-by-resource-types. O seguinte exemplo demonstra como você pode criar um arquivo JSON, Input.json, e usá-lo como uma entrada para o comando CLI. É possível usar esse comando para desativar seletivamente o registro em log ou substituir o nível de log padrão para tipos específicos de recursos e eventos.

    { "DefaultLogLevel": "INFO", "WirelessDeviceLogOptions": [ { "Type": "Sidewalk", "LogLevel": "INFO", "Events": [ { "Event": "Registration", "LogLevel": "DISABLED" } ] }, { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "Join", "LogLevel": "DISABLED" }, { "Event": "Rejoin", "LogLevel": "ERROR" } ] } ] "WirelessGatewayLogOptions": [ { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "CUPS_Request", "LogLevel": "DISABLED" }, { "Event": "Certificate", "LogLevel": "ERROR" } ] } ] }

    onde:

    WirelessDeviceLogOptions

    A lista de opções de log de um dispositivo sem fio. Cada opção de log inclui o tipo de dispositivo sem fio (Sidewalk ou LoRaWAN) e uma lista de opções de log de eventos do dispositivo sem fio. Cada opção de log de eventos do dispositivo sem fio pode, opcionalmente, incluir o tipo de evento e seu nível de log.

    WirelessGatewayLogOptions

    A lista de opções de log de um gateway sem fio. Cada opção de log inclui o tipo de gateway sem fio (LoRaWAN) e uma lista de opções de log de eventos do gateway sem fio. Cada opção de log de eventos do gateway sem fio pode, opcionalmente, incluir o tipo de evento e seu nível de log.

    DefaultLogLevel

    O nível de log a ser usado para todos os seus recursos. Os valores válidos são: ERROR, INFO e DISABLED. O valor padrão é INFO.

    LogLevel

    O nível de log que você deseja usar para tipos de recursos e eventos individuais. Esses níveis de log substituem o nível de log padrão, como o nível de log INFO para o gateway LoRaWAN, e os níveis de log DISABLED e ERROR para os dois tipos de eventos.

    Execute o seguinte comando para fornecer o arquivo Input.json como entrada para o comando. Esse comando não retorna nenhuma saída.

    aws iotwireless update-log-levels-by-resource-types \ --cli-input-json Input.json

    Se quiser remover as opções de log para dispositivos sem fio e gateways sem fio, execute o seguinte comando.

    { "DefaultLogLevel":"DISABLED", "WirelessDeviceLogOptions": [], "WireslessGatewayLogOptions":[] }
  2. O comando update-log-levels-by-resource-types não retorna nenhuma saída. Use o comando get-log-levels-by-resource-types para recuperar informações de registro em log específicas do recurso. O comando retorna o nível de log padrão e as opções de log do dispositivo sem fio e do gateway sem fio.

    nota

    O comando get-log-levels-by-resource-types não pode recuperar diretamente os níveis de log no console do CloudWatch. Você pode usar o comando get-log-levels-by-resource-types para obter as informações mais recentes de nível de log especificadas para seus recursos usando o comando update-log-levels-by-resource-types.

    aws iotwireless get-log-levels-by-resource-types

    Ao executar o comando a seguir, ele retorna as informações de registro em log mais recentes especificadas com update-log-levels-by-resource-types. Por exemplo, se você remover as opções de log do dispositivo sem fio, a execução de get-log-levels-by-resource-types retornará esse valor como null.

    { "DefaultLogLevel": "INFO", "WirelessDeviceLogOptions": null, "WirelessGatewayLogOptions": [ { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "CUPS_Request", "LogLevel": "DISABLED" }, { "Event": "Certificate", "LogLevel": "ERROR" } ] } ] }
  3. Para controlar níveis de log de gateways sem fio individuais ou recursos de dispositivos sem fio, utilize os seguintes comandos da CLI:

    Por exemplo, ao usar essas CLIs, digamos que você tenha um grande número de dispositivos ou gateways sem fio em sua conta que estão sendo registrados. Se quiser solucionar erros em apenas alguns dos dispositivos sem fio, você pode desativar o registro em log de todos os dispositivos sem fio definindo o DefaultLogLevel como DISABLED e usar o put-resource-log-level para definir LogLevel como ERROR somente nesses dispositivos da sua conta.

    aws iotwireless put-resource-log-level \ --resource-identifier --resource-type WirelessDevice --log-level ERROR

    Neste exemplo, o comando define o nível de log como ERROR apenas para o recurso de dispositivo sem fio especificado e os logs de todos os outros recursos são desativados. Esse comando não retorna nenhuma saída. Para recuperar essas informações e verificar se os níveis de log foram definidos, use o comando get-resource-log-level.

  4. Na etapa anterior, depois de depurar o problema e solucionar o erro, você pode executar o comando reset-resource-log-level para redefinir o nível de log desse recurso como null. Caso tenha usado o comando put-resource-log-level para definir a substituição de nível de log para mais de um recurso de gateway ou dispositivo sem fio, como para solucionar erros em vários dispositivos, você poderá redefinir as substituições em nível de log como null para todos esses recursos usando o comando reset-all-resource-log-levels.

    aws iotwireless reset-all-resource-log-levels

    Esse comando não retorna nenhuma saída. Para recuperar as informações de registro em log dos recursos, execute o comando get-resource-log-level.

Próximos Passos

Você aprendeu a criar o perfil de registro em log e usar a API do AWS IoT Wireless para configurar o registro em log para seus recursos do AWS IoT Core for LoRaWAN. Em seguida, para aprender mais sobre como monitorar suas entradas de log , acesse Monitorar o AWS IoT Wireless com o CloudWatch Logs.