AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Monitoramento com logs do AWS IoT Greengrass
O AWS IoT Greengrass consiste no serviço em nuvem e no software do AWS IoT Greengrass Core. O software AWS IoT Greengrass Core pode gravar logs no Amazon CloudWatch e no sistema de arquivos local do dispositivo de núcleo. As funções e conectores do Lambda executados no núcleo também podem gravar logs no CloudWatch Logs e no sistema de arquivos local. Você pode usar os logs para monitorar eventos e solucionar problemas. Todas as entradas de log do AWS IoT Greengrass incluem um time stamp, nível de log e informações sobre o evento. As alterações nas configurações de registro em log entram em vigor após a implantação do grupo.
O registro é configurado no nível do grupo. Para obter as etapas que mostram como configurar o registro em log para um grupo do Greengrass, consulte Configurar o registro em log para o AWS IoT Greengrass.
Acessando logs do CloudWatch Logs
Se você configurar o registro em log do CloudWatch, você poderá visualizar os logs na página Logs do console do Amazon CloudWatch. Grupos de log para logs do AWS IoT Greengrass usam as seguintes convenções de nomenclatura:
/aws/greengrass/GreengrassSystem/greengrass-system-component-name
/aws/greengrass/Lambda/aws-region
/account-id
/lambda-function-name
Cada grupo de log contém fluxos de log que usam a seguinte convenção de nomenclatura:
date
/account-id
/greengrass-group-id
/name-of-core-that-generated-log
As seguintes considerações se aplicam ao usar o CloudWatch Logs::
-
Logs são enviados ao CloudWatch Logs com um número limitado de novas tentativas caso não haja conexão com a Internet. Depois que as novas tentativas são esgotadas, o evento é descartado.
-
Transação, memória e outras limitações se aplicam. Para ter mais informações, consulte Limitações de registro em log.
-
Sua função de grupo do Greengrass deve permitir que o AWS IoT Greengrass escreva para o CloudWatch Logs. Para conceder permissões, incorpore a seguinte política em linha em sua função de grupo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
nota
Você pode conceder acesso mais granular a seus recursos de log. Para obter mais informações, consulte Usando políticas baseadas em identidade (políticas do IAM) para o CloudWatch Logs no Guia do usuário do Amazon CloudWatch.
A função do grupo é um perfil do IAM que você cria e associa ao grupo do Greengrass. É possível usar o console ou a API do AWS IoT Greengrass para gerenciar a função do grupo.
- Como usar o console
-
No painel de navegação do console de AWS IoT, em Gerenciar, expanda Dispositivos Greengrass e, em seguida selecione Grupos (V1).
Selecione o grupo de destino.
-
Selecione Visualizar configurações . Em Função do grupo, você pode visualizar, associar ou desassociar a função do grupo.
Para saber as etapas que mostram como associar a função do grupo, consulte função do grupo.
- Uso da CLI
-
-
Para localizar a função do grupo, use o comando get-associated-role.
-
Para associar a função do grupo, use o comando associate-role-to-group.
-
Para remover a função do grupo, use o comando disassociate-role-from-group.
Para saber como obter o ID do grupo para usar com esses comandos, consulte Obter o ID do grupo.
-
Acessar os logs do sistema de arquivos
Se você configurar o registro em log de sistema de arquivos, os arquivos de log são armazenados em
no dispositivo de núcleo. A estrutura de diretório a seguir é de alto nível:greengrass-root
/ggc/var/log
greengrass-root
/ggc/var/log
- crash.log
- system
- log files for each Greengrass system component
- user
- region
- account-id
- log files generated by each user-defined Lambda function
- aws
- log files generated by each connector
nota
Por padrão, greengrass-root
é o diretório /greengrass
. Caso um diretório de gravação seja configurado, os logs estão nesse diretório.
As seguintes considerações se aplicam ao usar logs de sistema de arquivos:
-
É necessário ter permissões raiz para ler os logs do AWS IoT Greengrass no sistema de arquivos.
-
O AWS IoT Greengrass oferece suporte ao rodízio baseado em tamanho e à limpeza automática quando a quantidade dos dados de log está perto do limite configurado.
-
O arquivo
crash.log
está disponível apenas no sistema de arquivos de logs. Esse log não está gravado no CloudWatch Logs. -
Limitações de uso de disco se aplicam. Para ter mais informações, consulte Limitações de registro em log.
nota
Os logs do software do AWS IoT Greengrass Core v1.0 são armazenados no diretório
.greengrass-root
/var/log
Configuração de registro em log padrão
Se as configurações de registro em log não estiverem explicitamente configuradas, o AWS IoT Greengrass usará a seguinte configuração de registro em log padrão após a primeira implantação do grupo.
- Componentes do sistema do AWS IoT Greengrass
-
-
Digite -
FileSystem
-
Componente -
GreengrassSystem
-
Nível -
INFO
-
Espaço -
128 KB
-
- Funções do Lambda definidas pelo usuário
-
-
Digite -
FileSystem
-
Componente -
Lambda
-
Nível -
INFO
-
Espaço -
128 KB
-
nota
Antes da primeira implantação, apenas os componentes do sistema gravam logs ao sistema de arquivos porque não há funções do Lambda definidas pelo usuário que são implantadas.
Configurar o registro em log para o AWS IoT Greengrass
Você pode usar o console do AWS IoT ou as APIs do AWS IoT Greengrass para configurar o registro em log do AWS IoT Greengrass.
nota
Para permitir que o AWS IoT Greengrass grave logs no CloudWatch Logs, sua função de grupo deve permitir as ações do CloudWatch Logs necessárias.
Configurar o registro em log (console)
Você pode configurar o registro de log na página Settings (Configurações) do grupo.
No painel de navegação do console de AWS IoT, em Gerenciar, expanda Dispositivos Greengrass e, em seguida selecione Grupos (V1).
-
Selecione o grupo no qual você deseja configurar o registro em log.
-
Na página de configuração do grupo, selecione a guia Logs.
-
Selecione o registro local, da seguinte forma:
-
Para configurar o registro em log do CloudWatch para Configuração do CloudWatch logs, selecione Editar.
-
Para configurar o registro do sistema de arquivo, para Local logs configuration (Configuração de registro local), selecione Edit (Editar).
Você pode configurar o registro de um local ou em ambos os locais.
-
-
No modal de configuração de edição de logs, selecione o nível de logs do sistema Greengrass ou o nível de logs das funções do usuário do Lambda. Você pode escolher um componente ou ambos os componentes.
-
Selecione o nível mais baixo de eventos que você deseja registrar. Os eventos abaixo desse limite serão excluídos e não serão armazenados.
-
Selecione Salvar. As alterações entrarão em vigor após a implantação do grupo.
Configurar o registro em log (API)
Você pode usar as APIs do registrador do AWS IoT Greengrass para configurar o registro em log de forma programática. Por exemplo, use a ação CreateLoggerDefinition
para criar uma definição de registrador com base em uma carga útil LoggerDefinitionVersion
, que usa a seguinte sintaxe:
{ "Loggers": [ { "Id": "string", "Type": "FileSystem|AWSCloudWatch", "Component": "GreengrassSystem|Lambda", "Level": "DEBUG|INFO|WARN|ERROR|FATAL", "Space": "integer" }, { "Id": "string", ... } ] }
LoggerDefinitionVersion
é um conjunto de um ou mais objetos de Logger
que tem as seguintes propriedades:
Id
-
Um identificador de registrador.
Type
-
O mecanismo de armazenamento para eventos de log. Quando o
AWSCloudWatch
é usado, os eventos de log são enviados para o CloudWatch Logs. QuandoFileSystem
é usado, os eventos de log são armazenados no sistema de arquivos local.Valores válidos:
AWSCloudWatch
,FileSystem
Component
-
A origem do evento de log. Quando
GreengrassSystem
é usado, os eventos de componentes do sistema Greengrass são registrados em log. QuandoLambda
é usado, os eventos das funções do Lambda definidos pelo usuário são registrados em log.Valores válidos:
GreengrassSystem
,Lambda
Level
-
O limiar no nível de log. Os eventos de log que estiverem abaixo desse limite serão excluídos e não serão armazenados.
Valores válidos:
DEBUG
,INFO
(recomendado),WARN
,ERROR
,FATAL
Space
-
A quantidade máxima de armazenamento local, em KB, a ser usado para armazenamento de logs. Este campo é aplicável somente quando
Type
é definido comoFileSystem
.
Exemplo de configuração
O exemplo a seguir LoggerDefinitionVersion
especifica uma configuração de registro de log que:
-
Ativa o arquivo do sistema
ERROR
e superior fazendo o registro em log para o sistema AWS IoT Greengrass. -
Ativa o arquivo do sistema
INFO
e superior fazendo o registro em log para funções do Lambda definidas pelo usuário. -
Ativa o registro em log do CloudWatch
INFO
(e superior) para funções do Lambda definidas pelo usuário.
{ "Name": "LoggingExample", "InitialVersion": { "Loggers": [ { "Id": "1", "Component": "GreengrassSystem", "Level": "ERROR", "Space": 10240, "Type": "FileSystem" }, { "Id": "2", "Component": "Lambda", "Level": "INFO", "Space": 10240, "Type": "FileSystem" }, { "Id": "3", "Component": "Lambda", "Level": "INFO", "Type": "AWSCloudWatch" } ] } }
Depois de criar uma versão de definição de registrador, você pode usar o ARN da versão para criar uma versão de grupo antes de implantar o grupo.
Limitações de registro em log
O AWS IoT Greengrass apresenta as seguintes limitações de registro em log.
Transações por segundo
Quando o registro em log no CloudWatch é habilitado, o componente de registro em log cria lotes de eventos de log localmente antes de enviá-los ao CloudWatch, de modo que você possa criar um registro a uma taxa maior que cinco solicitações por segundo em cada fluxo de logs.
Memória
Se o AWS IoT Greengrass for configurado para enviar logs ao CloudWatch e uma função do Lambda registrar mais de 5 MB/segundo por um período prolongado, o pipeline de processamento interno acabará sendo preenchido. O pior caso teórico é 6 MB por função do Lambda.
Distorção do relógio
Quando o registro em log no CloudWatch é habilitado, o componente de registro assina solicitações no CloudWatch usando o processo normal do Signature versão 4. Se o horário do sistema no dispositivo do núcleo AWS IoT Greengrass ficar fora de sincronia por mais de 15 minutos, as solicitações serão rejeitadas.
Uso do disco
Use a fórmula a seguir para calcular a quantidade total máxima de uso do disco para registro.
greengrass-system-component-space
* 8 // 7 if automatic IP detection is disabled
+ 128KB // the internal log for the local logging component
+ lambda-space
* lambda-count
// different versions of a Lambda function are treated as one
Em que:
greengrass-system-component-space
-
A quantidade máxima de armazenamento local para logs de componente de sistema do AWS IoT Greengrass.
lambda-space
-
A quantidade máxima de armazenamento local para logs de função do Lambda.
lambda-count
-
O número de funções do Lambda implantadas.
Perda de log
Se o dispositivo do núcleo AWS IoT Greengrass estiver configurado para registrar somente no CloudWatch e não houver conexão com a Internet, você não terá como recuperar os logs que estão na memória no momento.
Quando as funções do Lambda forem encerradas (por exemplo, durante a implantação), alguns segundos dos logs não serão gravados no CloudWatch.
Logs do CloudTrail
O AWS IoT Greengrass é executado com o AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, uma função ou um serviço da AWS no AWS IoT Greengrass. Para ter mais informações, consulte Registrar em log chamadas de API do AWS IoT Greengrass com o AWS CloudTrail.