Węzeł raportowania: Rozpoznawanie uwzględniania wielkości liter w nazwie modułu zbierającego dane po ServerDR
Summary: Po ponownym wdrożeniu węzła raportowania i wykonaniu odzyskiwania po awarii serwera (ServerDR) nowe dane nie są synchronizowane, ponieważ w nazwie modułu zbierającego dane jest rozróżniana wielkość liter. Baza danych przechowywała "data-collector@report" (małe litery), podczas gdy nazwa hosta węzła jest pisana wielkimi literami. Dziennik pokazuje wyjątek java.net.ConnectException: Nie udało się nawiązać połączenia z localhost/127.0.0.1:18455. Rozwiąż problem, ponownie wdrażając z nazwą hosta w tym samym przypadku co oryginał i ponownie uruchom ServerDR. Możesz też zaktualizować data_collector_name w bazie danych PostgreSQL (collected_system tabeli) do odpowiedniego przypadku i ponownie uruchomić usługę zbierania danych. ...
Symptoms
Zaobserwowano problemy po zgłoszeniu ponownego wdrożenia węzła i ServerDR.
Zidentyfikowano następujące objawy:
- Nowe dane zebrane po wykonaniu ServerDR nie pojawiają się w żadnych raportach.
- W przeglądarce raportów widoczne są tylko dane historyczne.
- Dzienniki usługi zbierania danych zawierają błąd połączenia.
- Zapytanie do bazy danych pokazuje nazwę modułu zbierającego dane zapisaną małymi literami/wielkimi literami (np.
data-collector@report). - Bieżąca nazwa hosta węzła raportowania jest zapisana w innej wielkości liter (wielkie lub małe) niż nazwa zarejestrowana w bazie danych.
Odpowiednie wpisy dziennika z /var/log/reporting/logs/data-collector/data-collector.log :
2026-02-10T06:45:00.006Z INFO [] [DataCollectionQuartzScheduler_Worker-1] [c.e.b.d.c.s.DataCollectionJob.execute(17)] - Start to perform data collection.
2026-02-10T06:45:00.007Z INFO [] [DataCollectionQuartzScheduler_Worker-1] [c.e.b.d.c.s.d.c.DataCollectionService.doCollect(93)] - Query systems by data collector data-collector@REPORT.
2026-02-10T06:45:00.113Z ERROR [] [DataCollectionQuartzScheduler_Worker-1] [c.e.b.d.c.a.CollectedSystemApiServiceImpl.findAllByDataCollectorName(227)] - Error finding all by data collector name: data-collector@gcntnb05
java.net.ConnectException: Failed to connect to localhost/127.0.0.1:18455
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
Polecenie używane do sprawdzania rekordów modułu zbierającego w bazie danych:
psql postgresql://reporting:Password123\!@127.0.0.1:9003/collected_business_data -c "select * from public.collected_system"
Cause
Niezgodność wielkości liter w nazwie modułu zbierającego dane
Problem występuje, ponieważ data_collector_name Przechowywane w bazie danych węzła raportowania są rozróżniane wielkie i małe litery. Po ponownym wdrożeniu węzła raportowania jego nazwa hosta jest zapisana wielkimi literami, podczas gdy oryginalna nazwa hosta zarejestrowana podczas ServerDR została zapisana małymi literami. Ta rozbieżność uniemożliwia usłudze zbierania danych zlokalizowanie prawidłowego wpisu, powodując niepowodzenia synchronizacji danych.
- Wpis w bazie danych dla
data_collector_namejest przechowywany małymi literami (np.data-collector@report ). - Bieżąca nazwa hosta węzła raportowania jest pisana wielkimi literami, ale poprzednia nazwa hosta ServerDR była pisana małymi literami (np.
REPORT). - Ponieważ w porównaniu nazw jest rozróżniana wielkość liter, usługa nie może dopasować przechowywanej nazwy do bieżącej nazwy hosta.
Wynikowy błąd połączenia
2026-02-10T06:45:00.113Z ERROR [] [DataCollectionQuartzScheduler_Worker-1] [c.e.b.d.c.a.CollectedSystemApiServiceImpl.findAllByDataCollectorName(227)] - Error finding all by data collector name: data-collector@REPORT
java.net.ConnectException: Failed to connect to localhost/127.0.0.1:18455
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)Resolution
Odzyskaj dane węzła raportowania po ServerDR.
Opcja 1 — Ponowne wdrożenie węzła raportowania z prawidłową nazwą hosta.
Użyj tej metody, jeśli wolisz czyste ponowne wdrożenie.
- Upewnij się, że nowa nazwa hosta węzła raportowania jest zgodna z oryginalną nazwą hosta **dokładnie**, łącznie z wielkością liter (np. REPORT vs report).
- Ponownie wdróż węzeł raportowania, używając prawidłowej nazwy hosta.
- Ponownie wykonaj odzyskiwanie po awarii serwera (ServerDR) w węźle raportowania.
Opcja 2 – Zaktualizuj nazwę modułu zbierającego dane bezpośrednio w bazie danych
Użyj tej metody, aby uniknąć pełnego ponownego wdrożenia.
- Zaloguj się do węzła raportowania z odpowiednimi uprawnieniami.
- Sprawdź bieżące wpisy modułu zbierającego dane:
psql postgresql://reporting:[PASSWORD]@127.0.0.1:9003/collected_business_data -c "SELECT * FROM public.collected_system;"
- Zidentyfikuj wiersz zawierający starą nazwę hosta i zanotuj jego wartość adresu (np. 192.168.1.15 ).
- Aby dopasować wielkość liter w bieżącej nazwie hosta:
postgresql://reporting:[PASSWORD]@127.0.0.1:9003/collected_business_data -c "UPDATE public.collected_system SET data_collector_name='data-collector@[HOSTNAME]' WHERE address='[IP_ADDRESS]';"
Zastąp [HOSTNAME] dokładną nazwą hosta węzła raportowania (z uwzględnieniem wielkości liter) i [IP_ADDRESS] adresem określonym w kroku 2. - Uruchom ponownie usługę gromadzenia danych, aby zastosować zmianę:
systemctl restart data-collector.service
Weryfikacja
- Sprawdź dziennik modułu zbierającego dane, aby uzyskać pomyślne zapytania:
cat /var/log/reporting/logs/data-collector/data-collector.log | grep -i "Start to perform data collection"
NieConnectExceptionpowinny pojawić się błędy. - Odczekaj około godziny, a następnie otwórz przeglądarkę raportów i sprawdź, czy nowo zebrane dane są wyświetlane obok danych historycznych.
data_collector_name W polu rozróżniana jest wielkość liter. Niezgodność wielkości liter w nazwie hosta z wpisem w bazie danych uniemożliwia synchronizację danych.