Strumieniowanie logów telemetrii w czasie rzeczywistym
Przesyłaj logi dostępu proxy z serwera XProxy do Graylog lub SigNoz w czasie rzeczywistym — monitoruj wiele urządzeń z jednego miejsca, buduj pulpity nawigacyjne i otrzymuj alerty o błędach.
Dlaczego warto korzystać ze scentralizowanego strumieniowania logów?
- Ujednolicone monitorowanie — obserwuj dostęp i stan wszystkich węzłów XProxy w czasie rzeczywistym.
- Łatwe wyszukiwanie — filtruj według urządzenia, regionu, akcji lub kodu błędu.
- Szybsze rozwiązywanie problemów — szybko izoluj błędy, skoki ruchu lub nietypowe zachowania.
Zalecane etykietowanie
- Identyfikator hosta — nazwa przypadająca na serwer, np.
sg-core-01,us-east-02. - Nazwa usługi — grupowanie według regionu lub jednostki biznesowej, np.
xproxy-region-a.
Każdy log zawiera te etykiety, co ułatwia budowanie pulpitów nawigacyjnych i filtrów obejmujących wiele urządzeń.
Typowe przypadki użycia
- Zliczanie unikalnych adresów IP klientów — oszacuj rzeczywisty ruch i wykryj nieznane źródła.
- Śledzenie wskaźnika błędów — filtruj
error_code != 00000, aby mierzyć niezawodność. - Najpopularniejsze miejsca docelowe i przepustowość — grupuj według
destination_host, sumujreceived_bytesisent_bytes. - Monitorowanie per urządzenie/port — użyj
modem_position,proxy_port,proxy_service, aby wyizolować konkretny dongle. - Wykrywanie anomalii — alertuj o nagłych skokach ruchu lub podwyższonych kodach błędów.
Wskazówki operacyjne dla wielu urządzeń
- Spójne nazewnictwo — standaryzuj Identyfikator hosta i Nazwę usługi według regionu lub grupy.
- Separacja środowisk — używaj prefiksów takich jak
prod-/stg-w Nazwie usługi. - Planowanie retencji — ustaw rotację indeksów w Graylog; monitoruj użycie/retencję w SigNoz Cloud.
- Alerty o stanie — alertuj, gdy węzeł przestanie wysyłać logi przez N minut; ponownie uruchom Test połączenia po dodaniu nowych węzłów.
Opcja A — Graylog
Instalacja Graylog
Wymagania: Ubuntu Server 20.04 lub 22.04, minimum 2 GB RAM (zalecane 4 GB).
curl x-proxy.io/graylog | bash
Utwórz wejście GELF UDP
- Otwórz Graylog → System → Wejścia.
- Wybierz GELF UDP i kliknij Uruchom nowe wejście.
- Ustaw adres powiązania na
0.0.0.0i port na12201. - Kliknij Zapisz.

Konfiguracja XProxy dla Graylog
- Otwórz Ustawienia ogólne → Logi telemetryczne.
- Włącz przełącznik Włącz telemetrię.
- Ustaw dostawcę na Graylog.
- Wpisz serwer Graylog jako
YOUR_GRAYLOG_IP:12201. - Ustaw Identyfikator hosta i Nazwę usługi (opcjonalne, ale zalecane).
- Kliknij Zapisz, a następnie Test połączenia.

Przykłady zapytań w Graylog
# By service/cluster
service_name:xproxy-region-a
# Only errors
error_code:!00000
# By action
action:CONNECT
# By device/slot
modem_position:3
Opcja B — SigNoz
Instalacja SigNoz (Community)
Wymagania: Ubuntu Server 20.04, 22.04 lub 24.04. Pomiń w przypadku korzystania z SigNoz Cloud.
curl x-proxy.io/signoz | bash
Konfiguracja XProxy dla SigNoz
- Otwórz Ustawienia ogólne → Logi telemetryczne.
- Włącz Włącz telemetrię i wybierz SigNoz jako dostawcę.
- Wpisz punkt końcowy OTLP/HTTP, np.
https://ingest.us.signoz.cloud:4318. - Wklej swój klucz pozyskiwania (SigNoz Cloud) lub pozostaw pole puste w przypadku instalacji lokalnej.
- Ustaw Nazwę usługi (np.
xproxy-region-a). - Kliknij Zapisz, a następnie Test połączenia.

Przykłady zapytań w SigNoz
# 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
Referencja pól logu
| Pole | Opis |
|---|---|
log_date | Data logu (DD/MM) |
log_time | Czas logu (HH:MM:SS) |
proxy_service | Nazwa grupy usług (np. MAIN) |
modem_position | Indeks urządzenia/gniazda obsługującego żądanie |
proxy_protocol | HTTP lub SOCKS5 |
proxy_port | Port nasłuchu proxy w XProxy |
proxy_user | Nazwa użytkownika użyta do uwierzytelnienia (pusta dla białej listy IP) |
client_ip | Adres IP klienta korzystającego z proxy |
destination_host | Host docelowy żądany przez proxy |
destination_port | Port docelowy |
action | CONNECT (tunel) lub ACCESS (żądanie HTTP) |
error_code | 00000 = powodzenie; wartość niezerowa = błąd |
received_bytes | Bajty z miejsca docelowego do klienta |
sent_bytes | Bajty z klienta do miejsca docelowego |
Referencja kodów błędów
XProxy emituje w logach pięciocyfrowy error_code (np. 00000, 00004). Zera wiodące są celowe — zapewniają spójne sortowanie i filtrowanie.
00000— Powodzenie (połączenie zamknięte normalnie)00001–00009— Błędy uwierzytelniania (ACL/nazwa użytkownika/hasło)00010— Przekroczono limit ruchu00011–00019— Błędy połączenia (socket/bind/connect)00020–00029— Błędy wewnętrzne (np. alokacja pamięci)00030–00039— Błędy przekierowania proxy HTTP CONNECT00050–00069— Błędy przekierowania proxy SOCKS500090–00099— Przekroczenia limitu czasu połączenia / problemy sieciowe00100— Nie znaleziono hosta00200–00299— Błędy portmappera UDP00300–00399— Błędy portmappera TCP00400–00499— Błędy proxy SOCKS00500–00599— Błędy proxy HTTP
Rozwiązywanie problemów
- Brak danych — upewnij się, że telemetria jest włączona i że kliknięto Zapisz. Wygeneruj ruch przez dowolny port proxy.
- Graylog — potwierdź, że wejście GELF UDP działa na porcie 12201 i że zapora sieciowa zezwala na ruch UDP 12201.
- SigNoz — punkt końcowy musi zawierać port 4318 i być osiągalny przez HTTPS. Zweryfikuj klucz pozyskiwania i region obszaru roboczego.
Sprawdź, czy wszystko działa
- Graylog — wyszukaj
service_name:xproxy-logsi sprawdź pola wiadomości w prawym panelu. - SigNoz — w Eksploratorze logów filtruj według dokładnie skonfigurowanej nazwy usługi, np.
service.name = "xproxy-region-a". Możesz też wyczyścić filtry, aby zobaczyć wszystkie logi i potwierdzić pozyskiwanie; otwórz dowolny wiersz, aby zobaczyć atrybuty.
FAQ
Jak zweryfikować, że logi są strumieniowane?
Skorzystaj z sekcji Sprawdź, czy wszystko działa powyżej: w Graylog wyszukaj service_name:xproxy-logs; w SigNoz otwórz Eksplorator logów i filtruj według service.name.
Jak rozróżniać urządzenia lub regiony?
Ustaw Identyfikator hosta dla każdego serwera i Nazwę usługi dla każdego regionu lub klastra. Te etykiety pojawiają się w każdym logu.
Dlaczego pole proxy_user jest puste?
Prawdopodobnie używasz białej listy IP; nazwa użytkownika uwierzytelniania nie jest obecna.
Jaka jest różnica między CONNECT a ACCESS?
CONNECT to nawiązywanie tunelu; ACCESS to żądanie HTTP przez proxy do miejsca docelowego.
Jak mogę alertować o błędach?
Utwórz regułę na error_code != "00000" w oknie czasowym; grupuj według service_name lub modem_position, aby wskazać źródło.