Nodo di reporting: Risoluzione della distinzione tra maiuscole e minuscole del nome del data collector dopo il ripristino di emergenza del server
Summary: Dopo la ridistribuzione di un nodo di reporting e l'esecuzione di Server Disaster Recovery (ServerDR), i nuovi dati non vengono sincronizzati perché il nome dell'agente di raccolta dati distingue tra maiuscole e minuscole. Il database ha archiviato "data-collector@report" (lettera minuscola), mentre il nome host del nodo è maiuscolo. Il registro mostra java.net.ConnectException: Impossibile connettersi a localhost/127.0.0.1:18455. Risolvere il problema eseguendo nuovamente l'implementazione con il nome host nello stesso caso del server DR originale ed eseguirlo nuovamente. In alternativa, aggiornare il data_collector_name in PostgreSQL (tabella collected_system) alle maiuscole e minuscole corrette e riavviare il servizio di raccolta dati. ...
Symptoms
Problemi osservati dopo la segnalazione della reimplementazione dei nodi e del ripristino di emergenza del server.
Sono stati identificati i seguenti sintomi:
- I nuovi dati raccolti dopo l'esecuzione di ServerDR non vengono visualizzati in alcun report.
- Solo i dati cronologici rimangono visibili nel Report Browser.
- I log del servizio di raccolta dati contengono un errore di connessione.
- Una query del database mostra il nome dell'agente di raccolta dati archiviato in lettere minuscole/maiuscole (ad es.
data-collector@report). - Il nome host corrente del nodo di reporting è scritto in maiuscole e minuscole diverse (maiuscole o minuscole) rispetto al nome registrato nel database.
Voci di registro rilevanti da /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)
Comando utilizzato per ispezionare i record di raccolta nel database:
psql postgresql://reporting:Password123\!@127.0.0.1:9003/collected_business_data -c "select * from public.collected_system"
Cause
Mancata corrispondenza tra maiuscole e minuscole del nome dell'agente di raccolta dati
Il problema si verifica perché il data_collector_name archiviato nel database del nodo di reporting distingue tra maiuscole e minuscole. Dopo aver ridistribuito il nodo di reporting, il relativo nome host è in maiuscolo, mentre il nome host originale registrato durante ServerDR è in minuscolo. Questa discrepanza impedisce al servizio di raccolta dati di individuare la voce corretta, causando errori di sincronizzazione dei dati.
- La voce del database per
data_collector_nameviene memorizzato in lettere minuscole (ad es.data-collector@report ). - Il nome host corrente del nodo di reporting è in maiuscolo, ma il precedente nome host ServerDR era minuscolo (ad es.
REPORT). - Poiché il confronto tra nomi distingue tra maiuscole e minuscole, il servizio non può far corrispondere il nome archiviato con il nome host corrente.
Errore di connessione risultante
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
Ripristinare i dati del nodo di reporting dopo il ripristino di emergenza del server.
Opzione 1 - Reimplementare il nodo di reporting con il nome host corretto.
Utilizzare questo metodo se si preferisce un redeployment pulito.
- Assicurarsi che il nuovo nome host del nodo di reporting corrisponda **esattamente** al nome host originale, includendo le maiuscole e minuscole (ad esempio, REPORT vs report ).
- Reimplementare il nodo di reporting utilizzando il nome host corretto.
- Eseguire nuovamente ServerDR (Server Disaster Recovery) sul nodo di reporting.
Opzione 2 - Aggiornare il nome dell'agente di raccolta dati direttamente nel database
Utilizzare questo metodo per evitare un redeployment completo.
- Accedere al nodo di reporting con i privilegi appropriati.
- Verificare le voci correnti dei raccoglitori dati:
psql postgresql://reporting:[PASSWORD]@127.0.0.1:9003/collected_business_data -c "SELECT * FROM public.collected_system;"
- Identificare la riga che contiene il vecchio nome host e annotarne il valore dell'indirizzo (ad esempio, 192.168.1.15 ).
- Per utilizzare le maiuscole e minuscole del nome host corrente:
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]';"
Sostituire [HOSTNAME] con il nome host esatto del nodo di reporting (con distinzione tra maiuscole e minuscole) e [IP_ADDRESS] con l'indirizzo indicato nel passaggio 2. - Riavviare il servizio di raccolta dati per applicare la modifica:
systemctl restart data-collector.service
Verifica
- Controllare il log dell'agente di raccolta dati per verificare l'esito positivo delle query:
cat /var/log/reporting/logs/data-collector/data-collector.log | grep -i "Start to perform data collection"
NoConnectExceptionDovrebbero essere visualizzati degli errori. - Attendere circa un'ora, quindi aprire Report Browser e verificare che i dati appena raccolti vengano visualizzati insieme ai dati cronologici.
data_collector_name Il campo distingue tra maiuscole e minuscole. Una mancata corrispondenza tra le maiuscole e minuscole del nome host e la voce del database impedisce la sincronizzazione dei dati.