Como criar, configurar e solucionar problemas de um filtro de assinatura para o Kinesis usando o console do CloudWatch?

7 minuto de leitura
0

Quero usar o console do Amazon CloudWatch para criar um filtro de assinatura para transmitir meus logs do Amazon CloudWatch para o Amazon Kinesis.

Breve descrição

Use um filtro de assinatura para enviar logs do CloudWatch quase em tempo real para a mesma conta ou para destinos entre contas do Kinesis ou do Amazon Kinesis Data Firehose. O console do CloudWatch Logs oferece suporte à configuração de destino e de instalação.

Para informações sobre como usar a sintaxe de padrões de filtro para configurar um filtro de assinatura, consulte Filter and pattern syntax (Sintaxe de filtro e padrão).

Resolução

Configuração de assinatura para um stream de dados do Kinesis na mesma conta ou na conta atual

Observação: a região da AWS para o grupo de logs do CloudWatch e o destino do Kinesis devem ser os mesmos.

Antes de criar sua assinatura, conclua as seguintes ações:

Para criar um perfil do IAM personalizado e uma política de perfil, conclua as seguintes etapas:

1.    Abra o console do IAM com seu usuário que tem permissões de administrador.

2.    No painel de navegação, selecione Policies (Políticas).

3.    No painel de conteúdo, escolha Create policy (Criar política).

4.    Insira o seguinte documento de política de permissões de perfil na guia JSON. Substitua REGION, ACCOUNT_ID, AND STREAM_NAME pelos seus próprios detalhes:

{
  "Statement": \[{
    "Effect": "Allow",
    "Action": "kinesis:PutRecord",
    "Resource": "arn:aws:kinesis:REGION:ACCOUNT\_ID:stream/STREAM\_NAME"
  }\]
}

5.    Abra o console do IAM.

6.    No painel de navegação, escolha Roles (Funções) e depois Create role (Criar perfil).

7.    Escolha o tipo de perfil Custom trust policy (Política de confiança personalizada).

8.    Na seção Custom trust policy (Política de confiança personalizada), insira ou cole a política de confiança personalizada do perfil. Veja o exemplo de política de confiança a seguir:

{
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "Service": "logs.region.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringLike": {
        "aws:SourceArn": "arn:aws:logs:REGION:ACCOUNT\_ID:\*"
      }
    }
  }
}

9.    Escolha Next (Avançar).

10.    Selecione a política personalizada do IAM que você criou na etapa 4.

11.    Selecione Next (Avançar) e depois Create a Role (Criar um perfil).

Depois de criar o fluxo do Kinesis e o perfil do IAM, crie o filtro de assinatura:

1.    Abra o console do CloudWatch.

2.    Escolha Grupo de logs.

3.    Escolha Ação (Action), Subscription Filters (Filtros de Assinatura).

4.    Para configurar o destino, escolha Create Kinesis Subscription Filter (Criar filtro de assinatura do Kinesis).

5.    Escolha Current Account (Conta Atual).

6.    Selecione seu fluxo de dados do Kinesis na lista suspensa.

7.    Selecione o perfil do IAM que você criou.

8.    Escolha o Método de distribuição:
Por fluxo de log:
isso verifica se os consumidores downstream podem agregar eventos de logs por fluxo de logs, mas pode ser menos eficiente. Esse método também pode gerar custos de streaming mais altos, pois exige mais fragmentos.
Aleatória: isso distribui a carga entre os fragmentos de stream do Kinesis, mas os consumidores downstream não podem agregar eventos de logs por fluxo de log.

9.    Configurar formato e filtros de log:
Selecione o formato do log. O formato pode ser Amazon VPC Flow Logs, AWS CloudTrail ou AWS Lambda para logs publicados pela Amazon VPC, pelo CloudTrail ou pelo Lambda. Ou, você pode escolher JSON, Delimitado por espaço ou Outro, dependendo dos eventos de log recebidos.
Defina o padrão de filtro na seção Subscription filter pattern (Padrão de filtro de assinatura).
Insira um nome para seu filtro de assinatura.

10.    Verifique seu padrão com os dados de eventos de log existentes.

11.    Depois de verificar, escolha Iniciar streaming.

12.    (Opcional) Valide o fluxo de eventos de log para verificar se seu fluxo de dados funciona.

Configuração para um destino de fluxo de dados do Kinesis entre contas

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Você pode entregar eventos do CloudWatch Logs para fluxos de dados do Kinesis em diferentes contas e regiões da AWS. Para fazer isso, configure o compartilhamento de dados de log entre contas com assinaturas e especifique a região.

No exemplo a seguir, os logs do CloudWatch na região us-east-1 são entregues ao fluxo de dados do Kinesis de outro usuário da AWS em us-west-2. O ID da conta do destinatário dos dados de log é 222222222222 e o ID da conta do remetente dos dados de registro é 111111111111.

Crie um fluxo de dados de destino na conta do destinatário 222222222222

Crie um fluxo de dados de destino no Kinesis na conta do destinatário dos dados com um perfil do IAM e uma política de confiança.

Crie um filtro de assinatura na conta de origem 111111111111

Para criar o filtro de assinatura, conclua as seguintes etapas:

1.    Selecione o grupo de logs.

2.    Escolha Ação (Action), Subscription Filters (Filtros de Assinatura).

3.    Para selecionar o destino, escolha Create (Criar) e, em seguida, Create Kinesis Subscription Filter (Criar filtro de assinatura do Kinesis).

4.    Escolha Another Account (Outra conta).

5.    Para um destino entre contas do Kinesis ou do Kinesis Data Firehose, forneça o ARN de destino.

6.    Escolha o Método de distribuição:
Por fluxo de log: isso verifica se os consumidores downstream podem agregar eventos de logs por fluxo de logs, mas pode ser menos eficiente. Esse método também pode gerar custos de streaming mais altos, pois exige mais fragmentos.
Aleatória: isso distribui a carga entre os fragmentos de stream do Kinesis, mas os consumidores downstream não podem agregar eventos de logs por fluxo de log.

7.    Configurar formato e filtros de log:
Selecione o formato do log. O formato pode ser Amazon VPC Flow Logs, CloudTrail ou AWS Lambda para logs publicados pela Amazon VPC, pelo CloudTrail ou pelo Lambda. Ou, você pode escolher JSON, Delimitado por espaço ou Outro, dependendo dos eventos de log recebidos.
Defina o padrão de filtro na seção Subscription filter pattern (Padrão de filtro de assinatura).
Insira um nome para seu filtro de assinatura.

8.    Verifique seu padrão com os dados de eventos de log existentes.

9.    Depois de verificar, escolha Iniciar streaming.

10.    (Opcional) Valide o fluxo de eventos de log para verificar se seu fluxo de dados funciona.

Solução de problemas

  • Certifique-se de que seu fluxo do Kinesis esteja no estado Ativo. Você pode ver o fluxo no console do Kinesis ou usar a chamada da API DescribeStream.
  • Verifique se o grupo de logs do CloudWatch e as regiões do fluxo de dados do Kinesis são iguais.
  • Certifique-se de que haja um perfil do IAM que tenha permissões de confiança para logs.yourregion.amazonaws.com e permita kinesis:putrecords.
  • Verifique se as regiões e os recursos na política do IAM estão corretos.
  • Certifique-se de não selecionar Kinesis Firehose ao configurar um filtro de assinatura para o fluxo de dados do Kinesis.
  • Depois de iniciar o streaming, verifique as métricas do filtro de assinatura para confirmar se o padrão do filtro é válido e corresponde aos eventos de log recebidos. Analise as seguintes 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.
  • Verifique se não há erros ao transmitir eventos de log para o seu destino. Analise as seguintes métricas: 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 indicam que o CloudWatch Logs foi limitado ao encaminhar dados ao destino da assinatura.
  • Se você tiver um fluxo dedicado do Kinesis, verifique as métricas do fluxo para confirmar a funcionalidade.
  • Para problemas com o log entre contas, consulte Troubleshooting your CloudWatch cross-account setup (Solução de problemas na configuração de várias contas do CloudWatch).
AWS OFICIAL
AWS OFICIALAtualizada há um ano