Streaming de logs de telemetria em tempo real

Transmita os logs de acesso do proxy do seu servidor XProxy para o Graylog ou SigNoz em tempo real — monitore vários dispositivos em um só lugar, crie dashboards e receba alertas de erros.

Por que usar streaming centralizado de logs?

  • Monitoramento unificado — acompanhe o acesso e a integridade de todos os nós do XProxy em tempo real.
  • Consultas fáceis — filtre por dispositivo, região, ação ou código de erro.
  • Solução de problemas mais rápida — isole rapidamente erros, picos de tráfego ou comportamentos anormais.
Configure em: XProxy → Configurações Gerais → Logs de Telemetria. Provedores compatíveis: Graylog (GELF UDP) e SigNoz (OTLP/HTTP).

Rotulagem recomendada

  • Identificador de Host — nome por servidor, ex.: sg-core-01, us-east-02.
  • Nome do Serviço — agrupe por região ou unidade de negócio, ex.: xproxy-region-a.

Cada log carrega esses rótulos, facilitando a criação de dashboards e filtros entre dispositivos.

Casos de uso comuns

  • Contagem de IPs de clientes únicos — estime o tráfego real e identifique fontes desconhecidas.
  • Acompanhamento da taxa de erros — filtre error_code != 00000 para medir a confiabilidade.
  • Principais destinos e largura de banda — agrupe por destination_host, somando received_bytes e sent_bytes.
  • Monitoramento por dispositivo/porta — use modem_position, proxy_port, proxy_service para isolar um dongle específico.
  • Detecção de anomalias — alerte sobre picos repentinos de tráfego ou códigos de erro elevados.

Dicas operacionais para muitos dispositivos

  • Nomenclatura consistente — padronize o Host Identifier e o Service Name por região ou grupo.
  • Separação de ambientes — use prefixos como prod- / stg- no Service Name.
  • Planejamento de retenção — configure a rotação de índices no Graylog; monitore o uso/retenção no SigNoz Cloud.
  • Alertas de saúde — alerte quando um nó parar de enviar logs por N minutos; execute novamente o Test Connection após adicionar novos nós.

Opção A — Graylog

Instalar o Graylog

Requisitos: Ubuntu Server 20.04 ou 22.04, mínimo de 2 GB de RAM (4 GB recomendados).

bash
curl x-proxy.io/graylog | bash
Instalação do Graylog

Criar uma entrada GELF UDP

  1. Abra Graylog → Sistema → Entradas.
  2. Escolha GELF UDP e clique em Iniciar nova entrada.
  3. Defina o Endereço de bind como 0.0.0.0 e a Porta como 12201.
  4. Clique em Salvar.
Entrada GELF UDP do Graylog

Configurar o XProxy para o Graylog

  1. Abra Configurações Gerais → Logs de Telemetria.
  2. Ative a opção Habilitar Telemetria.
  3. Defina o Provedor como Graylog.
  4. Informe o Servidor Graylog como YOUR_GRAYLOG_IP:12201.
  5. Defina o Identificador de Host e o Nome do Serviço (opcional, mas recomendado).
  6. Clique em Salvar e depois em Testar Conexão.
Formulário de configuração do Graylog no XProxy

Exemplos de consulta no Graylog

graylog query
# By service/cluster
service_name:xproxy-region-a

# Only errors
error_code:!00000

# By action
action:CONNECT

# By device/slot
modem_position:3
Resultados de pesquisa do Graylog

Opção B — SigNoz

Instalar o SigNoz (Community)

Requisitos: Ubuntu Server 20.04, 22.04 ou 24.04. Pule esta etapa se estiver usando o SigNoz Cloud.

bash
curl x-proxy.io/signoz | bash
Instalação do SigNoz

Configurar o XProxy para o SigNoz

  1. Abra Configurações Gerais → Logs de Telemetria.
  2. Ative Habilitar Telemetria e selecione SigNoz como Provedor.
  3. Informe o Endpoint OTLP/HTTP, por exemplo https://ingest.us.signoz.cloud:4318.
  4. Cole a sua Chave de Ingestão (SigNoz Cloud) ou deixe em branco em instalações locais.
  5. Defina o Nome do Serviço (ex.: xproxy-region-a).
  6. Clique em Salvar e depois em Testar Conexão.
Formulário de configuração do SigNoz no XProxy

Exemplos de consulta no SigNoz

signoz query
# By service name
service.name = "xproxy-region-a"

# Only errors
attributes.error_code != "00000"

# By action
attributes.action = "CONNECT"

# By device/slot
attributes.modem_position = 3
Explorador de Logs do SigNoz

Referência de campos de log

CampoDescrição
log_dateData do log (DD/MM)
log_timeHora do log (HH:MM:SS)
proxy_serviceNome do grupo de serviço (ex.: MAIN)
modem_positionÍndice do dispositivo/slot que atende à solicitação
proxy_protocolHTTP ou SOCKS5
proxy_portPorta de escuta do proxy no XProxy
proxy_userNome de usuário usado para autenticação (vazio na whitelist de IP)
client_ipIP do cliente que usa o proxy
destination_hostHost de destino solicitado via proxy
destination_portPorta de destino
actionCONNECT (túnel) ou ACCESS (requisição HTTP)
error_code00000 = sucesso; diferente de zero = erro
received_bytesBytes do destino para o cliente
sent_bytesBytes do cliente para o destino

Referência de códigos de erro

O XProxy emite um error_code de cinco dígitos nos logs (ex.: 00000, 00004). Os zeros à esquerda são intencionais para ordenação e filtragem consistentes.

  • 00000 — Sucesso (conexão encerrada normalmente)
  • 00001–00009 — Erros de autenticação (ACL/nome de usuário/senha)
  • 00010 — Limite de tráfego excedido
  • 00011–00019 — Erros de conexão (socket/bind/connect)
  • 00020–00029 — Erros internos (ex.: alocação de memória)
  • 00030–00039 — Erros de redirecionamento do proxy HTTP CONNECT
  • 00050–00069 — Erros de redirecionamento do proxy SOCKS5
  • 00090–00099 — Timeouts de conexão / problemas de rede
  • 00100 — Host não encontrado
  • 00200–00299 — Erros do portmapper UDP
  • 00300–00399 — Erros do portmapper TCP
  • 00400–00499 — Erros do proxy SOCKS
  • 00500–00599 — Erros do proxy HTTP

Solução de problemas

  • Sem dados — verifique se a telemetria está habilitada e se você clicou em Salvar. Gere tráfego por qualquer porta de proxy.
  • Graylog — confirme se a entrada GELF UDP está em execução na porta 12201 e se o firewall permite UDP 12201.
  • SigNoz — o endpoint deve incluir a porta 4318 e ser acessível via HTTPS. Verifique a chave de ingestão e a região do workspace.

Verifique se tudo funciona

  • Graylog — pesquise service_name:xproxy-logs e verifique os campos da mensagem no painel direito.
  • SigNoz — no Logs Explorer, filtre pelo nome exato do serviço configurado, ex.: service.name = "xproxy-region-a". Ou limpe os filtros para ver todos os logs e confirmar a ingestão; abra qualquer linha para ver os atributos.

Perguntas frequentes

Como verifico se os logs estão sendo transmitidos?

Use a seção Verifique se tudo funciona acima: no Graylog pesquise service_name:xproxy-logs; no SigNoz abra o Logs Explorer e filtre por service.name.

Como distinguir dispositivos ou regiões?

Defina o Host Identifier por servidor e o Service Name por região ou cluster. Esses rótulos aparecem em todos os logs.

Por que o proxy_user está vazio?

Você provavelmente está usando whitelist de IP; o nome de usuário de autenticação não está presente.

Qual é a diferença entre CONNECT e ACCESS?

CONNECT é o estabelecimento de um túnel; ACCESS é uma requisição HTTP encaminhada pelo proxy para um destino.

Como posso receber alertas de erros?

Crie uma regra sobre error_code != "00000" em uma janela de tempo; agrupe por service_name ou modem_position para localizar a origem.