Gravando no Amazon Data Firehose usando registros CloudWatch - Amazon Data Firehose

O Amazon Data Firehose era conhecido anteriormente como Amazon Kinesis Data Firehose

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

Gravando no Amazon Data Firehose usando registros CloudWatch

CloudWatch Os eventos de registros podem ser enviados para o Firehose usando filtros de CloudWatch assinatura. Para obter mais informações, consulte Filtros de assinatura com o Amazon Data Firehose.

CloudWatch Os eventos de registros são enviados para o Firehose no formato gzip compactado. Se você quiser entregar eventos de log descompactados para destinos do Firehose, você pode usar o recurso de descompactação no Firehose para descompactar automaticamente os registros. CloudWatch

Importante

Atualmente, o Firehose não suporta a entrega de CloudWatch registros para o destino do Amazon OpenSearch Service porque a Amazon CloudWatch combina vários eventos de log em um registro Firehose e o Amazon OpenSearch Service não pode aceitar vários eventos de log em um registro. Como alternativa, você pode considerar o uso do filtro de assinatura do Amazon OpenSearch Service em CloudWatch registros.

Descompressão de registros CloudWatch

Se você estiver usando o Firehose para entregar CloudWatch registros e quiser entregar dados descompactados para o destino do stream do Firehose, use o Firehose Data Format Conversion (Parquet, ORC) ou o particionamento dinâmico. Você deve ativar a descompressão para seu stream do Firehose.

Você pode ativar a descompressão usando o AWS Management Console, AWS Command Line Interface ou AWS SDKs.

nota

Se você ativar o recurso de descompressão em um stream, use esse stream exclusivamente para filtros de assinaturas do CloudWatch Logs, e não para Vended Logs. Se você ativar o recurso de descompressão em um stream usado para ingerir CloudWatch registros e registros vendidos, a ingestão de registros vendidos no Firehose falhará. Esse recurso de descompressão é somente para CloudWatch registros.

Extração de mensagens após a descompressão dos registros CloudWatch

Ao ativar a descompressão, você também tem a opção de ativar a extração de mensagens. Ao usar a extração de mensagens, o Firehose filtra todos os metadados, como proprietário, grupo de registros, fluxo de registros e outros, dos registros descompactados do CloudWatch Logs e entrega somente o conteúdo dentro dos campos da mensagem. Se você estiver entregando dados para um destino do Splunk, deverá ativar a extração de mensagens para que o Splunk analise os dados. A seguir estão exemplos de saídas após a descompressão com e sem extração de mensagens.

Figura 1: Saída da amostra após a descompressão sem extração de mensagem:

{ "owner": "111111111111", "logGroup": "CloudTrail/logs", "logStream": "111111111111_CloudTrail/logs_us-east-1", "subscriptionFilters": [ "Destination" ], "messageType": "DATA_MESSAGE", "logEvents": [ { "id": "31953106606966983378809025079804211143289615424298221568", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root1\"}" }, { "id": "31953106606966983378809025079804211143289615424298221569", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root2\"}" }, { "id": "31953106606966983378809025079804211143289615424298221570", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root3\"}" } ] }

Figura 2: Saída da amostra após a descompressão com extração de mensagem:

{"eventVersion":"1.03","userIdentity":{"type":"Root1"} {"eventVersion":"1.03","userIdentity":{"type":"Root2"} {"eventVersion":"1.03","userIdentity":{"type":"Root3"}

Ativando e desativando a descompressão

Você pode ativar e desativar a descompressão usando o AWS Management Console, AWS Command Line Interface ou AWS SDKs.

Habilitando a descompressão em um novo fluxo de dados usando o AWS Management Console

Para habilitar a descompressão em um novo fluxo de dados usando o AWS Management Console
  1. Faça login AWS Management Console e abra o console do Kinesis em https://console.aws.amazon.com/kinesis.

  2. Escolha Amazon Data Firehose no painel de navegação.

  3. Escolha Create Firehose stream.

  4. Em Escolha a origem e o destino

    Origem

    A fonte do seu stream do Firehose. Escolha uma das seguintes fontes:

    • Direct PUT — Escolha essa opção para criar um stream do Firehose no qual os aplicativos produtores gravam diretamente. Para obter uma lista de AWS serviços, agentes e serviços de código aberto integrados ao Direct PUT no Firehose, consulte esta seção.

    • Stream do Kinesis: escolha essa opção para configurar um stream do Firehose que usa um stream de dados do Kinesis como fonte de dados. Em seguida, você pode usar o Firehose para ler dados facilmente de um stream de dados existente do Kinesis e carregá-los nos destinos. Para obter mais informações, consulte Gravando no Firehose usando o Kinesis Data Streams

    Destination (Destino)

    O destino do seu stream do Firehose. Escolha uma das seguintes opções:

    • Amazon S3

    • Splunk

  5. Em Firehose stream name, insira um nome para seu stream.

  6. (Opcional) Em Transformar registros:

    • Na seção Descompactar registros de origem do Amazon CloudWatch Logs, escolha Ativar descompressão.

    • Se você quiser usar a extração de mensagens após a descompactação, escolha Ativar extração de mensagens.

Habilitando a descompressão em um fluxo de dados existente usando o AWS Management Console

Se você tiver um stream do Firehose com uma função Lambda para realizar a descompressão, poderá substituí-lo pelo recurso de descompressão do Firehose. Antes de continuar, revise o código da função Lambda para confirmar se ele só executa a descompressão ou a extração de mensagens. A saída da função Lambda deve ser semelhante aos exemplos mostrados na Figura 1 ou Figura 2 na seção anterior. Se a saída for semelhante, você poderá substituir a função Lambda usando as etapas a seguir.

  1. Substitua sua função Lambda atual por esse esquema. A nova função Lambda do blueprint detecta automaticamente se os dados recebidos estão compactados ou descompactados. Ele só executa a descompressão se os dados de entrada estiverem compactados.

  2. Ative a descompressão usando a opção Firehose integrada para descompressão.

  3. Ative CloudWatch as métricas para seu stream do Firehose, caso ainda não esteja ativado. Monitore a métrica CloudWatchProcessorLambda _ IncomingCompressedData e espere até que essa métrica mude para zero. Isso confirma que todos os dados de entrada enviados para sua função Lambda estão descompactados e que a função Lambda não é mais necessária.

  4. Remova a transformação de dados do Lambda porque você não precisa mais dela para descompactar seu stream.

Desativando a descompressão usando o AWS Management Console

Para desativar a descompressão em um fluxo de dados usando o AWS Management Console

  1. Faça login AWS Management Console e abra o console do Kinesis em https://console.aws.amazon.com/kinesis.

  2. Escolha Amazon Data Firehose no painel de navegação.

  3. Escolha o stream do Firehose que você deseja editar.

  4. Na página de detalhes do stream do Firehose, escolha a guia Configuração.

  5. Na seção Transformar e converter registros, escolha Editar.

  6. Em Descompactar registros de origem do Amazon CloudWatch Logs, desmarque Ativar descompressão e escolha Salvar alterações.

Perguntas frequentes

O que acontece com os dados de origem em caso de erro durante a descompressão?

Se o Amazon Data Firehose não conseguir descompactar o registro, o registro será entregue como está (em formato compactado) para o bucket S3 de erro que você especificou durante a criação do stream do Firehose. Junto com o registro, o objeto entregue também inclui código de erro e mensagem de erro, e esses objetos serão entregues a um prefixo de bucket do S3 chamado. decompression-failed O Firehose continuará processando outros registros após uma falha na descompressão de um registro.

O que acontece com os dados de origem em caso de erro no pipeline de processamento após a descompressão bem-sucedida?

Se o Amazon Data Firehose cometer erros nas etapas de processamento após a descompactação, como particionamento dinâmico e conversão de formato de dados, o registro será entregue em formato compactado para o bucket S3 de erro que você especificou durante a criação do stream do Firehose. Junto com o registro, o objeto entregue também inclui código de erro e mensagem de erro.

Como você é informado em caso de erro ou exceção?

Em caso de erro ou exceção durante a descompactação, se você configurar o Logs, o Firehose CloudWatch registrará as mensagens CloudWatch de erro no Logs. Além disso, o Firehose envia métricas para CloudWatch métricas que você pode monitorar. Opcionalmente, você também pode criar alarmes com base nas métricas emitidas pelo Firehose.

O que acontece quando put as operações não vêm do CloudWatch Logs?

Quando puts o cliente não vem do CloudWatch Logs, a seguinte mensagem de erro é retornada:

Put to Firehose failed for AccountId: <accountID>, FirehoseName: <firehosename> because the request is not originating from allowed source types.

Quais métricas o Firehose emite para o recurso de descompressão?

O Firehose emite métricas para descompressão de cada registro. Você deve selecionar o período (1 min), a estatística (soma), o intervalo de datas para obter o número de DecompressedRecords fracassados ou bem-sucedidos ou fracassados ou DecompressedBytes bem-sucedidos. Para ter mais informações, consulte CloudWatch Métricas de descompressão de registros.