NetWorker : Le processus RabbitMQ du serveur se bloque pendant le démarrage
Summary: Après l’installation ou la mise à niveau du logiciel NetWorker Server sur un hôte Linux, l’initialisation de RabbitMQ échoue immédiatement.
Symptoms
Le serveur NetWorker /nsr/logs/daemon.raw Signale l’erreur suivante :
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
Pour afficher l’attribut daemon.rawVoir: NetWorker : Utilisation de nsr_render_log pour afficher .raw fichiers journaux
La commande /nsr/tmp/rabbitmq/cores/erl_crash.dump Rapports:
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 commande /opt/nsr/rabbitmq-server-#.#.#/var Le répertoire n’est pas créé.
rabbitmq-server La version du dossier change en fonction de la version de NetWorker installée.
Arrêt des services NetWorker.
Cause
Un package Erlang tiers est installé sur l’hôte, ce qui entraîne une erl binaire dans /usr/bin.
[root@nsr ~]# which erl /usr/bin/erl
Dans un scénario de fonctionnement, cette opération ne devrait rien renvoyer :
[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)
L’implémentation NetWorker Server de RabbitMQ fournit son propre erl binaire dans le fichier rabbitmq-server chemin d’accès au dossier, il n’est pas dans /usr/bin. Le système d’exploitation erl est différent de la version requise par 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
Dans ce cas, RabbitMQ 4.1.1 tente d’initialiser Erlang à l’aide de erl 10.4.4 ce qui n’est pas possible. Il en résulte que l’on observe rmq Crash signalé. Les versions indiquées dans cet article sont, par exemple, à des fins uniquement.
Les packages Erlang se trouvent sur le système d’exploitation :
rpm -qa | grep erlang
Erlang n’est pas un package de système d’exploitation standard et il n’est pas censé être installé, sauf s’il se trouve dans une image système de l’environnement ou s’il est installé par un administrateur de système d’exploitation. La commande erl La mise en œuvre utilisée par NetWorker n’est pas renvoyée par la commande ci-dessus. Tout package Erlang affiché a été installé séparément de NetWorker. Les packages Erlang installés avec le système d’exploitation sont en conflit avec NetWorker.
À partir de l' erl_crash.dump, la présence de init:boot_loop/2 indique que la panne se produit pendant l’initialisation de l’exécution d’Erlang. RabbitMQ n’atteint jamais l’initialisation de l’application, ce qui explique pourquoi le répertoire var RabbitMQ n’est pas créé.
Les rapports de démarrage de NetWorker init terminating in do_boot with {undef,[{rabbit,boot,[],[]}]}. À Erlang, undef Indique qu’une fonction ou un module n’a pas pu être résolu lors de l’exécution. Dans ce contexte, cela signifie que la machine virtuelle Erlang n’a pas pu charger le module d’application RabbitMQ. Une utilisation incompatible ou incorrecte du runtime Erlang entraînera des échecs de démarrage de RabbitMQ.
Resolution
S’ils ne sont pas requis par une autre application, supprimez-les du système. Vous pouvez vérifier à l’aide de la commande suivante :
rpm -q --whatrequires erlang
Si des packages sont renvoyés, vous devez consulter l’administrateur du système d’exploitation pour savoir si des packages Erlang ont été trouvés et s’ils peuvent être supprimés.
Pour supprimer Erlang, utilisez :
dnf remove erlang\*
Une fois Erlang supprimé, procédez comme suit à partir d’une invite root sur le NetWorker Server :
- Obtenez la liste des logiciels NetWorker actuellement installés :
rpm -qa | grep lgto
- Désinstallez chaque package NetWorker renvoyé par la commande ci-dessus :
rpm -e package1 package2 package3 package4 so_forth
- Renommez les dossiers RabbitMQ. Vous devez spécifier le nom de version du dossier pour votre installation NetWorker.
mv /opt/nsr/rabbitmq-server-#.#.# /opt/nsr/rabbitmq-server-#.#.#_$(date -I) mv /nsr/rabbitmq /nsr/rabbitmq_$(date -I)
- Réinstallez NetWorker :
yum localinstall --nogpgcheck -y package1 package2 package3 package4 so_forth
- Exécutez le script de configuration AUTHC après l’installation :
/opt/nsr/authc-server/scripts/authc_configure.sh
- Démarrez les services NetWorker :
systemctl start networker
- Surveillance du serveur
/nsr/logs/daemon.rawpour confirmer le démarrage du serveur.
NetWorker : Utilisation de nsr_render_log pour afficher .raw fichiers journaux
Si le serveur NetWorker est également le serveur NetWorker Management Console (NMC) ou NetWorker Web User Interface (NWUI), exécutez leurs scripts de configuration :
/opt/lgtonmc/bin/nmc_config /opt/nwui/scripts/nwui_configure.sh
Additional Information
RabbitMQ peut ne pas démarrer pour d’autres causes que la cause décrite dans cet article. Dans ce scénario spécifique, le RabbitMQ /var Le répertoire n’est pas créé. si /var est créé et que des journaux sont disponibles, passez en revue les journaux RabbitMQ supplémentaires pour plus d’informations. Un débogage RabbitMQ peut également être nécessaire : NetWorker : Comment activer le débogage RabbitMQ