Node "Reporting": Auflösen der Groß-/Kleinschreibung des Data Collector-Namens nach ServerDR
Summary: Nach der erneuten Bereitstellung eines Reporting-Node und der Durchführung von Server Disaster Recovery (ServerDR) werden neue Daten nicht synchronisiert, da beim Namen des Data Collectors zwischen Groß- und Kleinschreibung unterschieden werden muss. Die Datenbank hat "data-collector@report" (Kleinbuchstaben) gespeichert, während der Hostname des Node in Großbuchstaben geschrieben ist. Das Protokoll zeigt java.net.ConnectException: Es konnte keine Verbindung zu localhost/127.0.0.1:18455 hergestellt werden. Beheben Sie das Problem, indem Sie die Bereitstellung mit dem Hostnamen in der gleichen Groß-/Kleinschreibung wie beim Original durchführen und ServerDR erneut ausführen. Oder aktualisieren Sie die data_collector_name in PostgreSQL (collected_system Tabelle) auf die richtige Groß-/Kleinschreibung und starten Sie den Data-Collector-Service neu. ...
Symptoms
Beobachtete Probleme nach dem Reporting von Node-Neubereitstellung und ServerDR.
Folgende Symptome wurden identifiziert:
- Neue Daten, die nach der Durchführung von ServerDR gesammelt werden, werden in keinem Bericht angezeigt.
- Nur historische Daten bleiben im Berichtsbrowser sichtbar.
- Die Protokolle des Data-Collector-Service enthalten einen Verbindungsfehler.
- Eine Datenbankabfrage zeigt den in Klein-/Großbuchstaben gespeicherten Namen des Data Collectors an (z. B.
data-collector@report) enthalten. - Die Groß-/Kleinschreibung des aktuellen Reporting-Node unterscheidet sich von dem in der Datenbank aufgezeichneten Namen.
Relevante Protokolleinträge von /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)
Befehl, der zum Überprüfen der Collector-Datensätze in der Datenbank verwendet wird:
psql postgresql://reporting:Password123\!@127.0.0.1:9003/collected_business_data -c "select * from public.collected_system"
Cause
Nichtübereinstimmung zwischen Groß- und Kleinschreibung beim Namen des Data Collectors
Das Problem tritt auf, weil die data_collector_name Bei der Speicherung in der Reporting-Node-Datenbank wird zwischen Groß- und Kleinschreibung unterschieden. Nach der erneuten Bereitstellung des Reporting-Node ist der Hostname in Großbuchstaben geschrieben, während der ursprüngliche Hostname, der während ServerDR aufgezeichnet wurde, in Kleinbuchstaben geschrieben war. Diese Diskrepanz verhindert, dass der Data Collector Service den richtigen Eintrag findet, was zu Datensynchronisationsfehlern führt.
- Der Datenbankeintrag für
data_collector_namewird in Kleinbuchstaben gespeichert (z. B.data-collector@report ). - Der aktuelle Hostname des Reporting-Node ist großgeschrieben, aber der vorherige ServerDR-Hostname war klein geschrieben (z. B.
REPORT) enthalten. - Da beim Namensvergleich zwischen Groß- und Kleinschreibung unterschieden wird, kann der Service den gespeicherten Namen nicht mit dem aktuellen Hostnamen abgleichen.
Daraus resultierender Verbindungsfehler
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
Wiederherstellen von Reporting-Node-Daten nach ServerDR.
Option 1 – Erneute Bereitstellung des Reporting-Node mit dem richtigen Hostnamen.
Verwenden Sie diese Methode, wenn Sie eine saubere Neubereitstellung bevorzugen.
- Stellen Sie sicher, dass der neue Reporting-Node-Hostname **exakt** mit dem ursprünglichen Hostnamen übereinstimmt, einschließlich Groß- und Kleinschreibung (z. B. REPORT vs. report).
- Stellen Sie den Reporting-Node mit dem richtigen Hostnamen erneut bereit.
- Führen Sie ServerDR (Server Disaster Recovery) erneut auf dem Reporting-Node aus.
Option 2: Aktualisieren des Data Collector-Namens direkt in der Datenbank
Verwenden Sie diese Methode, um eine vollständige erneute Bereitstellung zu vermeiden.
- Melden Sie sich mit den entsprechenden Berechtigungen beim Reporting-Node an.
- Überprüfen Sie die aktuellen Datenerfassungseinträge:
psql postgresql://reporting:[PASSWORD]@127.0.0.1:9003/collected_business_data -c "SELECT * FROM public.collected_system;"
- Identifizieren Sie die Zeile, die den alten Hostnamen enthält, und notieren Sie sich seinen Adresswert (z. B. 192.168.1.15 ).
- So entsprechen Sie der aktuellen Groß-/Kleinschreibung des Hostnamens:
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]';"
Ersetzen Sie [HOSTNAME] durch den genauen Hostnamen des Reporting-Node (Groß- und Kleinschreibung beachten) und [IP_ADDRESS] durch die in Schritt 2 identifizierte Adresse. - Starten Sie den Datensammlerservice neu, um die Änderung zu übernehmen:
systemctl restart data-collector.service
Überprüfung:
- Überprüfen Sie das Data-Collector-Protokoll auf erfolgreiche Abfragen:
cat /var/log/reporting/logs/data-collector/data-collector.log | grep -i "Start to perform data collection"
NeinConnectExceptionEs sollten Fehler angezeigt werden. - Warten Sie etwa eine Stunde, öffnen Sie dann den Berichtsbrowser und überprüfen Sie, ob neu erfasste Daten zusammen mit den historischen Daten angezeigt werden.
data_collector_name Beim Feld wird zwischen Groß- und Kleinschreibung unterschieden. Eine Nichtübereinstimmung zwischen der Groß-/Kleinschreibung des Hostnamens und dem Datenbankeintrag verhindert die Datensynchronisation.