Antes de começar
Tenha as seguintes informações em mãos:- A chave de API da sua fonte de log. Se você ainda não tem uma fonte de log, crie uma nova fonte de log primeiro.
- O nome do log group existente do CloudWatch que você quer transmitir para o AppSignal.
- A região AWS onde o log group está. Implante a stack na mesma região e conta do log group.
O que o template cria
O template do CloudFormation cria os seguintes recursos:- Um bucket S3 para armazenar registros que falharem ao serem entregues, com criptografia do lado do servidor, acesso público bloqueado, expiração de ciclo de vida de 30 dias e política de retenção ao deletar.
- Uma função IAM que permite ao Amazon Data Firehose gravar registros que falharam no bucket S3 e gravar seus próprios logs de erro de entrega no CloudWatch.
- Um delivery stream do Firehose que envia logs para o endpoint do AppSignal via HTTPS.
- Uma função IAM que permite ao CloudWatch Logs gravar no delivery stream do Firehose.
- Um filtro de assinatura de log do CloudWatch no seu log group existente que encaminha os eventos de log para o delivery stream do Firehose.
Template do CloudFormation
Copie o seguinte template e salve-o comoappsignal-cloudwatch-logs.yaml:
A declaração
logs:PutLogEvents permite que o Firehose grave seus próprios logs de erro de entrega no CloudWatch. Ela tem como alvo o log group de erros do Firehose (/aws/kinesisfirehose/<STREAM_NAME>), que é separado do log group que você quer transmitir para o AppSignal. Consulte Controlling access with Amazon Data Firehose para mais detalhes.Implante a stack
- Abra o console do AWS CloudFormation.
- Selecione Create stack e escolha With new resources (standard).
- Em Specify template, selecione Upload a template file e faça o upload de
appsignal-cloudwatch-logs.yaml. - Selecione Next.
- Digite um nome para a stack, por exemplo
appsignal-cloudwatch-logs. - Em LogSourceApiKey, insira a chave de API da sua fonte de log.
- Em CloudWatchLogGroupName, insira o nome exato do log group que você quer transmitir.
- Selecione Next duas vezes, depois marque I acknowledge that AWS CloudFormation might create IAM resources e selecione Submit.
Verifique a implantação
- No AWS Console, pesquise por “CloudFormation” e selecione Stacks. Abra sua stack e selecione a aba Resources para confirmar que todos os recursos mostram CREATE_COMPLETE.
- No AWS Console, pesquise por “CloudWatch”. Na barra lateral esquerda, abra seu log group e selecione a aba Subscription filters para confirmar que o filtro
AppSignalestá listado. - No AWS Console, pesquise por “Firehose”. Abra o delivery stream e use a função Test with demo data para verificar a conectividade.
- No AppSignal, abra a tela de gerenciamento de logs e confirme que as entradas de log do seu log group aparecem lá.
Implantações multi-região
O template deve ser implantado na mesma região e conta do log group do CloudWatch. Se você tiver log groups em várias regiões, implante uma cópia separada desta stack em cada região.Limpeza
Para remover todos os recursos criados por este template, exclua a stack no console do CloudFormation. O bucket S3 para entregas falhadas tem umaDeletionPolicy de Retain, então ele é mantido quando a stack é excluída para evitar a perda de registros de entrega falhados. Os registros de entrega falhados no bucket são automaticamente excluídos após 30 dias pela regra de ciclo de vida. Você pode excluir o bucket manualmente quando não precisar mais dele.