Monitoramento com logs do AWS IoT Greengrass - AWS IoT Greengrass

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 registros na Amazon CloudWatch e no sistema de arquivos local do seu dispositivo principal. As funções e conectores Lambda executados no núcleo também podem gravar registros nos CloudWatch registros 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 CloudWatch registros

Se você configurar o CloudWatch registro, poderá visualizar os registros na página Logs do CloudWatch console da Amazon. 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 considerações a seguir se aplicam quando você usa o CloudWatch Logs:

  • Os registros são enviados para o 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 AWS IoT Greengrass a gravação em registros. CloudWatch 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 Uso de políticas baseadas em identidade (políticas do IAM) para CloudWatch registros no Guia CloudWatch do usuário da Amazon.

    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
    1. No painel de navegação do console de AWS IoT, em Gerenciar, expanda Dispositivos Greengrass e, em seguida selecione Grupos (V1).

    2. Selecione o grupo de destino.

    3. 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 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 greengrass-root/ggc/var/log no dispositivo de núcleo. A estrutura de diretório a seguir é de alto nível:

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 registro não é gravado em CloudWatch Registros.

  • 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 AWS IoT Greengrass a gravação de registros em CloudWatch registros, sua função de grupo deve permitir as ações de CloudWatch registros necessárias.

Configurar o registro em log (console)

Você pode configurar o registro de log na página Settings (Configurações) do grupo.

  1. No painel de navegação do console de AWS IoT, em Gerenciar, expanda Dispositivos Greengrass e, em seguida selecione Grupos (V1).

  2. Selecione o grupo no qual você deseja configurar o registro em log.

  3. Na página de configuração do grupo, selecione a guia Logs.

  4. Selecione o registro local, da seguinte forma:

    • Para configurar o CloudWatch registro, para configuração de CloudWatch registros, escolha 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.

  5. 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.

  6. 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.

  7. 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 AWSCloudWatch usado, os eventos de registro são enviados para o CloudWatch Logs. Quando FileSystem é 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. Quando Lambda é 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 como FileSystem.

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 CloudWatch INFO (e superior) o registro em log para funções 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 login CloudWatch está ativado, o componente de registro agrupa os eventos de log localmente antes de enviá-los para CloudWatch, para que você possa fazer login a uma taxa superior a cinco solicitações por segundo por stream de log.

Memória

Se AWS IoT Greengrass estiver configurado para enviar registros para CloudWatch e uma função Lambda registrar mais de 5 MB/segundo por um período prolongado de tempo, o pipeline de processamento interno eventualmente será preenchido. O pior caso teórico é 6 MB por função do Lambda.

Distorção do relógio

Quando o login CloudWatch está ativado, o componente de registro assina solicitações CloudWatch usando o processo normal de assinatura do Signature Version 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 seu dispositivo AWS IoT Greengrass principal estiver configurado para fazer login somente CloudWatch e não houver conexão com a Internet, você não terá como recuperar os registros atualmente na memória.

Quando as funções do Lambda são encerradas (por exemplo, durante a implantação), alguns segundos de registros não são gravados. CloudWatch

CloudTrail troncos

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.