Esta página describe problemas comunes de conexión de puntos finales privados y posibles soluciones.
Clusters exclusivos
Verifique el estado de sus conexiones de AWS PrivateLink.
Para ver el estado de cada punto final privado:
En Atlas, vaya a la Database & Network Access Página para su proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
El Se muestra lapágina Acceso a bases de datos y redes.
Haz clic en la pestaña Private Endpoint.
Revisar los estados.
Los campos Atlas Endpoint Service Status y Endpoint Status muestran el estado de cada punto final privado.
Consulte los siguientes estados para ayudarlo a determinar el estado de sus conexiones de puntos finales privados:
Atlas Endpoint Service Status
Estado | Descripción |
|---|---|
Creando un enlace privado | Atlas está creando el balanceador de carga de red y Recursosde VPC. |
Fallido | Se ha producido un fallo en el sistema. |
Disponible | El balanceador de carga de red Atlas y el servicio de punto final de VPC están creados y listos para recibir solicitudes de conexión. |
Borrando | Atlas está eliminando el servicio de punto final privado. |
Endpoint Status
Estado | Descripción | |||
|---|---|---|---|---|
No configurado | Atlas creó el balanceador de carga de red y el servicio de punto de conexión de VPC, pero AWS aún no ha creado el punto de conexión de interfaz. Haga clic Edit en y complete el asistente para crear el punto de conexión de interfaz. | |||
Pendiente de aceptación | AWS ha recibido la solicitud de conexión de tu endpoint de la interfaz al VPC servicio de puntos finales de Atlas. | |||
Pendiente | AWS está estableciendo la conexión entre el punto final de su interfaz y el servicio de punto final de Atlas VPC. | |||
Fallido | AWS no pudo establecer una conexión entre los recursos de la VPC de Atlas y el punto de conexión de la interfaz en su VPC. Edit Haga clic en, verifique que la información proporcionada sea correcta y vuelva a crear el punto de conexión privado. IMPORTANTE: Si tu Endpoint de Interfaz falla, es posible que veas el siguiente mensaje: Este mensaje indica que no especificó una subred cuando creó la conexión de AWS PrivateLink. Para resolver este error:
| |||
Disponible | Los recursos de Atlas VPC se conectan al punto de conexión de la interfaz de su VPC. Puede conectarse a los clústeres de Atlas en esta región mediante AWS PrivateLink. | |||
Borrando | Atlas está eliminando el punto final de la interfaz del servicio de punto final privado. |
Asegúrese de que sus grupos de seguridad estén configurados correctamente.
Para cada recurso que necesite conectarse a sus clústeres Atlas mediante AWS PrivateLink, el grupo de seguridad del recurso debe permitir el tráfico saliente a las direcciones IP privadas del punto final de la interfaz en todos los puertos ( 102465535-).
Consulte Agregar reglas a un grupo de seguridad Para más información.
Su grupo de seguridad de punto final de interfaz debe permitir el tráfico entrante en todos los puertos desde cada recurso que necesite conectarse a sus clústeres Atlas mediante AWS PrivateLink.
Direcciones IP de instancia de lista de acceso o grupos de seguridad para permitir que el tráfico proveniente de ellas llegue al grupo de seguridad del endpoint de la interfaz.
Obtenga direcciones IP privadas con búsqueda DNS
Cuando un cliente en la VPC se conecta a un clúster de Atlas utilizando una de estas cadenas de conexión con reconocimiento de nodo privado, el cliente intenta establecer una conexión con el balanceador de carga en la VPC de Atlas a través de uno de los endpoints de la interfaz. El mecanismo de resolución de DNS del cliente gestiona a qué endpoint de la interfaz se resuelve el nombre de host. Si un endpoint de la interfaz no está disponible, se utiliza el siguiente. Esto es opaco para el driver o cualquier otro mecanismo de conexión. El driver solo es consciente del nombre de host en el registro SRV o en la cadena de conexión.
Registro SRV para cadenas de conexión con reconocimiento de nodos de la lista de semillas DNS
El siguiente ejemplo muestra el registro SRV para un clúster de una sola región habilitado para AWS PrivateLink, que muestra tres puertos únicos definidos para pl-0-us-east-1.k45tj.mongodb.net:
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1.k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1.k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1.k45tj.mongodb.net.
En el ejemplo precedente:
_mongodb._tcp.cluster0-pl-0.k45tj.mongodb.netes el registro SRV al que hace referencia la cadena de conexión demongodb+srv://cluster0-pl-0.k45tj.mongodb.net.pl-0-us-east-1.k45tj.mongodb.netes el nombre de host de cada nodo en un clúster de Atlas en una región para la cual has configurado AWS PrivateLink.1024,1025y1026son puertos únicos que Atlas asigna en el balanceador de carga para cada nodo del set de réplicas de Atlas en la región para la que has habilitado AWS PrivateLink. Todos los nodos en un set de réplicas de Atlas son accesibles a través del mismo nombre de host, donde el balanceador de carga resuelve los nodos individuales por su puerto único.
Resolución de DNS del nombre de host en cadenas de conexión y registros SRV con reconocimiento de nodos privados
El nombre de host en el registro SRV y la cadena de conexión estándar es un registro DNS Canonical Name (CNAME) que se resuelve en el nombre DNS regional específico del punto de enlace que AWS genera para el punto de enlace de la interfaz. Existe un registro de ALIAS de DNS para cada subred en la VPC en la que se haya implementado el endpoint de la interfaz. Cada registro de ALIAS contiene la dirección IP privada del endpoint de la interfaz para esa subred.
El siguiente ejemplo muestra la búsqueda DNS para el nombre de host en el registro SRV y en la cadena de conexión estándar, incluido el nombre DNS regional específico del endpoint de la interfaz y sus registros DNS ALIAS:
nslookup pl-0-us-east-1.k45tj.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: pl-0-us-east-1.k45tj.mongodb.net canonical name = vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com. Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com Address: 10.0.30.194 Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com Address: 10.0.20.54
Conexión rechazada porque hay demasiadas conexiones abiertas
Si sus conexiones exceden los límites de conexión para el límite de servicio de su clúster, debe aumentar el nivel del clúster.
Si su cantidad de conexiones es significativamente mayor que la cantidad de conexiones esperada, consulte la sección a continuación Recopilar más información sobre el cliente que realiza la mayor cantidad de conexiones.
Por ejemplo, aplicación en un clúster fragmentado v7.0.22 mediante una cadena de conexión optimizada con equilibrio de carga.
$ mongosh "mongodb+srv://aws-replica-set-7-pl-0-lb.22qdu.mongodb-dev.net/" --apiVersion 1 --username sarah Enter password: ***** Current Mongosh Log ID: 68910f1754be6d9adc74e399 Connecting to: mongodb+srv://<credentials>@aws-replica-set-7-pl-0-lb.22qdu.mongodb-dev.net/?appName=mongosh+2.5.6 MongoNetworkError: Client network socket disconnected before secure TLS connection was established
{"t":{"$date":"2025-08-04T19:48:17.649+00:00"},"s":"I", "c":"NETWORK", "id":22942, "ctx":"listener","msg":"Connection refused because there are too many open connections","attr":{"remote":"54.172.143.8:33205", "isLoadBalanced":false,"uuid":{"uuid":{"$uuid":"e52e9c14-7648-430a-bc2e-95292347b7e0"}}, "connectionId":380,"connectionCount":58}}
Visualización de la IP de origen del cliente
Nota
Esta función se está implementando gradualmente. Esperamos que esté disponible para todos los clústeres dedicados de AWS a finales de septiembre de 2025.
Puede ver la IP de origen del cliente en los registros de mongos para clústeres fragmentados que se conectan a través de puntos finales privados.
Puede ver la IP de origen del cliente en los registros de mongod para los conjuntos de réplicas que se conectan a través de puntos finales privados.
Puede ver la IP de origen del cliente en los registros de auditoría tanto para los conjuntos de réplicas como para los clústeres fragmentados que se conectan a través de puntos finales privados.
Esta funcionalidad es compatible con AWS para las siguientes versiones:
8.1 y v8.1.0+
8.0 y v8.0.10+
7.0 y v7.0.22+
La dirección IP y el puerto del cliente de origen se indican mediante el campo
sourceClient. En el ejemplo anterior, ese valor es10.50.4.23.{"t":{"$date":"2025-07-21T12:15:42.123+00:00"},"s":"I","c":"NETWORK", "id":22943,"ctx":"listener","msg":"Connection accepted","attr":{"remote":"192.168.100.55:31245", "isLoadBalanced":true,"sourceClient":"10.50.4.23:50123","uuid":{"uuid":{"$uuid":"12345678-abcd-4321-abcd-87654321abcd"}}, "connectionId":345,"connectionCount":19}}
Recopile más información sobre el cliente que establece la mayor cantidad de conexiones
Para recopilar estos detalles es necesario utilizar la herramienta jq, que se puede descargar del sitio web de jq.
Conexiones creadas a partir de los metadatos del cliente
La siguiente consulta proporciona el número de conexiones creadas desde una dirección IP de cliente específica. Ahora puede obtener la dirección IP privada de la VPC de origen exacta mediante el atributo sourceClient.
grep '"c":"NETWORK"' mongod.log | jq -c '.attr.sourceClient' | grep -v null | sort | uniq -c
1 "172.31.36.2:32958" 1 "172.31.36.2:52904" 1 "172.31.36.2:52908" 1 "172.31.36.2:52910" 1 "172.31.36.2:52918"
Controladores utilizados por las aplicaciones para conectarse al clúster
La siguiente consulta proporciona el número de conexiones creadas por cada controlador. Esto resulta útil en situaciones en las que los clientes pueden usar distintos controladores para distintas aplicaciones.
more mongodb.log| grep 'NETWORK' | jq -r '.attr.doc.driver.name' | grep -v null | sort | uniq -c | sort -rn
56447 mongo-go-driver 21633 mongo-java-driver|sync 75 mongo-java-driver|sync|Airbyte 4 nodejs|Mongoose
Para un análisis más detallado de los recuentos de conexiones y los detalles del controlador, puede utilizar el siguiente script de Python, que proporciona información completa sobre la cantidad de conexiones creadas y finalizadas, junto con los nombres de los controladores y los detalles de la versión.
import json import sys def process_log_file(json_file_path): # Dictionary to store the filtered data filtered_data = {} with open(json_file_path, "r") as json_file: # Read the file line by line for line in json_file: # Parse each line as a separate JSON object data = json.loads(line) if 'msg' in data and data['msg'] == 'client metadata': # Extract the relevant data from the JSON object drivername = data['attr']['doc']['driver']['name'] driverversion = data['attr']['doc']['driver']['version'] connectionid = data['ctx'] # Create a unique key for the driver based on name and version driver_key = (drivername, driverversion) # Add the connection ID to the driver's set of connections if driver_key not in filtered_data: filtered_data[driver_key] = {'connections': set(), 'opencount': 0, 'closedcount': 0} filtered_data[driver_key]['connections'].add(connectionid) filtered_data[driver_key]['opencount'] += 1 if 'msg' in data and data['msg'] == 'Connection ended': connectionid = data['ctx'] # Check if the connection ID exists in any driver's connections for driver_data in filtered_data.values(): if connectionid in driver_data['connections']: driver_data['closedcount'] += 1 driver_data['connections'].remove(connectionid) # Print the filtered data for each driver for driver_key, driver_data in filtered_data.items(): print('Driver:', driver_key) print('Connection Opened:', driver_data['opencount']) print('Connection Closed:', driver_data['closedcount']) if __name__ == '__main__': # Check if a JSON file argument is provided if len(sys.argv) < 2: print("Please provide the path to a JSON file as an argument.") sys.exit(1) # Extract the JSON file path from the command-line arguments json_file_path = sys.argv[1] # Process the log file process_log_file(json_file_path)
Driver: ('mongo-go-driver', 'v1.12.0-cloud') Connection Opened: 14368 Connection Closed: 14362 Driver: ('mongo-go-driver', 'v1.12.1') Connection Opened: 42056 Connection Closed: 41958 Driver: ('mongo-java-driver|sync', '4.11.1') Connection Opened: 18012 Connection Closed: 17987 Driver: ('mongo-java-driver|sync', '4.8.2') Connection Opened: 3621 Connection Closed: 3610 Driver: ('nodejs|Mongoose', '4.17.1|6.12.0') Connection Opened: 3 Connection Closed: 1 Driver: ('mongo-go-driver', 'v1.13.0') Connection Opened: 23 Connection Closed: 20 Driver: ('mongo-java-driver|sync|Airbyte', '4.11.0') Connection Opened: 75 Connection Closed: 75 Driver: ('nodejs|Mongoose', '4.17.2|6.13.0') Connection Opened: 1 Connection Closed: 0
Nombres de aplicaciones utilizados por las aplicaciones cliente para conectarse al clúster
Podemos sugerir a los clientes que incluyan el nombre de la aplicación en la cadena de conexión para especificar las diferentes aplicaciones que se conectan al clúster. Al appName usar, podemos identificar qué aplicación creará muchas conexiones al clúster en el futuro.Consulte la sección "Configuración Miscelánea" de nuestra documentación para obtener más información sobre el uso de appName en la cadena de conexión. Además, puede usar el db.currentOp().appname comando para ver las operaciones actuales asociadas con el nombre de la aplicación. La siguiente consulta proporciona detalles de appName con el número de conexiones creadas por esa aplicación en particular.
more mongodb.log| grep 'NETWORK' | jq -r '.attr.doc.application.name' | grep -v null | sort | uniq -c | sort -rn
10809 niyo-*******-api 8616 MongoDB CPS Module v13.17.2.8878 (git: 70c0b932f47f4f0b3e82a75e223f39ed9635b47f) 7203 niyo-ns***** 5752 MongoDB Automation Agent v13.17.2.8878 (git: 70c0b932f47f4f0b3e82a75e223f39ed9635b47f) 3601 *****-auth-service
Los detalles proporcionados ayudan a identificar los factores específicos que contribuyen al alto número de conexiones. Al analizar la IP del cliente de origen, los metadatos del cliente, el uso del controlador y los nombres de las aplicaciones, puede identificar los elementos responsables del aumento de conexiones y determinar las áreas necesarias para investigar. Este enfoque específico le permite ignorar otros factores menos relevantes y concentrarse en abordar los problemas con la información destacada, optimizando así el proceso de mitigación y mejorando el rendimiento del clúster.
Puntos finales privados multirregionales
Los puntos de conexión privados solo están disponibles en clústeres multirregionales si hay un nodo dentro de cada región que abarca el clúster que tenga configurado un punto de conexión privado. Para obtener más información sobre la configuración de puntos de conexión privados multirregionales, consulte Puntos finales privados regionalizados para clústeres fragmentados en múltiples regiones.
Indexación de cadenas de conexión para clústeres multirregionales
Después de configurar un punto final privado para una nueva región e implementar nodos de clúster en esa región, es posible que vea el siguiente error cuando use su punto final privado para conectarse al clúster:
DNSHostNotFound: Failed to look up service "<MongoDB service name>"
Este error se produce cuando el índice de la cadena de conexión cambia automáticamente y el cliente se reinicia posteriormente, lo que provoca una búsqueda de DNS en SRV. La cadena de conexión del punto final privado de un clúster multirregional utiliza el índice 0. Si la cadena de conexión utiliza un índice diferente, MongoDB la actualiza automáticamente para usar el índice 0.
Por ejemplo, podría configurar dos puntos finales privados para una región. Si elimina el primer punto final privado, su cadena de conexión usará el índice 1 y tendrá un aspecto similar al siguiente:
mongodb+srv://cluster1-psc-0.4uyx2d.mongodb.net
Supongamos que configura un punto final privado para una nueva región de su clúster y, posteriormente, agrega nodos de clúster a esa región. Su clúster ahora incluye varias regiones y su cadena de conexión se actualiza para usar un índice de 0:
mongodb+srv://cluster1-psc-1.4uyx2d.mongodb.net
Para evitar posibles problemas de conectividad tras el próximo reinicio del cliente, confirme que está utilizando la cadena de conexión de punto final privado indexada a cero para conectarse al clúster. Puede acceder a la cadena de conexión de punto final privado actualizada desde la interfaz de usuario o la API de Atlas una vez completados los cambios en el clúster.
Pruebe la conectividad desde su aplicación implementada
Puedes utilizar las herramientas nslookup y telnet para probar la conectividad desde tu aplicación a tus nodos privados en Atlas.
Obtenga los detalles de conexión para su clúster Atlas.
Ejecute nslookup con el indicador -type=SRV para obtener los números de puerto asociados con cada uno de los nodos de su clúster.
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1.k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1.k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1.k45tj.mongodb.net.
Pruebe la conectividad.
Desde el entorno de su aplicación, con uno de los puertos enumerados (por ejemplo, 1026, 1024 o 1025 en el ejemplo de salida anterior), ejecute el siguiente comando telnet para probar la conectividad:
telnet pl-0-<xyz>.mongodb.net 1024 telnet pl-0-<xyz>.mongodb.net 1025 telnet pl-0-<xyz>.mongodb.net 1026
Para ver el estado de cada punto final privado:
En Atlas, ve a la página Database & Network Access de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
La página Acceso a la base de datos y a la red se muestra.
Consulte los siguientes estados para ayudarlo a determinar el estado de sus conexiones de puntos finales privados:
Atlas Endpoint Service Status
Estado | Descripción |
|---|---|
Creando un enlace privado | Atlas está creando el equilibrador de carga y los recursos de VNet. |
Fallido | Se ha producido un fallo en el sistema. |
Disponible | Atlas creó el balanceador de carga y el servicio Azure Private Link. El servicio Azure Private Link está listo para recibir solicitudes de conexión. |
Borrando | Atlas está eliminando el servicio Azure Private Link. |
Endpoint Status
Estado | Descripción |
|---|---|
No configurado | Atlas creó el balanceador de carga y el servicio Azure Private Link, pero aún no ha creado un punto de conexión privado. Haga clic en Edit y complete el asistente para crear el punto de conexión privado. |
Iniciando | Atlas aún no ha aceptado la conexión a su punto final privado. |
Fallido | Azure no pudo establecer una conexión entre los recursos de la red virtual Atlas y el punto de conexión privado de su red virtual.Edit Haga clic en, verifique que la información proporcionada sea correcta y vuelva a crear el punto de conexión privado. |
Disponible | Los recursos Atlas VNet están conectados al nodo privado en tu VNet. Puedes conectarte a clústeres de Atlas en esta región usando Azure Private Link. |
Borrando | Atlas está eliminando la conexión del punto final privado del servicio Azure Private Link. |
Obtenga direcciones IP privadas con búsqueda DNS
Cuando un cliente en tu VNet se conecta a un clúster de Atlas usando una de estas cadenas de conexión compatibles con el nodo privado, el cliente intenta establecer una conexión con el servicio Private Link en el VNet de Atlas a través de la interfaz de red del nodo privado. El servicio Private Link envía tráfico a través de un balanceador de carga estándar de Azure a los nodos de clúster de Atlas que implementaste en esa región. El mecanismo de resolución de DNS de tu cliente gestiona la conversión del nombre de host a la dirección IP privada de la interfaz de red. El driver solo es reconoce el nombre de host en la cadena de conexión y escucha en un puerto por cada nodo del set de réplicas del clúster.
Registro SRV para cadenas de conexión con reconocimiento de nodos de la lista de semillas DNS
El siguiente ejemplo muestra el registro SRV de un clúster de una sola región habilitado para Azure Private Link, mostrando tres puertos únicos definidos para pl-0-eastus2.uzgh6.mongodb.net:
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1024 pl-0-eastus2.uzgh6.mongodb.net. _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1025 pl-0-eastus2.uzgh6.mongodb.net. _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1026 pl-0-eastus2.uzgh6.mongodb.net.
En el ejemplo precedente:
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.netes el registro SRV al que hace referencia la cadena de conexión.pl-0-eastus2.uzgh6.mongodb.netes el nombre de host de cada nodo en un clúster Atlas en una región para la que ha configurado Azure Private Link.1024,1025y1026son puertos únicos que Atlas asigna en el balanceador de carga para cada nodo del conjunto de réplicas de Atlas en la región para la que se habilitó Azure Private Link. Se puede acceder a todos los nodos de un conjunto de réplicas de Atlas mediante el mismo nombre de host, y el balanceador de carga resuelve cada nodo individualmente por su puerto único.
Resolución de DNS del nombre de host en cadenas de conexión y registros SRV con reconocimiento de nodos privados
El nombre de host en el registro SRV y la cadena de conexión estándar es un A registro DNS que se resuelve en la dirección IP privada de la interfaz de red del punto final privado.
El siguiente ejemplo muestra la consulta de DNS para el nombre de host en el registro SRV y en la cadena de conexión estándar:
nslookup pl-0-eastus2.uzgh6.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: pl-0-eastus2.uzgh6.mongodb.net Address: 10.0.0.4
Puntos finales privados multirregionales
Los puntos de conexión privados solo están disponibles en clústeres multirregionales si hay un nodo dentro de cada región que abarca el clúster que tenga configurado un punto de conexión privado. Para obtener más información sobre la configuración de puntos de conexión privados multirregionales, consulte Puntos de conexión privados regionalizados para clústeres fragmentados multirregionales.
Indexación de cadenas de conexión para clústeres multirregionales
Después de configurar un punto final privado para una nueva región e implementar nodos de clúster en esa región, es posible que vea el siguiente error cuando use su punto final privado para conectarse al clúster:
DNSHostNotFound: Failed to look up service "<MongoDB service name>"
Este error se produce cuando el índice de la cadena de conexión cambia automáticamente y el cliente se reinicia posteriormente, lo que provoca una búsqueda de DNS en SRV. La cadena de conexión del punto final privado de un clúster multirregional utiliza el índice 0. Si la cadena de conexión utiliza un índice diferente, MongoDB la actualiza automáticamente para usar el índice 0.
Por ejemplo, podría configurar dos puntos finales privados para una región. Si elimina el primer punto final privado, su cadena de conexión usará el índice 1 y tendrá un aspecto similar al siguiente:
mongodb+srv://cluster1-psc-0.4uyx2d.mongodb.net
Supongamos que configura un punto final privado para una nueva región de su clúster y, posteriormente, agrega nodos de clúster a esa región. Su clúster ahora incluye varias regiones y su cadena de conexión se actualiza para usar un índice de 0:
mongodb+srv://cluster1-psc-1.4uyx2d.mongodb.net
Para evitar posibles problemas de conectividad tras el próximo reinicio del cliente, confirme que está utilizando la cadena de conexión de punto final privado indexada a cero para conectarse al clúster. Puede acceder a la cadena de conexión de punto final privado actualizada desde la interfaz de usuario o la API de Atlas una vez completados los cambios en el clúster.
Pruebe la conectividad desde su aplicación implementada
Puedes utilizar las herramientas nslookup y telnet para probar la conectividad desde tu aplicación a tus nodos privados en Atlas.
Obtenga los detalles de conexión para su clúster Atlas.
Ejecute nslookup con el indicador -type=SRV para obtener los números de puerto asociados con cada uno de los nodos de su clúster.
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1.k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1.k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0.k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1.k45tj.mongodb.net.
Pruebe la conectividad.
Desde el entorno de su aplicación, con uno de los puertos enumerados (por ejemplo, 1026, 1024 o 1025 en el ejemplo de salida anterior), ejecute el siguiente comando telnet para probar la conectividad:
telnet pl-0-<xyz>.mongodb.net 1024 telnet pl-0-<xyz>.mongodb.net 1025 telnet pl-0-<xyz>.mongodb.net 1026
Para ver el estado de cada punto final privado:
En Atlas, ve a la página Database & Network Access de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
La página Acceso a la base de datos y a la red se muestra.
Revisar los estados.
Los campos Atlas Endpoint Service Status y Endpoint Status muestran el estado de cada punto final privado.
Consulte los siguientes estados para ayudarlo a determinar el estado de sus conexiones de puntos finales privados:
Atlas Endpoint Service Status
Estado | Descripción |
|---|---|
Creando un enlace privado | Atlas está creando el equilibrador de carga de red y los recursos de VPC. |
Fallido | Se ha producido un fallo en el sistema. |
Disponible | Atlas creó el balanceador de carga de red y el servicio de punto final de VPC. El servicio de punto final privado está listo para recibir solicitudes de conexión. |
Borrando | Atlas está eliminando el servicio de punto final privado. |
Endpoint Status
Estado | Descripción |
|---|---|
Iniciando | Atlas aún no está conectado a su punto final privado y aún no ha aceptado los puntos finales. |
Esperando al usuario | Los recursosde VPC en Atlas están listos para usar. Debe configurar los puntos de conexión dentro de su VPC ejecutando el script de shell. |
Verificado | Atlas verificó los puntos de conexión dentro de tu VPC, pero aún no ha aceptado el punto de conexión privado en tu VPC de Google Cloud. El podría tardar varios minutos en Endpoint Status convertirse |
Disponible | Los recursos de Atlas VPC están conectados al punto de conexión privado de tu VPC de Google Cloud. Atlas ha aceptado los puntos de conexión. Puedes conectarte a los clústeres de Atlas en esta región mediante GCP Private Service Connect. |
Activo | Atlas está listo para usar los recursos de la VPC. Atlas ha aceptado los puntos de conexión. Se ha asignado una máquina virtual a la conexión de servicio privada. |
Fallido | Google Cloud no pudo establecer una conexión entre los recursos de Atlas VPC y el punto de conexión privado en su VPC de Google Cloud. Edit Haga clic en, verifique que la información proporcionada sea correcta y vuelva a crear el punto de conexión privado. Nota: Si ve el mensaje de error "No se pudo encontrar el punto de conexión en GCP. Verifique que el nombre del punto de conexión sea correcto y que se haya creado en el proyecto de GCP correcto e inténtelo de nuevo", es posible que haya escrito mal el nombre de su punto de conexión privado o que aún deba crearlo. Para solucionarlo, haga clic en Edit y asegúrese de que los campos sean correctos. |
Eliminado | Eliminaste manualmente el punto de conexión privado de una región en Atlas. También debes eliminarlo en Google Cloud para eliminar recursos. Pendiente de eliminación del grupo de regiones. |
Asegúrese de que sus grupos de seguridad estén configurados correctamente.
Para cada recurso que necesite conectarse a sus clústeres de Atlas mediante GCP Private Service Connect, debe permitir el tráfico saliente a las direcciones IP privadas de la regla de reenvío en todos los puertos (1024-).65535 Consulte "Administración de la seguridad del consumidor para PSC" para obtener más información.
Puntos finales privados multirregionales
Los puntos de conexión privados solo están disponibles en clústeres multirregionales si hay un nodo dentro de cada región que abarca el clúster que tenga configurado un punto de conexión privado. Para obtener más información sobre la configuración de puntos de conexión privados multirregionales, consulte Puntos de conexión privados regionalizados para clústeres fragmentados multirregionales.
Indexación de cadenas de conexión para clústeres multirregionales
Después de configurar un punto final privado para una nueva región e implementar nodos de clúster en esa región, es posible que vea el siguiente error cuando use su punto final privado para conectarse al clúster:
DNSHostNotFound: Failed to look up service "<MongoDB service name>"
Este error se produce cuando el índice de la cadena de conexión cambia automáticamente y el cliente se reinicia posteriormente, lo que provoca una búsqueda de DNS en SRV. La cadena de conexión del punto final privado de un clúster multirregional utiliza el índice 0. Si la cadena de conexión utiliza un índice diferente, MongoDB la actualiza automáticamente para usar el índice 0.
Por ejemplo, podría configurar dos puntos finales privados para una región. Si elimina el primer punto final privado, su cadena de conexión usará el índice 1 y tendrá un aspecto similar al siguiente:
mongodb+srv://cluster1-psc-0.4uyx2d.mongodb.net
Supongamos que configura un punto final privado para una nueva región de su clúster y, posteriormente, agrega nodos de clúster a esa región. Su clúster ahora incluye varias regiones y su cadena de conexión se actualiza para usar un índice de 0:
mongodb+srv://cluster1-psc-1.4uyx2d.mongodb.net
Para evitar posibles problemas de conectividad tras el próximo reinicio del cliente, confirme que está utilizando la cadena de conexión de punto final privado indexada a cero para conectarse al clúster. Puede acceder a la cadena de conexión de punto final privado actualizada desde la interfaz de usuario o la API de Atlas una vez completados los cambios en el clúster.
Pruebe la conectividad desde su aplicación implementada
Puedes utilizar las herramientas nslookup y telnet para probar la conectividad desde tu aplicación a tus nodos privados en Atlas.
Obtenga los detalles de conexión para su clúster Atlas.
Ejecute nslookup con el indicador -type=SRV para obtener los números de puerto asociados con cada uno de los nodos de su clúster.
nslookup -debug -type=SRV _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net
Server: 127.0.2.2 Address: 127.0.2.2#53 ------------ QUESTIONS: _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net, type = SRV, class = IN ANSWERS: -> _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net service = 0 0 1024 pl-0-us-central1-gcp.j735c.mongodb.net. ttl = 60 -> _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net service = 0 0 1025 pl-0-us-central1-gcp.j735c.mongodb.net. ttl = 60 -> _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net service = 0 0 1026 pl-0-us-central1-gcp.j735c.mongodb.net. ttl = 60 AUTHORITY RECORDS: ADDITIONAL RECORDS: ------------ Non-authoritative answer: _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net service = 0 0 1024 pl-0-us-central1-gcp.j735c.mongodb.net. _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net service = 0 0 1025 pl-0-us-central1-gcp.j735c.mongodb.net. _mongodb._tcp.cluster1-psc-0.j735c.mongodb.net service = 0 0 1026 pl-0-us-central1-gcp.j735c.mongodb.net. Authoritative answers can be found from: telnet pl-0-us-central1-gcp.j735c.mongodb.net 1024