Red de conocimiento informático - Conocimiento del nombre de dominio - Resumen de varios errores de inicialización del conjunto de réplicas de MongoDB encontrados

Resumen de varios errores de inicialización del conjunto de réplicas de MongoDB encontrados

Prólogo:

Cuando estaba construyendo un clúster de MongoDB, encontré varios problemas pequeños que provocaron que fallara la inicialización del conjunto de réplicas. Todos estos son obstáculos que los principiantes han superado antes. .

1. Error de inicialización del conjunto de réplicas de MongoDB causado por un error de IP

Este error se introdujo en otro artículo y no se repetirá aquí.

Para obtener más información, consulte el blog: Un error de IP provoca que falle la inicialización del conjunto de réplicas de MongoDB.

2 El contenido de los archivos mongodb-keyfile en los hosts PRIMARIO y SECUNDARIO es inconsistente. lo que provoca que no se pueda agregar un conjunto de réplicas en PRIMARIO

p>

Descripción del problema:

Construya otro conjunto de réplicas de MongoDB utilizando las siguientes asignaciones de funciones y host:

IP del host

ROL

SISTEMA

131.10.11.106

PRIMARIO

centos7

131.10.11.111

SECUNDARIO

centos7

131.10.11.114

SECUNDARIO

centos7

Versión del servidor MongoDB: 3.4.10.1

Agregue el host PRIMARY SECUNDARY 131.10.11.111, se produjo el siguiente error:

mongotest: PRIMARYgt(" 131.10.11.111:27017")

{

"ok": 0,

"errmsg": "La verificación del quórum falló porque no respondieron suficientes nodos de votación; Se requirieron 2 nodos de votación, pero solo 1 de los siguientes respondió: 131.10.11.106:27017; El siguiente nodo no respondió positivamente: 131.10.11.111:27017 Error de autenticación ",

"código" : 74 ,

"codeName" : " NodeNotFound. "

}

Análisis de la causa:

Después de solucionar el problema, se descubrió que mongodb -El archivo de claves del host 131.10.11.111 es inconsistente. 10.11.111 no es coherente con el nodo maestro y la autenticación segura no está configurada en el archivo mongo.conf del archivo de configuración del host 131.10.11.111.

Por lo tanto, la inicialización falló

Solución:

1. Copie el archivo mongodb-keyfile en el nodo principal al nodo en espera 131.10.11.111 y modifique los permisos a 400

2. Modifique el archivo de configuración /etc/mongodb/mongo.conf de la siguiente manera:

[root@mongodb111 mongodb]# cat mongo.conf

systemLog:

Destino: archivo

Ruta: "/opt/mongodbdata/mongod. log"

logAppend: true

almacenamiento:

diario:

habilitado: verdadero

dbPath:/opt/mongodbdata

setParameter:

enableLocalhostAuthBypass: verdadero

ProcessManagement:

fork: true

pidFilePath: "/opt/mongodbdata/mongod.pid"

Copia:

replSetName: mongotest

# Agregue las siguientes líneas:

seguridad:

autorización: habilitado

keyFile: "/etc/mongodb/ mongodb -keyfile"

[root@mongodb111 mongodb]#

Reinicie la máquina 131.10.11.111 mongodb y luego vuelva a ejecutar rs.add("131.10.11.111:27017 en PRIMARY "),éxito.

3. El archivo de configuración del nodo de respaldo no configura replSet, lo que provoca que no se pueda agregar un conjunto de réplicas

Descripción del problema:

El entorno encontrado en este El problema es el mismo que el problema 2. Al agregar 114 host a 106 host, se informó el siguiente error:

mongotest: PRIMARYgt("131.10.11.114:27017")

{

"ok": 0,

"errmsg": "La verificación del quórum falló porque no respondieron suficientes nodos de votación; se requirieron 2, pero solo respondieron los siguientes 1 nodos de votación: 131.10 .11.106: 27017; Respondió positivamente: 131.10.11.114:27017 Error al no ejecutar con --replSet",

"code": 74,

"codeName": "NodeNotFound"

p>

}

Análisis de causa:

Según el mensaje "Los siguientes nodos no respondieron positivamente: 131.10.11.114: 27017 falló al no ejecutarse --replSe", verifique el archivo de configuración mongo.conf y descubrió que esto se debe a que no hay ningún conjunto de réplicas configurado en el archivo de configuración en el nodo en espera, por lo que no se puede agregar el conjunto de réplicas

Solución:

Modifique / en el archivo de configuración etc/mongodb/mongo.conf del nodo en espera y luego agregue la configuración del conjunto de replicación:

[root@mongodb114 mongodb] # cat mongo.conf

systemLog:

Destino: archivo

Ruta: "/opt/mongodbdata/mongod.log"

logAppend: true

almacenamiento:

diario:

habilitado: verdadero

dbPath:/opt/mongodbdata

setParameter:

enableLocalhostAuthBypass: verdadero

ProcessManagement:

fork: verdadero

pidFilePath: "/opt/mongodbdata/mongod.pid"

seguridad:

autorización: habilitada

archivo clave: "/etc/mongodb/mongodb-keyfile"

replicación: #Agregar configuración del conjunto de replicación,

replSetName: mongotest #Preste atención al nombre y al maestro. El nombre en el nodo permanece consistente

[root@ mongodb114 mongodb]#

Reinicie la máquina 131.10.11.114 mongodb y luego vuelva a ejecutar con éxito rs.add("131.10.11.114 on PRIMARY :27017")

4. bindIp tiene como valor predeterminado 127.0.0.1, lo que provoca que falle la inicialización del conjunto de réplicas de MongoDB<

/p>

Descripción del problema:

Al crear un conjunto de réplicas de MongoDB, el host y el rol se asignan de la siguiente manera:

IP del host

Rol

Sistema

10.0.0.101

PRIMARIO

centos7

10.0.0.102

SECUNDARIO

centos7

10.0.0.103

SECUNDARIO

centos7

Versión del servidor MongoDB. 4.0.2

Recibí este error al agregar el host secundario 10.0.0.102 en el host principal 10.0.0.101:

Error al agregar el nodo esclavo:

CrystalTest: PRIMARYgt ; rs.add("10.0.0.102.27017")

{

"horadeoperación" : Marca de tiempo(1539054715, 1),

"ok" : 0,

"errmsg": "La verificación del quórum falló porque no respondieron suficientes nodos de votación; se requirieron 2 pero solo respondieron los siguientes 1 nodo de votación: 10.0.0.101: 27017; Los siguientes nodos no respondieron positivamente: 10.0 .0.102:27017 Se produjo un error al conectarse a 10.0.0.102:27017, lo que resultó en: :Conexión rechazada",

"code": 74,

"codeName": " NodeNotFound",

"$clusterTime" : {

"clusterTime" : Marca de tiempo(1539054715, 1),

"firma" : {

"hash". Error al conectarse a 10.0.0.102:27017:: causado por:: Conexión rechazada "Esto es desconcertante, porque el puerto 27017 del host 10.0.0.102 es normal y el servicio se puede utilizar normalmente a través de Después de apagar, intente telnet en el host PRIMARIO 10.0.0.101 y descubra que no funciona correctamente:

[root@test101 ~]# telnet 10.0.0.102 27017

Probando 10.0.0.102...

Telnet: conéctese a la dirección 10.0.0.102: Conexión rechazada

Luego ingrese el host 102 para verificar el puerto y descubra que el bindIp es 127.0.0.1. El problema debería estar aquí.

101 El host no puede conectarse:

[root@test102 ~]# netstat -tlunp|grep mongo

tcp 0 0 127.0.0.1: 27017 0.0.0.0: * LISTEN 1065/mongod # Mostrar 127.0.0.1: 27017

Solución:

Modifique mongo.conf en el host 102, agregue "bindIp: 0.0.0.0" y luego reinicie MongoDB en el host 102

[root@test102 bin]# cat /etc/mongodb/mongo.conf

systemLog:

Destino: archivo

Ruta: " /opt/mongodbdata/mongod.log"

logAppend: verdadero

almacenamiento:

diario:

habilitado: verdadero

dbPath:/opt/mongodbdata

setParameter:

enableLocalhostAuthBypass.True

processManagement:

fork: true< / p>

pidFilePath: "/opt/mongodbdata/mongod.pid"

replicación:

replSetName: CrystalTest

seguridad:

autorización: habilitada

keyFile: "/etc/mongodb/mongodb-keyfile"

net:

puerto: 27017

bindIp: 0.0.0.0 #Agregue esta línea

Compruebe el puerto nuevamente:

[root@test102 mongodb]# netstat -tlunp|grep 27017

tcp 0 0.0.0.0:27017 0.0.0.0:* LISTEN 3433/mongod # se convierte en 0 0.0.0.0:27017

[root@test102 mongodb]#

Luego telnet 101 Host, puede conectarse:

[root@test101 ~]# telnet 10.0.0.102 27017

Pruebe 10.0.0.102...

Conectado a 10.0. 0.102.

El carácter de escape es '^]'.

^C^C

Conexión cerrada por un host externo.

[root @test101 ~]#

Volver a agregar el host 102 en el host PRIMARIO 10.0.0.101 funcionó:

CrystalTest: PRIMARYgt("10.0.0.102:27017") p>

{

"ok" : 1,

"operaciónTi

me": marca de tiempo(1539056959, 1),

"$ clusterTime": {

"clusterTime": marca de tiempo(1539056959, 1),

"firma ": {

"hash": BinData(0, " headcentosnectelnetnodalt modifica mongodtry