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.
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 != 00000para medir a confiabilidade. - Principais destinos e largura de banda — agrupe por
destination_host, somandoreceived_bytesesent_bytes. - Monitoramento por dispositivo/porta — use
modem_position,proxy_port,proxy_servicepara 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).
curl x-proxy.io/graylog | bash
Criar uma entrada GELF UDP
- Abra Graylog → Sistema → Entradas.
- Escolha GELF UDP e clique em Iniciar nova entrada.
- Defina o Endereço de bind como
0.0.0.0e a Porta como12201. - Clique em Salvar.

Configurar o XProxy para o Graylog
- Abra Configurações Gerais → Logs de Telemetria.
- Ative a opção Habilitar Telemetria.
- Defina o Provedor como Graylog.
- Informe o Servidor Graylog como
YOUR_GRAYLOG_IP:12201. - Defina o Identificador de Host e o Nome do Serviço (opcional, mas recomendado).
- Clique em Salvar e depois em Testar Conexão.

Exemplos de consulta no Graylog
# By service/cluster
service_name:xproxy-region-a
# Only errors
error_code:!00000
# By action
action:CONNECT
# By device/slot
modem_position:3
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.
curl x-proxy.io/signoz | bash
Configurar o XProxy para o SigNoz
- Abra Configurações Gerais → Logs de Telemetria.
- Ative Habilitar Telemetria e selecione SigNoz como Provedor.
- Informe o Endpoint OTLP/HTTP, por exemplo
https://ingest.us.signoz.cloud:4318. - Cole a sua Chave de Ingestão (SigNoz Cloud) ou deixe em branco em instalações locais.
- Defina o Nome do Serviço (ex.:
xproxy-region-a). - Clique em Salvar e depois em Testar Conexão.

Exemplos de consulta no SigNoz
# 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
Referência de campos de log
| Campo | Descrição |
|---|---|
log_date | Data do log (DD/MM) |
log_time | Hora do log (HH:MM:SS) |
proxy_service | Nome do grupo de serviço (ex.: MAIN) |
modem_position | Índice do dispositivo/slot que atende à solicitação |
proxy_protocol | HTTP ou SOCKS5 |
proxy_port | Porta de escuta do proxy no XProxy |
proxy_user | Nome de usuário usado para autenticação (vazio na whitelist de IP) |
client_ip | IP do cliente que usa o proxy |
destination_host | Host de destino solicitado via proxy |
destination_port | Porta de destino |
action | CONNECT (túnel) ou ACCESS (requisição HTTP) |
error_code | 00000 = sucesso; diferente de zero = erro |
received_bytes | Bytes do destino para o cliente |
sent_bytes | Bytes 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 excedido00011–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 CONNECT00050–00069— Erros de redirecionamento do proxy SOCKS500090–00099— Timeouts de conexão / problemas de rede00100— Host não encontrado00200–00299— Erros do portmapper UDP00300–00399— Erros do portmapper TCP00400–00499— Erros do proxy SOCKS00500–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-logse 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.