Streaming de logs de telemetria em tempo real

Transmita em tempo real os registos de acesso do proxy do seu servidor XProxy para o Graylog ou o SigNoz — monitorize vários dispositivos a partir de um único local, crie dashboards e receba alertas de erros.

Porquê utilizar a transmissão centralizada de registos?

  • Monitorização unificada — acompanhe o acesso e o estado de todos os nós XProxy em tempo real.
  • Consultas fáceis — filtre por dispositivo, região, ação ou código de erro.
  • Resolução de problemas mais rápida — isole rapidamente erros, picos de tráfego ou comportamentos anómalos.
Configurar em: XProxy → Definições gerais → Registos de telemetria. Fornecedores suportados: Graylog (GELF UDP) e SigNoz (OTLP/HTTP).

Etiquetagem recomendada

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

Todos os registos transportam estas etiquetas, facilitando a criação de dashboards e de filtros entre dispositivos.

Casos de utilização comuns

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

Dicas operacionais para muitos dispositivos

  • Nomenclatura consistente — padronize o Identificador do host e o Nome do serviço por região ou grupo.
  • Separação de ambientes — utilize prefixos como prod- / stg- no Nome do serviço.
  • Planeamento de retenção — defina a rotação de índices no Graylog; monitorize a utilização/retenção no SigNoz Cloud.
  • Alertas de estado — alerte quando um nó deixar de enviar registos durante N minutos; volte a executar Testar Ligação depois de 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 o Graylog → Sistema → Entradas.
  2. Escolha GELF UDP e clique em Lançar nova entrada.
  3. Defina o endereço de ligação como 0.0.0.0 e a porta como 12201.
  4. Clique em Guardar.
Entrada GELF UDP do Graylog

Configurar o XProxy para o Graylog

  1. Abra Definições gerais → Registos de telemetria.
  2. Coloque o interruptor Ativar Telemetria na posição ON.
  3. Defina o Fornecedor como Graylog.
  4. Introduza o Servidor Graylog como YOUR_GRAYLOG_IP:12201.
  5. Defina o Identificador do host e o Nome do serviço (opcional, mas recomendado).
  6. Clique em Guardar e, em seguida, em Testar Ligação.
Formulário de configuração do Graylog no XProxy

Exemplos de consultas 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 da pesquisa no Graylog

Opção B — SigNoz

Instalar o SigNoz (Community)

Requisitos: Ubuntu Server 20.04, 22.04 ou 24.04. Ignore se estiver a utilizar o SigNoz Cloud.

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

Configurar o XProxy para o SigNoz

  1. Abra Definições gerais → Registos de telemetria.
  2. Coloque o interruptor Ativar Telemetria na posição ON e selecione SigNoz como Fornecedor.
  3. Introduza 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 (por exemplo xproxy-region-a).
  6. Clique em Guardar e, em seguida, em Testar Ligação.
Formulário de configuração do SigNoz no XProxy

Exemplos de consultas 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 registos do SigNoz

Referência de campos do registo

CampoDescrição
log_dateData do registo (DD/MM)
log_timeHora do registo (HH:MM:SS)
proxy_serviceNome do grupo de serviço (por exemplo, MAIN)
modem_positionÍndice do dispositivo/ranhura que serve o pedido
proxy_protocolHTTP ou SOCKS5
proxy_portPorta de escuta do proxy no XProxy
proxy_userNome de utilizador usado para autenticar (vazio na lista branca de IP)
client_ipIP do cliente que utiliza o proxy
destination_hostHost de destino pedido através do proxy
destination_portPorta de destino
actionCONNECT (túnel) ou ACCESS (pedido 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 registos (por exemplo, 00000, 00004). Os zeros à esquerda são intencionais para uma ordenação e filtragem consistentes.

  • 00000 — Sucesso (ligação encerrada normalmente)
  • 00001–00009 — Erros de autenticação (ACL/nome de utilizador/palavra-passe)
  • 00010 — Limite de tráfego excedido
  • 00011–00019 — Erros de ligação (socket/bind/connect)
  • 00020–00029 — Erros internos (por exemplo, alocação de memória)
  • 00030–00039 — Erros de redirecionamento do proxy HTTP CONNECT
  • 00050–00069 — Erros de redirecionamento do proxy SOCKS5
  • 00090–00099 — Tempos limite de ligaçã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

Resolução de problemas

  • Sem dados — garanta que a telemetria está ativada e que clicou em Guardar. Gere tráfego através de qualquer porta de proxy.
  • Graylog — confirme que a entrada GELF UDP está em execução na porta 12201 e que a firewall permite UDP 12201.
  • SigNoz — o endpoint tem de incluir a porta 4318 e estar acessível via HTTPS. Verifique a chave de ingestão e a região do workspace.

Verificar se tudo funciona

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

FAQ

Como verifico se os registos estão a ser transmitidos?

Utilize a secção Verificar se tudo funciona acima: no Graylog pesquise service_name:xproxy-logs; no SigNoz abra o Explorador de registos e filtre por service.name.

Como distinguir dispositivos ou regiões?

Defina o Identificador do host por servidor e o Nome do serviço por região ou cluster. Estas etiquetas aparecem em todos os registos.

Porque é que o proxy_user está vazio?

Provavelmente está a utilizar a lista branca de IP; o nome de utilizador de autenticação não está presente.

Qual é a diferença entre CONNECT e ACCESS?

CONNECT é o estabelecimento de um túnel; ACCESS é um pedido HTTP encaminhado pelo proxy para um destino.

Como posso alertar sobre erros?

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