실시간 텔레메트리 로그 스트리밍

XProxy 서버의 프록시 액세스 로그를 실시간으로 Graylog 또는 SigNoz로 스트리밍하세요 — 한 곳에서 여러 기기를 모니터링하고, 대시보드를 구축하며, 오류에 알림을 받을 수 있습니다.

중앙 집중 로그 스트리밍을 사용하는 이유

  • 통합 모니터링 — 모든 XProxy 노드의 액세스와 상태를 실시간 감시.
  • 쉬운 쿼리 — 기기, 지역, 동작 또는 오류 코드로 필터링.
  • 더 빠른 문제 해결 — 오류, 트래픽 급증 또는 비정상 동작을 신속하게 격리.
구성 위치: XProxy → 일반 설정 → 텔레메트리 로그. 지원 공급자: Graylog (GELF UDP) 및 SigNoz (OTLP/HTTP).

권장 라벨링

  • 호스트 식별자 — 서버별 이름, 예: sg-core-01, us-east-02.
  • 서비스 이름 — 지역 또는 사업부별 그룹, 예: xproxy-region-a.

모든 로그가 이러한 라벨을 전달하므로 대시보드와 기기 간 필터를 쉽게 만들 수 있습니다.

옵션 A — Graylog

Graylog 설치

요구 사항: Ubuntu Server 20.04 또는 22.04, RAM 최소 2GB(4GB 권장).

bash
curl x-proxy.io/graylog | bash
Graylog 설치

GELF UDP 입력 생성

  1. Graylog → 시스템 → 입력 열기.
  2. GELF UDP를 선택하고 새 입력 시작 클릭.
  3. Bind 주소를 0.0.0.0으로, 포트를 12201로 설정.
  4. 저장 클릭.
Graylog GELF UDP 입력

Graylog용 XProxy 구성

  1. 일반 설정 → 텔레메트리 로그 열기.
  2. 텔레메트리 활성화 토글 켜기.
  3. 공급자를 Graylog로 설정.
  4. Graylog 서버를 YOUR_GRAYLOG_IP:12201로 입력.
  5. 호스트 식별자서비스 이름 설정(선택이지만 권장).
  6. 저장연결 테스트 클릭.
XProxy Graylog 구성 폼

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
Graylog 검색 결과

옵션 B — SigNoz

SigNoz 설치 (커뮤니티)

요구 사항: Ubuntu Server 20.04, 22.04 또는 24.04. SigNoz Cloud를 사용하면 건너뛰세요.

bash
curl x-proxy.io/signoz | bash
SigNoz 설치

SigNoz용 XProxy 구성

  1. 일반 설정 → 텔레메트리 로그 열기.
  2. 텔레메트리 활성화를 켜고 공급자로 SigNoz를 선택.
  3. OTLP/HTTP 엔드포인트 입력, 예: https://ingest.us.signoz.cloud:4318.
  4. 수집 키 붙여넣기(SigNoz Cloud) 또는 로컬 설치 시 비워 둠.
  5. 서비스 이름 설정(예: xproxy-region-a).
  6. 저장연결 테스트 클릭.
XProxy SigNoz 구성 폼

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
SigNoz 로그 탐색기

로그 필드 참조

필드설명
log_date로그 날짜 (DD/MM)
log_time로그 시간 (HH:MM:SS)
proxy_service서비스 그룹 이름 (예: MAIN)
modem_position요청을 처리한 기기/슬롯 인덱스
proxy_protocolHTTP 또는 SOCKS5
proxy_portXProxy의 프록시 수신 포트
proxy_user인증에 사용된 사용자 이름(IP 화이트리스트면 비어 있음)
client_ip프록시를 사용하는 클라이언트 IP
destination_host프록시로 요청된 대상 호스트
destination_port대상 포트
actionCONNECT(터널) 또는 ACCESS(HTTP 요청)
error_code00000 = 성공, 0이 아니면 오류
received_bytes대상에서 클라이언트로의 바이트
sent_bytes클라이언트에서 대상으로의 바이트

오류 코드 참조

  • 00000 — 성공 (정상적으로 연결 종료)
  • 00001–00009 — 인증 오류 (ACL/사용자 이름/비밀번호)
  • 00010 — 트래픽 제한 초과
  • 00011–00019 — 연결 오류 (소켓/바인드/커넥트)
  • 00020–00029 — 내부 오류 (예: 메모리 할당)
  • 00030–00039 — HTTP CONNECT 프록시 리다이렉션 오류
  • 00050–00069 — SOCKS5 프록시 리다이렉션 오류
  • 00090–00099 — 연결 시간 초과 / 네트워크 문제
  • 00100 — 호스트를 찾지 못함
  • 00200–00299 — UDP 포트매퍼 오류
  • 00300–00399 — TCP 포트매퍼 오류
  • 00400–00499 — SOCKS 프록시 오류
  • 00500–00599 — HTTP 프록시 오류

문제 해결

  • 데이터 없음 — 텔레메트리가 활성화되어 있고 저장을 클릭했는지 확인하세요. 아무 프록시 포트로 트래픽을 생성하세요.
  • Graylog — GELF UDP 입력이 포트 12201에서 실행 중인지, 방화벽이 UDP 12201을 허용하는지 확인하세요.
  • SigNoz — 엔드포인트에 포트 4318이 포함되고 HTTPS로 도달 가능해야 합니다. 수집 키와 워크스페이스 지역을 확인하세요.