NetWorker: El proceso de RabbitMQ del servidor se bloquea durante el inicio
Summary: Después de instalar o actualizar el software del servidor de NetWorker en un host Linux, la inicialización de RabbitMQ falla inmediatamente.
Symptoms
El servidor NetWorker Server /nsr/logs/daemon.raw Informa el siguiente error:
127106 1777471849 1 5 0 2845669184 13680 0 NW_SERVERNAME nsrctld NSR notice 44 Startup in progress; starting all daemons... 0
144355 1777471849 1 5 0 2845669184 13680 0 NW_SERVERNAME nsrctld NSR notice 21 Daemon %s is running. 1 0 8 rmq-epmd
144355 1777471851 1 5 0 2845669184 13680 0 NW_SERVERNAME nsrctld NSR notice 21 Daemon %s is running. 1 0 3 rmq
0 1777471852 1 5 0 2777708288 13680 0 NW_SERVERNAME nsrctld NSR notice 6 %s: %s 2 0 3 rmq 0 103 {"init terminating in do_boot",{undef,[{rabbit,boot,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
0 1777471852 1 5 0 2777708288 13680 0 NW_SERVERNAME nsrctld NSR notice 6 %s: %s 2 0 3 rmq 0 101 init terminating in do_boot ({undef,[{rabbit,boot,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]})
0 1777471852 1 5 0 2777708288 13680 0 NW_SERVERNAME nsrctld NSR notice 6 %s: %s 2 0 3 rmq 0 1
0 1777471852 1 5 0 2777708288 13680 0 NW_SERVERNAME nsrctld NSR notice 6 %s: %s 2 0 3 rmq 0 73 Crash dump is being written to: /nsr/tmp/rabbitmq/cores/erl_crash.dump...
0 1777471852 1 5 0 2777708288 13680 0 NW_SERVERNAME nsrctld NSR notice 6 %s: %s 2 0 3 rmq 0 5 done
144354 1777471852 1 5 0 2845669184 13680 0 NW_SERVERNAME nsrctld NSR notice 21 Daemon %s terminated. 1 0 3 rmq
144359 1777471852 3 5 0 2845669184 13680 0 NW_SERVERNAME nsrctld NSR error 45 Scheduling restart of daemon %s in %u seconds 2 20 50 /opt/nsr/rabbitmq-server-4.1.1/bin/rabbitmq-server 5 1 5
137911 1777471852 5 5 0 2845669184 13680 0 NW_SERVERNAME nsrctld NSR critical 29 Aborting startup sequence: %s 1 49 148 137909 66 Process %s exited in less than %d seconds at startup: exit code %d 3 20 50 /opt/nsr/rabbitmq-server-4.1.1/bin/rabbitmq-server 1 2 10 1 1 1
127108 1777471852 5 5 0 2845669184 13680 0 NW_SERVERNAME nsrctld NSR critical 45 Failed to start all daemons; shutting down... 0
0 1777471853 1 5 0 2777708288 13680 0 NW_SERVERNAME nsrctld NSR notice 6 %s: %s 2 0 8 rmq-epmd 0 65 epmd: Wed Apr 29 08:10:53 2026: got KILL_REQ - terminates normal
Para renderizar el daemon.raw, véase: NetWorker: Cómo usar nsr_render_log para representar .raw archivos de registro
La variable /nsr/tmp/rabbitmq/cores/erl_crash.dump Informes:
Current Process Internal State: ACT_PRIO_NORMAL | USR_PRIO_NORMAL | PRQ_PRIO_NORMAL | ACTIVE | RUNNING | ACTIVE_SYS
Current Process Program counter: 0x00007faebd5b1ed0 (init:boot_loop/2 + 56)
Current Process CP: 0x00005651bc4d68b8 (<terminate process normally>)
La variable /opt/nsr/rabbitmq-server-#.#.#/var El directorio no se crea.
rabbitmq-server La versión de la carpeta cambia según la versión de NetWorker instalada.
Apagado de los servicios de NetWorker.
Cause
Un paquete Erlang de otros fabricantes se instala en el host, lo que da como resultado un erl binario en /usr/bin.
[root@nsr ~]# which erl /usr/bin/erl
En un escenario de trabajo, esto no debe devolver nada:
[root@nsr ~]# which erl /usr/bin/which: no erl in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
La implementación de NetWorker Server de RabbitMQ proporciona su propio erl binario en el archivo rabbitmq-server ruta de la carpeta, no está en /usr/bin. El sistema operativo erl El paquete es diferente de la versión requerida por NetWorker:
[root@nsr ~]# /opt/nsr/rabbitmq-server-4.1.1/erts-14.2.5.11/bin/erl -version Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 14.2.5.11 [root@nsr ~]# /usr/bin/erl -version Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 10.4.4
En esta instancia, RabbitMQ 4.1.1 está intentando inicializar Erlang mediante erl 10.4.4 lo cual no es posible. Esto da como resultado la rmq Accidente reportado. Las versiones que se muestran en este artículo son, por ejemplo, solo para propósitos.
Los paquetes de Erlang se encuentran en el SO:
rpm -qa | grep erlang
Erlang no es un paquete de sistema operativo estándar y no se espera que se instale, a menos que se trate de una imagen del sistema ambiente o que lo instale un administrador del sistema operativo. La variable erl El comando anterior no devuelve la implementación utilizada por NetWorker. Todos los paquetes de Erlang que se muestran se instalaron por separado de NetWorker. Los paquetes Erlang instalados por el SO están en conflicto con NetWorker.
Desde el erl_crash.dump, la presencia de init:boot_loop/2 indica que la falla se produce durante la inicialización del tiempo de ejecución de Erlang. RabbitMQ nunca alcanza la inicialización de la aplicación, lo que explica por qué no se crea el directorio var de RabbitMQ.
Los informes de inicio de NetWorker init terminating in do_boot with {undef,[{rabbit,boot,[],[]}]}. En Erlang, undef Indica que una función o un módulo no se pudieron resolver en tiempo de ejecución. En este contexto, significa que la VM de Erlang no pudo cargar el módulo de la aplicación RabbitMQ. El uso incompatible o incorrecto del tiempo de ejecución de Erlang provocará fallas de inicio de RabbitMQ.
Resolution
Si no son necesarios para otra aplicación, quítelos del sistema. Puede comprobarlo con el siguiente comando:
rpm -q --whatrequires erlang
Si se devuelven paquetes, debe consultar con el administrador del sistema operativo sobre cualquier paquete Erlang encontrado y si se puede eliminar.
Para eliminar Erlang, utilice:
dnf remove erlang\*
Una vez eliminado Erlang, realice los siguientes pasos desde un símbolo del sistema raíz en NetWorker Server:
- Obtenga una lista del software NetWorker instalado actualmente:
rpm -qa | grep lgto
- Desinstale cada paquete de NetWorker devuelto por el comando anterior:
rpm -e package1 package2 package3 package4 so_forth
- Cambie el nombre de las carpetas de RabbitMQ. Debe especificar el nombre de la versión de la carpeta para la instalación de NetWorker.
mv /opt/nsr/rabbitmq-server-#.#.# /opt/nsr/rabbitmq-server-#.#.#_$(date -I) mv /nsr/rabbitmq /nsr/rabbitmq_$(date -I)
- Reinstale NetWorker:
yum localinstall --nogpgcheck -y package1 package2 package3 package4 so_forth
- Ejecute el script de configuración de AUTHC posterior a la instalación:
/opt/nsr/authc-server/scripts/authc_configure.sh
- Inicie los servicios de NetWorker:
systemctl start networker
- Monitorear el servidor
/nsr/logs/daemon.rawpara confirmar el inicio del servidor.
NetWorker: Cómo usar nsr_render_log para representar .raw archivos de registro
Si NetWorker Server también es NetWorker Management Console (NMC) o el servidor de interfaz de usuario web de NetWorker (NWUI), ejecute sus scripts de configuración:
/opt/lgtonmc/bin/nmc_config /opt/nwui/scripts/nwui_configure.sh
Additional Information
Es posible que RabbitMQ no se inicie por otras causas que no sean la descrita en este artículo. En este escenario específico, el RabbitMQ /var No se crea el directorio. Si la solicitud en /var y los registros están disponibles, revise los registros adicionales de RabbitMQ para obtener más información. Es posible que también se requiera la depuración de RabbitMQ: NetWorker: Cómo habilitar la depuración de RabbitMQ