Como envio logs de fluxo da VPC para o Splunk usando o Amazon Kinesis Firehose?
Quero melhorar a integração de dados da AWS com o Splunk ao enviar dados de fontes da AWS para um cluster do Splunk.
Resolução
Observação: o Kinesis Data Firehose não oferece suporte a Application Load Balancers ou Network Load Balancers. Em vez disso, use um Classic Load Balancer. Certifique-se de permitir sessões persistentes baseadas na duração com a expiração de cookies desativada. Para obter mais informações sobre como solucionar problemas de fluxo de entrega com endpoints do Splunk, consulte Dados não entregues ao Splunk.
Pré-requisitos
- Configure uma instância acessível do Splunk HEC HTTP Event Collector (HEC). Para obter mais informações, consulte Splunk Enterprise na AWS e Set up and use HTTP Event Collector in Splunk Web no site da Splunk.
- Configure as entradas de dados do Splunk com o HEC no Splunk Web.
- Crie um novo endpoint do HEC com um novo token para configurar o fluxo de dados. Para obter mais informações, consulte Set up and use HTTP Event Collector in Splunk Web (no site do Splunk). Certifique-se de escolher a opção Ativar confirmação do indexador.
- Instale o Splunk add-on for Amazon Kinesis Data Firehose do site do Splunkbase.
Crie um fluxo de entrega do Kinesis Data Firehose
1. Crie seu fluxo de entrega. Em Origem, escolha Direct PUT.
2. Em Destino, escolha Splunk.
3. Insira um nome de fluxo de entrega.
Configure a transformação de registros com o AWS Lambda
1. Configure a transformação de registros.Observação: em Transformar registros de origem com o AWS Lambda, escolha Ativado para Transformação de registros. O CloudWatch envia os logs como arquivos .gzip compactados, e o Amazon Kinesis deve extrair esses arquivos antes que você possa usá-los.
2. Em Função do Lambda, escolha Criar novo.
3. Na janela Escolher esquema do Lambda, em Esquema do Lambda, escolha Processador de logs Kinesis Firehose CloudWatch.
4. Escolha a nova guia que se abre em seu navegador para criar a nova função do Lambda:
Em Nome, insira um nome para a função do Lambda.
Em Perfil, escolha Criar perfil personalizado.
5. Escolha a nova guia que se abre em seu navegador para criar um novo perfil do AWS Identity and Access Management (IAM). Em Nome do perfil, certifique-se de que o nome seja lambda_basic_execution.
6. Escolha Permitir para criar o perfil e, em seguida, retorne à página de configuração da função do Lambda.
7. Escolha Criar função.
8. Para evitar que a função atinja o tempo limite, aumente o Tempo limite para 1 minuto em relação aos 3 segundos padrão.
9. Escolha Salvar.
Finalize o fluxo de entrega do Kinesis Data Firehose
1. Abra o console do Amazon Kinesis.
2. No painel de navegação, escolha Data Firehose.
3. Para seu fluxo de entrega, escolha Função do Lambda e, no menu suspenso, escolha o nome da sua nova função do AWS Lambda.
4. Em Configurações de destino, insira os detalhes do Splunk HEC, incluindo o endpoint do Splunk HEC que você criou.
Observação: você deve encerrar o endpoint do Splunk HEC com um certificado SSL válido. Use o nome do host DNS correspondente para se conectar ao seu endpoint do HEC. O formato do endpoint do cluster é https://YOUR-ENDPOINT.splunk.com:8088.
5. Para o tipo de endpoint do Splunk, escolha Endpoint bruto e, em seguida, insira o token de autenticação.
6. Escolha Próximo.
7. (Opcional) Escolha um bucket existente do Amazon Simple Storage Service (Amazon S3) ou crie um novo para fazer backup dos eventos que falharam ou de todos os eventos. Certifique-se de definir as configurações relacionadas ao Amazon S3, como condições de buffer, configurações de compactação e criptografia e opções de registro em log de erros, no assistente do fluxo de entrega.
8. Em Perfil do IAM, escolha Criar novo.
9. Na guia que se abre, insira um Nome do perfil e escolha Permitir.
10. Escolha Próximo.
11. Escolha Criar fluxo de entrega.
Configure logs de fluxo do Amazon VPC
Observação: se você tiver um log de fluxo do Amazon VPC, vá para a próxima seção, Crie uma assinatura do Amazon CloudWatch Logs. Se você não tiver um log de fluxo da VPC, conclua as seguintes etapas:
1. Abra o console do CloudWatch.
2. No painel de navegação, escolha Logs.
3. Em Ações, escolha Criar grupo de logs.
4. Insira um Nome do grupo de logs.
5. Escolha Criar grupo de logs.
6. Abra o console do Amazon VPC.
7. No painel de navegação, em Nuvem privada virtual, escolha Suas VPCs.
8. No painel de conteúdo, selecione sua VPC.
9. Escolha a visualização Logs de fluxo.
10. Escolha Criar log de fluxo:
- Em Filtrar, escolha Tudo.
- Em Grupo de logs de destino, escolha o grupo de logs que você acabou de criar.
- Para o Perfil do IAM, escolha um perfil do IAM que permita que sua Amazon VPC publique logs no CloudWatch. Se você não tiver um perfil do IAM adequado, em Perfil do IAM, escolha Configurar permissões e, em seguida, escolha Criar um novo perfil do IAM. Mantenha as configurações padrão.
- Escolha Permitir para criar e associar o perfil VPCFlowLogs ao grupo de logs de destino.
11. Escolha Criar.
12. Estabeleça um feed em tempo real do grupo de logs para seu fluxo de entrega:
- Para instruções do AWS Lambda, consulte Acessar o Amazon CloudWatch Logs para o AWS Lambda.
- Para obter instruções do Amazon OpenSearch Service, consulte Fazer uma transmissão de dados do CloudWatch Logs para o Amazon OpenSearch Service.
- Para o Kinesis Data Firehose, conclua as etapas na seção Crie uma assinatura do CloudWatch Logs para criar uma assinatura do CloudWatch Logs.
Observação: se você receber erros ao executar comandos da AWS CLI, confirme que está executando uma versão recente da AWS CLI.
Crie uma assinatura do Amazon CloudWatch Logs
1. Conceda acesso ao CloudWatch para publicar seu fluxo do Kinesis Data Firehose com as permissões de perfil corretas.
2. Abra a AWS CLI.
3. Use o arquivo JSON a seguir para criar sua política de confiança (como TrustPolicyforCWLToFireHose.json). Substitua YOUR-RESOURCE-REGION pela região da AWS do seu recurso.
{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.YOUR-RESOURCE-REGION.amazonaws.com" }, "Action": "sts:AssumeRole" } }
4. Execute o comando a seguir para criar o perfil com as permissões da política de confiança:
$ aws iam create-role --role-name CWLtoKinesisFirehoseRole --assume-role-policy-document file://TrustPolicyForCWLToFireHose.json
5. Use o arquivo JSON a seguir para criar sua política do IAM (como PermissionPolicyForcWLToFireHose.json). Substitua YOUR-AWS-ACCT-NUM pelo número da sua conta da AWS, YOUR-RESOURCE-REGION pela região do seu recurso e FirehoseSplunkDeliveryStream pelo nome do seu fluxo.
{ "Statement":[ { "Effect":"Allow", "Action":["firehose:PutRecord"], "Resource":["arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"] }, { "Effect":"Allow", "Action":["iam:PassRole"], "Resource":["arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"] } ] }
6. Execute o comando a seguir para anexar a política do IAM ao perfil:
$ aws iam put-role-policy --role-name CWLtoKinesisFirehoseRole --policy-name Permissions-Policy-For-CWL --policy-document file://PermissionPolicyForCWLToFireHose.json
7. Execute o comando a seguir para criar um filtro de assinatura. Substitua YOUR-AWS-ACCT-NUM pelo número da sua conta da AWS, YOUR-RESOURCE-REGION pela região do seu recurso e FirehoseSplunkDeliveryStream pelo nome do seu fluxo.
$ aws logs put-subscription-filter --log-group-name " /vpc/flowlog/FirehoseSplunk" --filter-name "Destination" --filter-pattern "" --destination-arn "arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream" --role-arn "arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"
Para obter mais informações sobre filtros de assinatura, consulte Exemplo 3: filtros de assinatura com o Amazon Kinesis Data Firehose.
Informações relacionadas
Power data ingestion into Splunk using Amazon Kinesis Data Firehose
Vídeos relacionados
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 19 dias
- AWS OFICIALAtualizada há 2 anos