Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Monitoramento de logs do host com ClickStack

Integração com hosts existentes

Esta seção explica como configurar seus hosts existentes para enviar logs do sistema ao ClickStack, modificando a configuração do OTel collector do ClickStack para ler todos os arquivos de log do sistema (syslog, auth, kernel, daemon e logs de aplicação).

Se você quiser testar a integração de log do host antes de configurar seu próprio ambiente existente, pode usar nossa configuração pré-configurada e os dados de exemplo na seção "Dataset de demonstração".

Pré-requisitos
  • Instância do ClickStack em execução
  • Sistema com arquivos de syslog
  • Acesso para modificar os arquivos de configuração do ClickStack

Verifique se existem arquivos de syslog

Primeiro, verifique se o seu sistema está gravando arquivos de syslog:

# Check if syslog files exist (Linux)
ls -la /var/log/syslog /var/log/messages

# Or on macOS
ls -la /var/log/system.log

# View recent entries
tail -20 /var/log/syslog

Locais comuns do syslog:

  • Ubuntu/Debian: /var/log/syslog
  • RHEL/CentOS/Fedora: /var/log/messages
  • macOS: /var/log/system.log

Criar configuração personalizada do OTel collector

O ClickStack permite estender a configuração base do OpenTelemetry Collector montando um arquivo de configuração personalizado e definindo uma variável de ambiente.

Crie um arquivo chamado host-logs-monitoring.yaml com a configuração do seu sistema:

receivers:
  filelog/syslog:
    include:
      - /var/log/syslog
      - /var/log/**/*.log
    start_at: end
    operators:
      - type: regex_parser
        regex: '^(?P<timestamp>\S+) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout_type: gotime
        layout: '2006-01-02T15:04:05.999999-07:00'
      
      - type: add
        field: attributes.source
        value: "host-logs"
      
      - type: add
        field: resource["service.name"]
        value: "host-production"

service:
  pipelines:
    logs/host:
      receivers: [filelog/syslog]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse

Todas as configurações:

  • Leia os arquivos de syslog em seus locais padrão
  • Analise o formato de syslog para extrair campos estruturados (timestamp, hostname, unidade/serviço, PID, mensagem)
  • Preservar os timestamps originais dos logs
  • Adicione o atributo source: host-logs para filtrar no HyperDX
  • Encaminhe os logs ao exportador do ClickHouse por meio de um pipeline dedicado

Configure o ClickStack para carregar uma configuração personalizada

Para habilitar uma configuração personalizada do collector na implantação existente do ClickStack, você deve:

  1. Montar o arquivo de configuração personalizado em /etc/otelcol-contrib/custom.config.yaml
  2. Definir a variável de ambiente CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. Montar o diretório de syslog para que o collector possa lê-lo
Opção 1: Docker Compose

Atualize a configuração da implantação do ClickStack:

services:
  clickstack:
    # ... existing configuration ...
    environment:
      - CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
      # ... other environment variables ...
    volumes:
      - ./host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
      - /var/log:/var/log:ro
      # ... other volumes ...
Opção 2: Docker Run (imagem all-in-one)

Se estiver usando a imagem all-in-one com docker run:

docker run --name clickstack \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v /var/log:/var/log:ro \
  clickhouse/clickstack-all-in-one:latest

Verificando logs no HyperDX

Depois de configurar, faça login no HyperDX e verifique se os logs estão chegando:

  1. Acesse a Search view
  2. Defina a source como Logs
  3. Filtre por source:host-logs para ver logs específicos do host
  4. Você deverá ver entradas de log estruturadas com campos como unit, hostname, pid, message etc.
Search view
Log view

Dataset de demonstração

Para usuários que desejam testar a integração de logs do host antes de configurar seus sistemas de produção, fornecemos um conjunto de dados de exemplo com logs de sistema pré-gerados e padrões realistas.

Baixe o conjunto de dados de exemplo

Baixe o arquivo de log de exemplo:

curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/host-logs/journal.log

O conjunto de dados inclui:

  • Sequência de inicialização do sistema
  • Atividade de login via SSH (tentativas bem-sucedidas e com falha)
  • Incidente de segurança (ataque de força bruta com resposta do fail2ban)
  • Manutenção agendada (jobs do cron, anacron)
  • Reinicializações de serviço (rsyslog)
  • Mensagens do kernel e atividade do firewall
  • Combinação de operações normais e eventos relevantes

Crie a configuração de teste do collector

Crie um arquivo chamado host-logs-demo.yaml com a seguinte configuração:

cat > host-logs-demo.yaml << 'EOF'
receivers:
  filelog/journal:
    include:
      - /tmp/host-demo/journal.log
    start_at: beginning
    operators:
      - type: regex_parser
        regex: '^(?P<timestamp>\S+) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%Y-%m-%dT%H:%M:%S%z'
      
      - type: add
        field: attributes.source
        value: "host-demo"
      
      - type: add
        field: resource["service.name"]
        value: "host-demo"

service:
  pipelines:
    logs/host-demo:
      receivers: [filelog/journal]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
EOF

Execute o ClickStack com a configuração de demonstração

Execute o ClickStack com os logs de demonstração e a configuração correspondente:

docker run --name clickstack-demo \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/host-logs-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v "$(pwd)/journal.log:/tmp/host-demo/journal.log:ro" \
  clickhouse/clickstack-all-in-one:latest

Verifique os logs no HyperDX

Quando o ClickStack estiver em execução:

  1. Abra o HyperDX e faça login na sua conta (talvez seja necessário criar uma conta primeiro)
  2. Vá para a Search view e defina a source como Logs
  3. Defina o intervalo de tempo como 2025-11-10 00:00:00 - 2025-11-13 00:00:00
Search view
Log view

Dashboards e visualização

Para ajudar você a começar a monitorar logs do host com o ClickStack, fornecemos visualizações essenciais para logs do sistema.

Baixe a configuração do dashboard

Importe o dashboard pré-configurado

  1. Abra o HyperDX e navegue até a seção Dashboards
  2. Clique em Import Dashboard no canto superior direito, no menu de reticências
Botão Import dashboard
  1. Faça upload do arquivo host-logs-dashboard.json e clique em Finish Import
Concluir importação

Visualize o dashboard

O dashboard será criado com todas as visualizações pré-configuradas:

Dashboard de logs

As principais visualizações incluem:

  • Volume de logs ao longo do tempo por severidade
  • Principais unidades do systemd que geram logs
  • Atividade de login via SSH (bem-sucedidos vs. falhos)
  • Atividade do firewall (bloqueado vs. permitido)
  • Eventos de segurança (logins com falha, banimentos e bloqueios)
  • Atividade de reinicialização de serviços

Solução de problemas

Configuração personalizada não está sendo carregada

Verifique se a variável de ambiente está definida:

docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE

Verifique se o arquivo de configuração personalizado está montado e pode ser lido:

docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml | head -10

Nenhum log aparece no HyperDX

Verifique se os arquivos de syslog existem e estão sendo gravados:

# Verificar se o syslog existe
ls -la /var/log/syslog /var/log/messages

# Verificar se os logs estão sendo gravados
tail -f /var/log/syslog

Verifique se o collector consegue ler os logs:

docker exec <container> cat /var/log/syslog | head -20

Verifique se a configuração efetiva inclui o receiver filelog:

docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog

Verifique se há erros nos logs do collector:

docker exec <container> cat /etc/otel/supervisor-data/agent.log | grep -i "filelog\|syslog"

Se estiver usando o dataset de demonstração, verifique se o arquivo de log está acessível:

docker exec <container> cat /tmp/host-demo/journal.log | wc -l

Logs não estão sendo analisados corretamente

Verifique se o formato do seu syslog corresponde à configuração escolhida:

Para Linux moderno (Ubuntu 24.04+):

# Deve exibir o formato ISO8601: 2025-11-17T20:55:44.826796+00:00
tail -5 /var/log/syslog

Para versões legadas do Linux ou macOS:

# Deve exibir o formato tradicional: Nov 17 14:16:16
tail -5 /var/log/syslog
# ou
tail -5 /var/log/system.log

Se o formato não corresponder, selecione a guia de configuração adequada na seção Criar uma configuração personalizada do OTel collector.

Próximos passos

  • Configure alertas para eventos críticos do sistema (falhas de serviço, falhas de autenticação, avisos de disco)
  • Filtre por unidades específicas para monitorar determinados serviços
  • Correlacione logs do host com logs de aplicações para uma solução de problemas mais abrangente
  • Crie dashboards personalizados para monitoramento de segurança (tentativas de SSH, uso de sudo, bloqueios de firewall)

Preparando para produção

Este guia utiliza o OpenTelemetry Collector integrado do ClickStack para uma configuração rápida. Para implantações em produção, recomendamos executar seu próprio OTel Collector e enviar os dados para o endpoint OTLP do ClickStack. Consulte Enviando dados do OpenTelemetry para a configuração de produção.

Navigation