실시간 텔레메트리 로그 스트리밍
XProxy 서버의 프록시 액세스 로그를 실시간으로 Graylog 또는 SigNoz로 스트리밍하세요 — 한 곳에서 여러 기기를 모니터링하고, 대시보드를 구축하며, 오류에 알림을 받을 수 있습니다.
중앙 집중 로그 스트리밍을 사용하는 이유
- 통합 모니터링 — 모든 XProxy 노드의 액세스와 상태를 실시간 감시.
- 쉬운 쿼리 — 기기, 지역, 동작 또는 오류 코드로 필터링.
- 더 빠른 문제 해결 — 오류, 트래픽 급증 또는 비정상 동작을 신속하게 격리.
구성 위치: XProxy → 일반 설정 → 텔레메트리 로그. 지원 공급자: Graylog (GELF UDP) 및 SigNoz (OTLP/HTTP).
권장 라벨링
- 호스트 식별자 — 서버별 이름, 예:
sg-core-01,us-east-02. - 서비스 이름 — 지역 또는 사업부별 그룹, 예:
xproxy-region-a.
모든 로그가 이러한 라벨을 전달하므로 대시보드와 기기 간 필터를 쉽게 만들 수 있습니다.
일반적인 사용 사례
- 고유 클라이언트 IP 카운팅 — 실제 트래픽을 추정하고 낯선 출처를 발견.
- 오류율 추적 —
error_code != 00000으로 필터링해 안정성 측정. - 상위 대상 및 대역폭 —
destination_host로 그룹화하고received_bytes와sent_bytes를 합산. - 기기/포트별 모니터링 —
modem_position,proxy_port,proxy_service로 특정 동글 격리. - 이상 탐지 — 갑작스러운 트래픽 급증이나 오류 코드 상승에 알림.
다수 기기 운영 팁
- 일관된 명명 — 호스트 식별자와 서비스 이름을 지역 또는 그룹별로 표준화.
- 환경 분리 — 서비스 이름에
prod-/stg-같은 접두사 사용. - 보존 계획 — Graylog에서 인덱스 로테이션 설정; SigNoz Cloud에서 사용량/보존 모니터링.
- 상태 알림 — 노드가 N분간 로그 전송을 멈추면 알림; 새 노드 추가 후 Test Connection 재실행.
옵션 A — Graylog
Graylog 설치
요구 사항: Ubuntu Server 20.04 또는 22.04, RAM 최소 2GB(4GB 권장).
bash
curl x-proxy.io/graylog | bash
GELF UDP 입력 생성
- Graylog → 시스템 → 입력 열기.
- GELF UDP를 선택하고 새 입력 시작 클릭.
- Bind 주소를
0.0.0.0으로, 포트를12201로 설정. - 저장 클릭.

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

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
옵션 B — SigNoz
SigNoz 설치 (커뮤니티)
요구 사항: Ubuntu Server 20.04, 22.04 또는 24.04. SigNoz Cloud를 사용하면 건너뛰세요.
bash
curl x-proxy.io/signoz | bash
SigNoz용 XProxy 구성
- 일반 설정 → 텔레메트리 로그 열기.
- 텔레메트리 활성화를 켜고 공급자로 SigNoz를 선택.
- OTLP/HTTP 엔드포인트 입력, 예:
https://ingest.us.signoz.cloud:4318. - 수집 키 붙여넣기(SigNoz Cloud) 또는 로컬 설치 시 비워 둠.
- 서비스 이름 설정(예:
xproxy-region-a). - 저장 후 연결 테스트 클릭.

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
로그 필드 참조
| 필드 | 설명 |
|---|---|
log_date | 로그 날짜 (DD/MM) |
log_time | 로그 시간 (HH:MM:SS) |
proxy_service | 서비스 그룹 이름 (예: MAIN) |
modem_position | 요청을 처리한 기기/슬롯 인덱스 |
proxy_protocol | HTTP 또는 SOCKS5 |
proxy_port | XProxy의 프록시 수신 포트 |
proxy_user | 인증에 사용된 사용자 이름(IP 화이트리스트면 비어 있음) |
client_ip | 프록시를 사용하는 클라이언트 IP |
destination_host | 프록시로 요청된 대상 호스트 |
destination_port | 대상 포트 |
action | CONNECT(터널) 또는 ACCESS(HTTP 요청) |
error_code | 00000 = 성공, 0이 아니면 오류 |
received_bytes | 대상에서 클라이언트로의 바이트 |
sent_bytes | 클라이언트에서 대상으로의 바이트 |
오류 코드 참조
XProxy는 로그에 다섯 자리 error_code를 출력합니다(예: 00000, 00004). 선행 0은 일관된 정렬과 필터링을 위해 의도된 것입니다.
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로 도달 가능해야 합니다. 수집 키와 워크스페이스 지역을 확인하세요.
모든 것이 작동하는지 확인
- Graylog —
service_name:xproxy-logs를 검색하고 오른쪽 패널에서 메시지 필드를 확인하세요. - SigNoz — Logs Explorer에서 구성한 정확한 서비스 이름으로 필터링하세요(예:
service.name = "xproxy-region-a"). 또는 필터를 지워 모든 로그를 보고 수집을 확인한 뒤, 아무 행이나 열어 속성을 확인하세요.
FAQ
로그가 스트리밍되는지 어떻게 확인하나요?
위의 모든 것이 작동하는지 확인 섹션을 사용하세요: Graylog에서 service_name:xproxy-logs를 검색하고, SigNoz에서는 Logs Explorer를 열어 service.name으로 필터링하세요.
기기나 지역을 어떻게 구분하나요?
서버별로 호스트 식별자를, 지역이나 클러스터별로 서비스 이름을 설정하세요. 이 라벨은 모든 로그에 표시됩니다.
proxy_user가 비어 있는 이유는?
IP 화이트리스트를 사용 중일 가능성이 높습니다 — 인증 사용자 이름이 없습니다.
CONNECT와 ACCESS의 차이는?
CONNECT는 터널 수립이고, ACCESS는 대상으로의 프록시된 HTTP 요청입니다.
오류에 알림을 설정하려면?
시간 창에서 error_code != "00000" 규칙을 만들고, service_name 또는 modem_position으로 그룹화해 출처를 찾으세요.
Was this page helpful?