ResumoEncaminhe logs do AWS CloudWatch para o ClickStack usando o CloudWatch receiver do OpenTelemetry Collector. Compatível com grupos de logs nomeados e descoberta automática. Inclui um conjunto de dados de demonstração e um dashboard pré-configurado.
Visão geral
- Analisar logs junto com métricas e traces em uma plataforma unificada
- Consultar logs usando a interface SQL do ClickHouse
- Reduzir custos arquivando logs ou diminuindo a retenção no CloudWatch
Integração com grupos de logs existentes do CloudWatch
Pré-requisitos
- Instância do ClickStack em execução
- Conta da AWS com grupos de logs do CloudWatch
- Credenciais da AWS com as permissões de IAM adequadas
Ao contrário das integrações de logs baseadas em arquivos (nginx, Redis), o CloudWatch exige a execução de um OpenTelemetry Collector separado, que consulta periodicamente a API do CloudWatch. Esse collector não pode ser executado dentro da imagem tudo-em-um do ClickStack, pois precisa de credenciais da AWS e acesso à API.
Obter a API key do ClickStack
O OpenTelemetry Collector envia dados para o endpoint OTLP do ClickStack, que requer autenticação.- Abra o HyperDX na URL do seu ClickStack (por exemplo, http://localhost:8080)
- Crie uma conta ou faça login, se necessário
- Acesse Configurações da equipe → API Keys
- Copie sua API key de ingestão
Configurar as credenciais da AWS
Exporte suas credenciais da AWS como variáveis de ambiente. O método depende do tipo de autenticação usado:Para usuários do AWS SSO (recomendado para a maioria das organizações):YOUR_PROFILE_NAME pelo nome do seu perfil do AWS SSO (por exemplo, AccountAdministrators-123456789).Para usuários do IAM com credenciais de longo prazo:YOUR_ACCOUNT_ID pelo ID da sua conta na AWS.Configure o receiver do CloudWatch
Crie um arquivootel-collector-config.yaml com a configuração do receiver do CloudWatch.Descubra os grupos de logs disponíveis na sua conta
Descubra os grupos de logs disponíveis na sua conta
Antes de editar a configuração, liste os grupos de logs existentes na sua região para escolher nomes reais (e confirmar que a região está correta):Saída de exemplo:Use os nomes desta lista diretamente no bloco Como alternativa, se os grupos desejados tiverem um prefixo em comum (neste caso,
groups.named do Exemplo 1 abaixo. Para a conta acima, a seção named-groups ficaria assim:/aws-glue/), use o Exemplo 2 com prefix: /aws-glue/ em vez de listá-los individualmente./aws/lambda:region: Região da AWS onde seus grupos de logs estão localizadospoll_interval: Frequência de verificação de novos logs (por exemplo,1m,5m)max_events_per_request: Número máximo de eventos de log buscados por solicitaçãogroups.autodiscover.limit: Número máximo de grupos de logs a descobrirgroups.autodiscover.prefix: Filtra grupos de logs por prefixogroups.named: Lista explicitamente os nomes dos grupos de logs a serem coletados
${CLICKSTACK_API_KEY}→ Usa a variável de ambiente definida anteriormentehttp://localhost:4318→ Seu endpoint do ClickStack (use o host do seu ClickStack se estiver em execução remota)us-east-1→ Sua região da AWS- Nomes/prefixos de grupos de logs → Seus grupos de logs do CloudWatch reais
O CloudWatch receiver busca logs apenas em janelas de tempo recentes (com base em
poll_interval). Quando é iniciado pela primeira vez, começa a partir do horário atual. Logs históricos n’o são recuperados por padrão.Inicie o coletor
Crie um arquivodocker-compose.yaml:Verifique os logs no HyperDX
Quando o coletor estiver em execução:- Abra o HyperDX em http://localhost:8080 (ou na URL do seu ClickStack)
- Acesse a visualização Logs
- Aguarde 1 a 2 minutos para que os logs apareçam (dependendo do seu intervalo de polling)
- Pesquise logs dos seus grupos de logs do CloudWatch
ResourceAttributes['aws.region']: Sua região da AWS (por exemplo, “us-east-1”)ResourceAttributes['cloudwatch.log.group.name']: O nome do grupo de logs do CloudWatchResourceAttributes['cloudwatch.log.stream']: O nome do fluxo de logsBody: O conteúdo da mensagem de log
Dataset de demonstração
Baixe o dataset de exemplo
- Funções Lambda: processamento de pagamentos, gerenciamento de pedidos, autenticação
- Serviços ECS: gateway de API com limitação de taxa e timeouts
- Jobs em segundo plano: processamento em lote com padrões de retry
Inicie o ClickStack
Se o ClickStack ainda não estiver em execução:Importe o dataset de demonstração
Verifique os dados de demonstração
Depois da importação:- Abra o HyperDX em http://localhost:8080 e faça login (crie uma conta, se necessário)
- Acesse a visualização Logs
- Defina o intervalo de tempo como 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC)
- Pesquise por
cloudwatch-demoou filtre porLogAttributes['source'] = 'cloudwatch-demo'
Exibição de fuso horárioO HyperDX exibe os timestamps no fuso horário local do seu navegador. Os dados de demonstração abrangem 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC). Defina o intervalo de tempo como 2025-12-06 00:00:00 - 2025-12-09 00:00:00 para garantir que você veja os logs de demonstração independentemente da sua localização. Depois de ver os logs, você pode restringir o intervalo para um período de 24 horas para visualizações mais claras.
Dashboards e visualização
a configuração do dashboard
Importe o dashboard
- Abra o HyperDX e navegue até a seção Dashboards
- Clique em Import Dashboard no canto superior direito, no menu de reticências
- Faça upload do arquivo
cloudwatch-logs-dashboard.jsone clique em Finish Import
Visualize o dashboard
O dashboard será criado com todas as visualizações pré-configuradas:Para o dataset de demonstração, defina o intervalo de tempo como 2025-12-07 00:00:00 - 2025-12-08 00:00:00 (UTC) (ajuste com base no seu fuso horário local). Por padrão, o dashboard importado não terá um intervalo de tempo especificado.
Solução de problemas
Nenhum log aparece no HyperDX
logs:DescribeLogGroups e logs:FilterLogEvents necessárias.
Verifique os logs do collector em busca de erros:
The security token included in the request is invalid: As credenciais são inválidas ou expiraram. Para credenciais temporárias (SSO), verifique seAWS_SESSION_TOKENestá definido.operation error CloudWatch Logs: FilterLogEvents, AccessDeniedException: As permissões do IAM são insuficientesfailed to refresh cached credentials, no EC2 IMDS role found: As variáveis de ambiente das credenciais da AWS não estão definidasconnection refused: Não é possível acessar o endpoint do ClickStack
Apenas logs antigos aparecem ou logs recentes estão faltando
Token de segurança inválido / credenciais expiradas
Alta latência ou falta de logs recentes
poll_interval padrão é de 1 minuto. Para logs quase em tempo real, reduza-o:
Collector consumindo memória demais
Próximos passos
- Configure alertas para eventos críticos (falhas de conexão, picos de erros)
- Reduza os custos do CloudWatch ajustando os períodos de retenção ou arquivando no S3, agora que você já tem logs no ClickStack
- Filtre grupos de logs com muito ruído removendo-os da configuração do collector para reduzir o volume de ingestão