NetWorker: O processo RabbitMQ do servidor trava durante a inicialização
Summary: Após a instalação ou o upgrade do software do servidor NetWorker em um host Linux, a inicialização do RabbitMQ falha imediatamente.
Symptoms
O servidor do NetWorker /nsr/logs/daemon.raw relata o seguinte erro:
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 o daemon.rawVer: NetWorker: Como usar nsr_render_log para processar arquivos de log .raw
A coluna /nsr/tmp/rabbitmq/cores/erl_crash.dump Relatórios:
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>)
A coluna /opt/nsr/rabbitmq-server-#.#.#/var O diretório não está sendo criado.
rabbitmq-server A versão da pasta muda dependendo da versão do NetWorker instalada.
Desligamento dos serviços do NetWorker.
Cause
Um pacote Erlang de terceiros é instalado no host, resultando em um erl binário em /usr/bin.
[root@nsr ~]# which erl /usr/bin/erl
Em um cenário de trabalho, isso não deve retornar 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)
A implementação do servidor do NetWorker do RabbitMQ fornece sua própria erl binário no rabbitmq-server caminho da pasta, ele não está em /usr/bin. O sistema operacional erl pacote é diferente da versão exigida pelo 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
Neste caso, o RabbitMQ 4.1.1 está tentando inicializar o Erlang usando erl 10.4.4, o que não é possível. Isso resulta no observado rmq acidente relatado. As versões mostradas neste artigo são, por exemplo, apenas propósitos.
Os pacotes Erlang são encontrados no sistema operacional:
rpm -qa | grep erlang
O Erlang não é um pacote padrão do sistema operacional e não se espera que ele seja instalado, a menos que em uma imagem do sistema ambiental ou instalado por um administrador do sistema operacional. A coluna erl a implementação usada pelo NetWorker não é retornada pelo comando acima. Qualquer pacote do Erlang mostrado foi instalado separadamente do NetWorker. Os pacotes Erlang instalados do sistema operacional estão em conflito com o NetWorker.
Do erl_crash.dump, a presença de init:boot_loop/2 indica que a falha ocorre durante a inicialização do tempo de execução do Erlang. O RabbitMQ nunca alcança a inicialização do aplicativo, o que explica por que o diretório var do RabbitMQ não é criado.
Os relatórios de inicialização do NetWorker init terminating in do_boot with {undef,[{rabbit,boot,[],[]}]}. Em Erlang, undef Indica que uma função ou módulo não pôde ser resolvido no tempo de execução. Nesse contexto, isso significa que a VM Erlang não pôde carregar o módulo do aplicativo RabbitMQ. O uso incorreto ou incompatível do tempo de execução do Erlang causará falhas de inicialização do RabbitMQ.
Resolution
Se não forem exigidos por outro aplicativo, remova-os do sistema. Você pode verificar com o seguinte comando:
rpm -q --whatrequires erlang
Se os pacotes forem devolvidos, você deve consultar o administrador do sistema operacional sobre quaisquer pacotes Erlang encontrados e se eles podem ser removidos.
Para remover o Erlang, use:
dnf remove erlang\*
Depois que o Erlang for removido, execute as seguintes etapas em um prompt raiz no servidor NetWorker:
- Obtenha uma lista dos softwares NetWorker atualmente instalados:
rpm -qa | grep lgto
- Desinstale cada pacote do NetWorker retornado pelo comando acima:
rpm -e package1 package2 package3 package4 so_forth
- Renomeie as pastas RabbitMQ. Você deve especificar o nome da versão da pasta para a instalação do NetWorker.
mv /opt/nsr/rabbitmq-server-#.#.# /opt/nsr/rabbitmq-server-#.#.#_$(date -I) mv /nsr/rabbitmq /nsr/rabbitmq_$(date -I)
- Reinstale o NetWorker:
yum localinstall --nogpgcheck -y package1 package2 package3 package4 so_forth
- Execute o script de configuração AUTHC após a instalação:
/opt/nsr/authc-server/scripts/authc_configure.sh
- Inicie os serviços do NetWorker:
systemctl start networker
- Monitorar o servidor
/nsr/logs/daemon.rawpara confirmar a inicialização do servidor.
NetWorker: Como usar nsr_render_log para processar arquivos de log .raw
Se o servidor NetWorker também for o servidor NetWorker Management Console (NMC) ou NetWorker Web User Interface (NWUI), execute os scripts de configuração:
/opt/lgtonmc/bin/nmc_config /opt/nwui/scripts/nwui_configure.sh
Additional Information
O RabbitMQ pode falhar ao iniciar por outras causas que não a descrita neste artigo. Neste cenário específico, o RabbitMQ /var O diretório não foi criado. Se a solicitação do /var foi criada e os logs estão disponíveis. Analise os logs adicionais do RabbitMQ para obter mais informações. A depuração do RabbitMQ também pode ser necessária: NetWorker: Como habilitar a depuração do RabbitMQ