Como soluciono problemas de registro em log entre contas no CloudWatch?

Data da última atualização: 12/05/2022

Quero solucionar problemas com o registro em log entre contas usando minha conta do Amazon CloudWatch. Como posso fazer isso?

Breve descrição

Você pode enviar logs do CloudWatch em sua conta ou para outra conta da AWS quase em tempo real. O processo de compartilhar seus logs com outra conta da AWS ou de receber os logs dessas contas é chamado de registro em log entre contas. Você pode configurar o registro em log entre contas usando o stream do Amazon Kinesis ou do Amazon Kinesis Data Firehose. Outra opção é transmitir os dados para o Amazon OpenSearch usando um filtro de assinatura. O console do CloudWatch oferece suporte a todas essas opções. Para obter mais informações sobre como usar o registro em log entre contas, consulte estes artigos:

Resolução

Solucionar problemas do stream de entrega do Kinesis Data Stream/Kinesis Data Firehose como destino

1.    Verifique se o stream do Kinesis ou do Kinesis Data Firehose está em um estado ativo. Você pode visualizar o status no console do Kinesis ou usar as chamadas de API DescribeStream ou DescribeDeliveryStream.

2.    Verifique se a região do grupo de logs do CloudWatch e a região do stream de dados do Kinesis correspondem.

3.    Verifique se você criou uma função do AWS Identity and Access Management (IAM) com as permissões de confiança corretas. A função do IAM deve permitir que seus logs do CloudWatch enviem eventos de log ao stream de dados do Kinesis ou ao Kinesis Data Firehose.

Neste exemplo, a conta do destinatário dos dados de log tem um ID de conta da AWS de 999999999999. O ID da conta da AWS do remetente dos dados de log é 111111111111. Certifique-se de que a Conta 111111111111 seja permitida na política de confiança da conta do destinatário para o stream do Kinesis Data Streams ou do Kinesis Data Firehose. Este é um exemplo de política de confiança do IAM para o stream de entrega do Kinesis Data Streams ou do Kinesis Data Firehose:

{
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "Service": "logs.region.amazonaws.com"
    },
    "Condition": {
      "StringLike": {
        "aws:SourceArn": [
          "arn:aws:logs:region:sourceAccountId:*",
          "arn:aws:logs:region:recipientAccountId:*"
        ]
      }
    },
    "Action": "sts:AssumeRole"
  }
}

Este exemplo mostra uma política de função do IAM para o Kinesis Data Streams:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "kinesis:PutRecord",
      "Resource": "arn:aws:kinesis:region:999999999999:stream/RecipientStream"
    }
  ]
}
 
IAM role policy for kinesis Firehose stream.
 
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "firehose:*"
      ],
      "Resource": [
        "arn:aws:firehose:region:999999999999:*"
      ]
    }
  ]
}

4.    Verifique se as regiões e os ARNs de recursos na sua política do IAM estão corretos.

5.    Certifique-se de não selecionar o Kinesis Firehose ao configurar o filtro de assinatura para o Kinesis Data Streams.

6.    Depois de iniciar o streaming, verifique as métricas do filtro de assinatura. Confirme se o padrão de filtro é válido e corresponde aos eventos de log de entrada. Para obter mais informações, consulte Monitoramento com métricas do CloudWatch. Use estas métricas:

  • ForwardedBytes: o volume de eventos de log em bytes compactados encaminhados ao destino da assinatura.
  • ForwardedLogEvents: o número de eventos de log encaminhados para o destino da assinatura.

7.    Para confirmar se não há erros ao transmitir eventos de log ao destino, verifique essas métricas quanto a erros de destino. Você pode encontrar um ponto de dados que confirme que o evento de log recebeu um erro ao transmitir eventos de log ao destino.

  • DeliveryErrors: o número de eventos de log para os quais os logs do CloudWatch receberam um erro ao encaminhar dados para o destino da assinatura.
  • DeliveryThrottling: o número de eventos de log que os logs do CloudWatch limitaram ao encaminhar dados ao destino da assinatura.

8.    Se você tiver um stream dedicado que fornece insights sobre a funcionalidade do Kinesis Data Streams, verifique as métricas do Kinesis Data Stream ou do Kinesis Firehose. Para obter mais informações, consulte Monitoramento do serviço Amazon Kinesis Data Streams com o Amazon CloudWatch e Monitoramento do Kinesis Data Firehose usando métricas do CloudWatch.

Solucionar problemas do OpenSearch como destino

1.    Verifique se o domínio do OpenSearch permite acesso público ou acesso à VPC. Para obter mais informações sobre como criar um domínio, consulte Criação e gerenciamento de domínios do Amazon OpenSearch Service.

2.    Certifique-se de que a função do AWS Lambda tenha uma função de execução do IAM que tenha relação de confiança para lambda.amazonaws.com com esta política de função:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "es:*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:es:region:account-id:domain/target-domain-name/*"
    }
  ]
}

3.    Se o domínio OpenSearch de destino usar o acesso à VPC, verifique se a função tem a política AWSLambdaVPCAccessExecutionRole anexada.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?