रीयल-टाइम टेलीमेट्री लॉग स्ट्रीमिंग

अपने 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 मिनट तक लॉग भेजना बंद कर दे तो अलर्ट करें; नए नोड जोड़ने के बाद टेस्ट कनेक्शन पुनः चलाएँ।

विकल्प A — Graylog

Graylog इंस्टॉल करें

आवश्यकताएँ: Ubuntu Server 20.04 या 22.04, न्यूनतम 2 GB RAM (4 GB अनुशंसित)।

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. टेलीमेट्री सक्षम करें टॉगल को ON करें।
  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. टेलीमेट्री सक्षम करें को ON करें और प्रदाता के रूप में 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 = सफलता; शून्येतर = त्रुटि
received_bytesगंतव्य से क्लाइंट तक बाइट्स
sent_bytesक्लाइंट से गंतव्य तक बाइट्स

त्रुटि कोड संदर्भ

XProxy लॉग में पाँच-अंकीय error_code उत्सर्जित करता है (जैसे 00000, 00004)। सुसंगत सॉर्टिंग और फ़िल्टरिंग के लिए अग्रणी शून्य जानबूझकर रखे गए हैं।

  • 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 — लॉग एक्सप्लोरर में, अपने कॉन्फ़िगर किए गए सटीक सेवा नाम से फ़िल्टर करें, जैसे service.name = "xproxy-region-a"। या सभी लॉग देखने और इंजेशन की पुष्टि करने के लिए फ़िल्टर साफ़ करें; विशेषताएँ देखने के लिए कोई भी पंक्ति खोलें।

अक्सर पूछे जाने वाले प्रश्न

मैं कैसे सत्यापित करूँ कि लॉग स्ट्रीम हो रहे हैं?

ऊपर सत्यापित करें कि सब कुछ काम कर रहा है अनुभाग का उपयोग करें: Graylog में service_name:xproxy-logs खोजें; SigNoz में लॉग एक्सप्लोरर खोलें और service.name से फ़िल्टर करें।

डिवाइस या क्षेत्रों में अंतर कैसे करें?

प्रति सर्वर होस्ट पहचानकर्ता और प्रति क्षेत्र या क्लस्टर सेवा नाम सेट करें। ये लेबल प्रत्येक लॉग में दिखाई देते हैं।

proxy_user खाली क्यों है?

आप संभवतः IP श्वेतसूची का उपयोग कर रहे हैं; प्रमाणीकरण उपयोगकर्ता नाम मौजूद नहीं है।

CONNECT और ACCESS में क्या अंतर है?

CONNECT एक टनल स्थापित करना है; ACCESS किसी गंतव्य के लिए प्रॉक्सी किया गया HTTP अनुरोध है।

मैं त्रुटियों पर अलर्ट कैसे कर सकता हूँ?

समय अवधि में error_code != "00000" पर एक नियम बनाएँ; स्रोत का पता लगाने के लिए service_name या modem_position के अनुसार समूहित करें।