Streaming log telemetri waktu nyata

Streaming log akses proxy dari server XProxy Anda ke Graylog atau SigNoz secara real-time — pantau banyak perangkat dari satu tempat, bangun dasbor, dan beri peringatan atas error.

Mengapa menggunakan streaming log terpusat?

  • Pemantauan terpadu — pantau akses dan kesehatan di semua node XProxy secara real-time.
  • Pencarian mudah — filter berdasarkan perangkat, wilayah, aksi, atau kode error.
  • Pemecahan masalah lebih cepat — isolasi error, lonjakan trafik, atau perilaku tidak normal dengan cepat.
Konfigurasi di: XProxy → Pengaturan Umum → Log Telemetri. Penyedia yang didukung: Graylog (GELF UDP) dan SigNoz (OTLP/HTTP).

Pelabelan yang disarankan

  • Identifier Host — nama per server, mis. sg-core-01, us-east-02.
  • Nama Layanan — kelompokkan berdasarkan wilayah atau unit bisnis, mis. xproxy-region-a.

Setiap log membawa label ini, sehingga memudahkan pembuatan dasbor dan filter lintas perangkat.

Kasus penggunaan umum

  • Penghitungan IP klien unik — perkirakan trafik nyata dan temukan sumber yang tidak dikenal.
  • Pelacakan tingkat error — filter error_code != 00000 untuk mengukur keandalan.
  • Destinasi teratas & bandwidth — kelompokkan berdasarkan destination_host, jumlahkan received_bytes dan sent_bytes.
  • Pemantauan per perangkat/port — gunakan modem_position, proxy_port, proxy_service untuk mengisolasi dongle tertentu.
  • Deteksi anomali — beri peringatan saat terjadi lonjakan trafik mendadak atau kode error meningkat.

Tips operasional untuk banyak perangkat

  • Penamaan konsisten — standarkan Host Identifier dan Service Name berdasarkan wilayah atau grup.
  • Pemisahan lingkungan — gunakan prefiks seperti prod- / stg- pada Service Name.
  • Perencanaan retensi — atur rotasi indeks di Graylog; pantau penggunaan/retensi di SigNoz Cloud.
  • Peringatan kesehatan — beri peringatan saat sebuah node berhenti mengirim log selama N menit; jalankan ulang Test Connection setelah menambahkan node baru.

Opsi A — Graylog

Instal Graylog

Persyaratan: Ubuntu Server 20.04 atau 22.04, minimal RAM 2 GB (disarankan 4 GB).

bash
curl x-proxy.io/graylog | bash
Instalasi Graylog

Buat input GELF UDP

  1. Buka Graylog → Sistem → Input.
  2. Pilih GELF UDP lalu klik Luncurkan input baru.
  3. Atur alamat Bind ke 0.0.0.0 dan Port ke 12201.
  4. Klik Simpan.
Input GELF UDP Graylog

Konfigurasi XProxy untuk Graylog

  1. Buka Pengaturan Umum → Log Telemetri.
  2. Alihkan Aktifkan Telemetri ke ON.
  3. Atur Penyedia ke Graylog.
  4. Masukkan Server Graylog sebagai YOUR_GRAYLOG_IP:12201.
  5. Atur Identifier Host dan Nama Layanan (opsional tetapi disarankan).
  6. Klik Simpan, lalu Uji Koneksi.
Formulir konfigurasi Graylog XProxy

Contoh kueri di 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
Hasil pencarian Graylog

Opsi B — SigNoz

Instal SigNoz (Community)

Persyaratan: Ubuntu Server 20.04, 22.04, atau 24.04. Lewati jika menggunakan SigNoz Cloud.

bash
curl x-proxy.io/signoz | bash
Instalasi SigNoz

Konfigurasi XProxy untuk SigNoz

  1. Buka Pengaturan Umum → Log Telemetri.
  2. Alihkan Aktifkan Telemetri ke ON lalu pilih SigNoz sebagai Penyedia.
  3. Masukkan Endpoint OTLP/HTTP, mis. https://ingest.us.signoz.cloud:4318.
  4. Tempelkan Kunci Ingesti Anda (SigNoz Cloud) atau biarkan kosong untuk instalasi lokal.
  5. Atur Nama Layanan (mis. xproxy-region-a).
  6. Klik Simpan, lalu Uji Koneksi.
Formulir konfigurasi SigNoz XProxy

Contoh kueri di 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
Penjelajah Log SigNoz

Referensi field log

FieldDeskripsi
log_dateTanggal log (DD/MM)
log_timeWaktu log (HH:MM:SS)
proxy_serviceNama grup layanan (mis. MAIN)
modem_positionIndeks perangkat/slot yang melayani permintaan
proxy_protocolHTTP atau SOCKS5
proxy_portPort proxy yang mendengarkan di XProxy
proxy_userNama pengguna yang digunakan untuk autentikasi (kosong untuk whitelist IP)
client_ipIP klien yang menggunakan proxy
destination_hostHost tujuan yang diminta melalui proxy
destination_portPort tujuan
actionCONNECT (tunnel) atau ACCESS (permintaan HTTP)
error_code00000 = berhasil; bukan nol = error
received_bytesByte dari tujuan ke klien
sent_bytesByte dari klien ke tujuan

Referensi kode error

XProxy memancarkan error_code lima digit dalam log (mis. 00000, 00004). Angka nol di depan disengaja agar pengurutan dan pemfilteran konsisten.

  • 00000 — Berhasil (koneksi ditutup secara normal)
  • 00001–00009 — Error autentikasi (ACL/nama pengguna/kata sandi)
  • 00010 — Batas trafik terlampaui
  • 00011–00019 — Error koneksi (socket/bind/connect)
  • 00020–00029 — Error internal (mis. alokasi memori)
  • 00030–00039 — Error pengalihan proxy HTTP CONNECT
  • 00050–00069 — Error pengalihan proxy SOCKS5
  • 00090–00099 — Timeout koneksi / masalah jaringan
  • 00100 — Host tidak ditemukan
  • 00200–00299 — Error portmapper UDP
  • 00300–00399 — Error portmapper TCP
  • 00400–00499 — Error proxy SOCKS
  • 00500–00599 — Error proxy HTTP

Pemecahan masalah

  • Tidak ada data — pastikan telemetri diaktifkan dan Anda mengklik Simpan. Hasilkan trafik melalui port proxy mana pun.
  • Graylog — pastikan input GELF UDP berjalan di port 12201 dan firewall mengizinkan UDP 12201.
  • SigNoz — endpoint harus menyertakan port 4318 dan dapat dijangkau melalui HTTPS. Verifikasi kunci ingest dan wilayah workspace.

Verifikasi semuanya berfungsi

  • Graylog — cari service_name:xproxy-logs dan periksa field pesan di panel kanan.
  • SigNoz — di Logs Explorer, filter berdasarkan nama layanan persis yang Anda konfigurasi, mis. service.name = "xproxy-region-a". Atau hapus filter untuk melihat semua log dan memastikan ingest; buka baris mana pun untuk melihat atribut.

FAQ

Bagaimana cara memverifikasi log sedang streaming?

Gunakan bagian Verifikasi semuanya berfungsi di atas: di Graylog cari service_name:xproxy-logs; di SigNoz buka Logs Explorer dan filter berdasarkan service.name.

Bagaimana membedakan perangkat atau wilayah?

Atur Host Identifier per server dan Service Name per wilayah atau klaster. Label ini muncul di setiap log.

Mengapa proxy_user kosong?

Kemungkinan Anda menggunakan whitelist IP; nama pengguna autentikasi tidak tersedia.

Apa perbedaan antara CONNECT dan ACCESS?

CONNECT adalah pembuatan tunnel; ACCESS adalah permintaan HTTP yang diproksikan ke tujuan.

Bagaimana cara memberi peringatan atas error?

Buat aturan pada error_code != "00000" dalam jendela waktu; kelompokkan berdasarkan service_name atau modem_position untuk menemukan sumbernya.