Ir para o conteúdo

Como faço para usar um driver de log Splunk com uma tarefa do Amazon ECS no Fargate?

5 minuto de leitura
0

Quero usar um driver de log Splunk com uma tarefa do Amazon Elastic Container Service (Amazon ECS) no AWS Fargate

Breve descrição

É possível usar o driver de log Splunk, também chamado de "logging driver," do Docker no Fargate, para enviar seus logs de contêiner para o coletor de log Enterprise Splunk ou Splunk Cloud.

Resolução

Configure seu ambiente do Splunk Cloud para receber logs do Fargate

  1. Use a opção Free Splunk para criar uma conta no Splunk Cloud. Se você já tem uma conta no Splunk Cloud, vá para a etapa 2. Para obter mais informações, consulte Free Splunk no site do Splunk.
  2. Faça login na sua conta do Splunk Cloud.
    Observação: Depois de criar uma conta, use seu URL, nome de usuário e senha do Splunk Cloud para fazer login.
  3. No painel de navegação, selecione Configurações.
  4. Na seção DADOS, selecione Entradas de dados.
  5. Na seção Entradas locais, na coluna Ações, Clique em Adicionar novo.
    Observação: Você cria um token HTTP Event Collector (HEC) para poder enviar eventos de dados e de aplicações para uma implantação do Splunk por meio dos protocolos HTTP e Secure HTTP (HTTPS).
  6. Em Nome, insira um nome para seu token e selecione Próximo.
  7. Percorra o restante das páginas no assistente de configuração e selecione Enviar para criar o token HEC.
    Observação: É possível deixar os valores padrão em vigor.
  8. Teste o novo token usando curl ou Docker.
    Observação: Por padrão, o Splunk escuta na porta 8088 e aceita eventos no caminho /services/collector.
    curl:
    curl -k  https://prd-p-9l79p.splunkcloud.com:8088/services/collector -H "Authorization: Splunk splunk-token" -d '{"event": "Put this message in Splunk"}'
    Observação: Substitua splunk-token pelo token HEC que você criou anteriormente.
    Docker:
    docker run --publish 80:80 --log-driver=splunk --log-opt splunk-token=splunk token --log-opt splunk-url=https://prd-p-u7z1u.splunkcloud.com:8088 --log-opt splunk-insecureskipverify=true --log-opt splunk-sourcetype=docker-test --log-opt splunk-index=main  nginx

Observação: Substitua splunk-token pelo token HEC que você criou anteriormente.

Configure o AWS Secrets Manager para usar seu token HEC

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Para armazenar seu token HEC no Secrets Manager para que o Fargate possa usar seu token com segurança, execute o seguinte comando:

aws secretsmanager create-secret --name splunk-token --secret-string token-value

Observação: Substitua splunk-token pelo seu token HEC. Substitua token-value pelo valor do seu token.

Configure um perfil de Execução de tarefa com permissão para acessar segredos

  1. Abra o console do AWS Identity and Access Management (AWS IAM).
  2. No painel de navegação, selecione Perfis.
  3. Na lista de perfis, pesquise e selecione ecsTaskExecutionRole.
  4. Selecione Adicionar política em linha.
  5. Clique na guia JSON do editor e insira a seguinte política:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:GetSecretValue",
            "kms:Decrypt"
          ],
          "Resource": [
            "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>",
            "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>"
          ]
        }
      ]
    }
    Observação: Se você usar uma chave personalizada do AWS Key Management Service (AWS KMS) para criptografar seus segredos, forneça a permissão kms:Decrypt e o nome do recurso da Amazon (ARN) para sua chave KMS.
  6. Selecione Revisar política.
  7. Em Nome, insira um nome para a política.
  8. Selecione Criar política.

Configure sua definição de tarefa para sua tarefa do Amazon ECS no Fargate

  1. Abra o console do Amazon ECS.
  2. No painel de navegação, na seção Amazon ECS, selecione Definições de tarefa.
  3. Clique em Criar nova definição de tarefa.
  4. Selecione Fargate e, em seguida, clique em Próxima etapa.
  5. Na seção Configurar definições de tarefa e contêiner, em Nome da definição da tarefa, insira um nome para sua definição de tarefa.
  6. Em Perfil da tarefa, selecione o perfil que você configurou anteriormente.
  7. Na seção Tamanho da tarefa, em Memória da tarefa (GB) e CPU da tarefa (vCPU), insira os valores apropriados para suas tarefas.
  8. Na seção Definições de contêiner, clique em Adicionar contêiner.
  9. Escolha as opções apropriadas para as necessidades do seu contêiner.
  10. Na seção REGISTRO DE LOG no menu suspenso, selecione Exportar logs para o Splunk.
  11. Para as opções de chave e valor em Opções de log, insira o seguinte:
    Chave: splunk-url
    Valor: Seu endpoint splunk (por exemplo: https://prd-p-9l79p.splunkcloud.com:8088/)
    Chave: splunk-insecureskipverify
    Valor: Verdadeiro
    Chave: splunk-token
    valueFrom: O ARN secreto que você criou anteriormente
  12. Selecione Adicionar.
    Observação: Para obter mais detalhes sobre o código e as configurações do Splunk, consulte splunk.go no GitHub e Splunk options (opções do Splunk) no site do Docker.
  13. Para criar sua definição de tarefa, selecione Criar.
  14. Crie um serviço Amazon ECS ou execute uma tarefa que use a definição de tarefa que você criou anteriormente.

Verifique seus logs no Splunk Cloud

Antes de verificar seus logs no Splunk Cloud, certifique-se de que sua tarefa esteja em execução.

Observação: Como você não especificou splunk-index em sua configuração de log, seus logs vão para splunk-index no índice principal por padrão.

  1. Conecte-se à sua conta do Splunk Cloud.
  2. No menu de navegação, selecione Pesquisar.
  3. Digite index="main" na caixa de pesquisa.

Observação: É possível seguir as etapas anteriores para criar uma definição de tarefa no Amazon ECS para um tipo de inicialização do Amazon ElasticCompute Cloud (Amazon EC2). Em seguida, é possível usar o driver de log do Splunk de qualquer uma das suas tarefas do ECS para enviar seus logs para o coletor de log do Splunk.

Informações relacionadas

Perfil do IAM de execução de tarefas do Amazon ECS

AWS OFICIALAtualizada há 2 anos