Nodo de generación de informes: Resolver la distinción de mayúsculas y minúsculas de nombre del Data Collector después de ServerDR
Summary: Después de volver a implementar un nodo de generación de informes y realizar la recuperación ante desastres del servidor (ServerDR), los datos nuevos no se sincronizan porque el nombre del recopilador de datos distingue mayúsculas de minúsculas. La base de datos almacenó "data-collector@report" (en minúsculas) mientras que el nombre de host del nodo está en mayúsculas. El registro muestra java.net.ConnectException: No se pudo establecer conexión al localhost/127.0.0.1:18455. Para resolverlo, vuelva a implementar con el nombre de host en el mismo caso que el original y vuelva a ejecutar ServerDR. O actualice el data_collector_name en PostgreSQL (tabla collected_system) con las mayúsculas y minúsculas correctas y reinicie el servicio del recopilador de datos. ...
Symptoms
Se observaron problemas después de informar la reimplementación de nodos y la DR del servidor.
Se identificaron los siguientes síntomas:
- Los datos nuevos recopilados después de ejecutar ServerDR no aparecen en ningún informe.
- Solo los datos históricos permanecen visibles en el Navegador de informes.
- Los registros del servicio del recopilador de datos contienen una falla de conexión.
- Una consulta de base de datos muestra el nombre del recopilador de datos almacenado en minúsculas/mayúsculas (p. ej.,
data-collector@report). - El nombre de host actual del nodo que informa está en un formato diferente (mayúsculas o minúsculas) que el nombre registrado en la base de datos.
Entradas de registro pertinentes de /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 utilizado para inspeccionar los registros del recopilador en la base de datos:
psql postgresql://reporting:Password123\!@127.0.0.1:9003/collected_business_data -c "select * from public.collected_system"
Cause
Discrepancia del nombre del recopilador de datos mediante distinción entre mayúsculas y minúsculas
El problema se produce porque el data_collector_name almacenados en la base de datos del nodo de generación de informes distinguen mayúsculas de minúsculas. Después de la reimplementación del nodo de generación de informes, su nombre de host está en mayúsculas, mientras que el nombre de host original registrado durante ServerDR estaba en minúsculas. Esta discrepancia impide que el servicio del recopilador de datos encuentre la entrada correcta, lo que provoca fallas en la sincronización de datos.
- La entrada de la base de datos para
data_collector_namese almacena en minúsculas (p. ej.,data-collector@report ). - El nombre de host actual del nodo de generación de informes está en mayúsculas, pero el nombre de host de ServerDR anterior estaba en minúsculas (p. ej.,
REPORT). - Dado que la comparación de nombres distingue mayúsculas de minúsculas, el servicio no puede hacer coincidir el nombre almacenado con el nombre de host actual.
Error de conexión resultante
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
Recupere los datos del nodo de generación de informes después de la DR del servidor.
Opción 1: vuelva a implementar el nodo de generación de informes con el nombre de host correcto.
Use este método cuando prefiera una reimplementación limpia.
- Asegúrese de que el nuevo nombre de host del nodo de generación de informes coincida con el nombre de host original **exactamente**, incluido el caso (p. ej., INFORME frente a informe ).
- Vuelva a implementar el nodo de generación de informes con el nombre de host correcto.
- Vuelva a ejecutar ServerDR (Server Disaster Recovery) en el nodo de generación de informes.
Opción 2: actualice el nombre del Data Collector directamente en la base de datos
Utilice este método para evitar una reimplementación completa.
- Inicie sesión en el nodo de generación de informes con los privilegios adecuados.
- Verifique las entradas actuales del recopilador de datos:
psql postgresql://reporting:[PASSWORD]@127.0.0.1:9003/collected_business_data -c "SELECT * FROM public.collected_system;"
- Identifique la fila que contiene el nombre de host anterior y anote su valor de dirección (p. ej., 192.168.1.15 ).
- Para que coincida con el caso del nombre de host actual:
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]';"
Reemplace [HOSTNAME] por el nombre de host exacto del nodo que informa (distingue mayúsculas de minúsculas) y [IP_ADDRESS] por la dirección identificada en el paso 2. - Reinicie el servicio del recopilador de datos para aplicar el cambio:
systemctl restart data-collector.service
Verificación
- Compruebe el registro del recopilador de datos para ver si las consultas se realizaron correctamente:
cat /var/log/reporting/logs/data-collector/data-collector.log | grep -i "Start to perform data collection"
NoConnectExceptionDeberían aparecer errores. - Espere aproximadamente una hora, abra el Navegador de informes y verifique que los datos recopilados recientemente aparezcan junto con los datos históricos.
data_collector_name distingue mayúsculas de minúsculas. Una falta de coincidencia entre las mayúsculas y minúsculas del nombre de host y la entrada de la base de datos impide la sincronización de datos.