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

5 minuto de leitura
0

Quero definir as configurações de log padrão para os logs do AWS IoT no AWS IoT Core para reduzir os custos e o tráfego de dados.

Breve descrição

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

É uma prática recomendada definir o log padrão em um nível de verbosidade baixo para seu AWS IoT Core e configurar o log específico de recursos para 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).

**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 níveis de log mais detalhados também gera maior tráfego de dados. É uma boa prática usar INFO ou DEBUG apenas como uma medida temporária na solução de problemas. Depois que a solução de problemas for concluída, redefina os níveis de 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 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 os comandos da AWS CLI, utilize a versão mais recente da AWS CLI.

Definir os níveis de 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 quando eles ocorrerem.

**Observação:**Se você entrar em contato com o AWS Support para obter assistência, deverá fornecer logs do AWS IoT Core para que eles solucionem o problema. Essas informações são consideradas dados do cliente e não podem ser acessadas pelo AWS Support.

1.Execute o comando da AWS CLI list-v2-logging-levels para encontrar suas configurações atuais de nível de log aplicado:

aws iot list-v2-logging-levels

Você recebe um erro NotConfiguredException se os logs do AWS IoT não estiverem configurados porque nenhum nível de log foi definido.

Se os logs do AWS IoT Core estiverem configurados, mas desativados, você receberá uma saída semelhante à seguinte:

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "DISABLED"
 }
 ]
}

2.Execute o comando a seguir para confirmar a função do AWS Identity and Access Management (IAM) atualmente configurada para os logs do AWS IoT Core:

aws iot get-v2-logging-options

Você receberá uma saída semelhante à seguinte se um perfil do IAM estiver configurado:

{
"roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
"defaultLogLevel": "DISABLED",
"disableAllLogs": false
}

**Observação:**Se não houver um perfil do IAM configurado, o AWS IoT Core não poderá enviar logs para o Amazon CloudWatch e esse recurso não estará disponível para você usar.

3.Defina o log padrão do AWS IoT Core para um dos níveis de log menos detalhados, como ERROR ou WARN. Isso pode ser feito usando o console do AWS IoT ou a AWS CLI:

**Observação:**Se você estiver solucionando um problema e não tiver atributos específicos do cliente, poderá definir temporariamente o nível de log padrão como DEBUG. Definir o nível como DEBUG gera custos e tráfego de dados significativos, dependendo do tamanho da frota e da duração que ela gastou nesse nível.

Console de AWS IoT

1.Fazer login no console do AWS IoT. **Observação:**Certifique-se de escolher a região da AWS que você deseja configurar.

2.No painel de navegação, selecione Settings.

3.Em Logs, escolha Manage Logs (Gerenciar logs).

4.Em Log role (Registrar função), escolha Create Role (Criar função). Insira um nome para a função e escolha Create (Criar).

5.Em Log level (Nível de log), escolha um dos níveis de log menos detalhados (ERROR ou WARN).

6.Escolha Update (Atualizar).

7.Abra o console do IAM.

8.No painel de navegação, selecione Roles (Funções).

9.Insira o nome da função de log que você criou na caixa de pesquisa e selecione o perfil.

10.Em Summary (Resumo), anote o ARN do perfil de log. Será semelhante a arn:aws:iam::123456789012:role/service-role/iot-log-role.

AWS CLI

1.Crie um perfil do IAM com uma política específica do IAM para ser usada em seu serviço de log do AWS IoT Core.

2.Execute o comando a seguir para definir o nível de log padrão como WARN:

aws iot set-v2-logging-options \
 --role-arn arn:aws:iam::123456789012:role/service-role/iot-log-role \
 --default-log-level WARN

**Observação:**Neste exemplo, substitua --role-arn pelo ARN do perfil do IAM que você criou. Substitua WARN pelo nível de log que você deseja definir como o nível padrão.

3.Execute o comando a seguir para confirmar se as alterações são refletidas em seus níveis de log:

aws iot list-v2-logging levels

A saída é semelhante à seguinte mensagem:

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "WARN"
 }
 ]
}

4.Execute o comando a seguir para confirmar que as alterações estão refletidas em suas opções de log:

aws iot list-v2-logging-options

A saída é semelhante à seguinte mensagem:

{
 "roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
 "defaultLogLevel": "WARN",
 "disableAllLogs": false
}

Monitorar os logs 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 “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

Monitoramento do AWS IoT

Como configuro os níveis de log dinamicamente para recursos específicos no 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