NetWorker: Proces serwera RabbitMQ ulega awarii podczas uruchamiania
Summary: Po zainstalowaniu lub uaktualnieniu oprogramowania serwera NetWorker na hoście z systemem Linux inicjalizacja oprogramowania RabbitMQ natychmiast kończy się niepowodzeniem.
Symptoms
Serwer NetWorker /nsr/logs/daemon.raw zgłasza następujący błąd:
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
Aby wyrenderować plik daemon.rawZobacz: NetWorker: Jak używać nsr_render_log do renderowania plików dziennika .raw
Pakiet /nsr/tmp/rabbitmq/cores/erl_crash.dump Raporty:
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>)
Pakiet /opt/nsr/rabbitmq-server-#.#.#/var Nie jest tworzony katalog.
rabbitmq-server Wersja folderu zmienia się w zależności od zainstalowanej wersji NetWorker.
Wyłączenie usług NetWorker.
Cause
Pakiet Erlanga innej firmy jest instalowany na hoście, co powoduje, że erl binarne wejście /usr/bin.
[root@nsr ~]# which erl /usr/bin/erl
W scenariuszu roboczym nie powinno to zwrócić niczego:
[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)
Implementacja serwera NetWorker oprogramowania RabbitMQ zapewnia własne erl binarny w pliku rabbitmq-server ścieżka folderu, nie znajduje się w /usr/bin. System operacyjny erl pakiet różni się od wersji wymaganej przez 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
W tym przypadku RabbitMQ 4.1.1 próbuje zainicjować Erlanga za pomocą erl 10.4.4 co nie jest możliwe. Powoduje to, że zaobserwowane rmq zgłoszono awarię. Wersje przedstawione w tym artykule są na przykład tylko celami.
Pakiety Erlanga znajdują się w systemie operacyjnym:
rpm -qa | grep erlang
Erlang nie jest standardowym pakietem systemu operacyjnego i nie oczekuje się, że zostanie zainstalowany, chyba że w obrazie systemu operacyjnego lub zainstalowany przez administratora systemu operacyjnego. Pakiet erl implementacja używana przez NetWorker nie jest zwracana przez powyższe polecenie. Każdy pokazany pakiet Erlanga został zainstalowany oddzielnie od NetWorker. Pakiety Erlang zainstalowane w systemie operacyjnym są w konflikcie z NetWorker.
Z erl_crash.dump, obecność init:boot_loop/2 wskazuje, że błąd występuje podczas inicjowania środowiska uruchomieniowego Erlang. RabbitMQ nigdy nie osiąga inicjalizacji aplikacji, co wyjaśnia, dlaczego katalog var RabbitMQ nie jest tworzony.
Raporty uruchamiania NetWorker init terminating in do_boot with {undef,[{rabbit,boot,[],[]}]}. W Erlang undef Wskazuje, że funkcja lub moduł nie może zostać rozpoznany w czasie wykonywania. W tym kontekście oznacza to, że maszyna wirtualna Erlang nie mogła załadować modułu aplikacji RabbitMQ. Niezgodne lub niepoprawne użycie środowiska uruchomieniowego Erlang spowoduje niepowodzenie uruchomienia oprogramowania RabbitMQ.
Resolution
Jeśli nie są one wymagane przez inną aplikację, usuń je z systemu. Możesz to sprawdzić za pomocą następującego polecenia:
rpm -q --whatrequires erlang
Jeśli pakiety zostaną zwrócone, należy skonsultować się z administratorem systemu operacyjnego w sprawie wszelkich znalezionych pakietów Erlanga i tego, czy można je usunąć.
Aby usunąć Erlanga, użyj:
dnf remove erlang\*
Po usunięciu Erlanga wykonaj następujące czynności z poziomu wiersza poleceń root na serwerze NetWorker:
- Pobierz listę aktualnie zainstalowanego oprogramowania NetWorker:
rpm -qa | grep lgto
- Odinstaluj każdy pakiet NetWorker zwrócony przez powyższe polecenie:
rpm -e package1 package2 package3 package4 so_forth
- Zmień nazwy folderów RabbitMQ. Należy określić nazwę wersji folderu dla instalacji NetWorker.
mv /opt/nsr/rabbitmq-server-#.#.# /opt/nsr/rabbitmq-server-#.#.#_$(date -I) mv /nsr/rabbitmq /nsr/rabbitmq_$(date -I)
- Zainstaluj ponownie NetWorker:
yum localinstall --nogpgcheck -y package1 package2 package3 package4 so_forth
- Uruchom skrypt konfiguracji AUTHC po instalacji:
/opt/nsr/authc-server/scripts/authc_configure.sh
- Uruchom usługi NetWorker:
systemctl start networker
- Monitorowanie serwera
/nsr/logs/daemon.raw, aby potwierdzić uruchomienie serwera.
NetWorker: Jak używać nsr_render_log do renderowania plików dziennika .raw
Jeśli serwer NetWorker jest jednocześnie serwerem NetWorker Management Console (NMC) lub NetWorker Web User Interface (NWUI), uruchom ich skrypty konfiguracyjne:
/opt/lgtonmc/bin/nmc_config /opt/nwui/scripts/nwui_configure.sh
Additional Information
RabbitMQ może się nie uruchomić z innych przyczyn niż opisana w tym artykule. W tym konkretnym scenariuszu RabbitMQ /var Katalog nie został utworzony. jeśli nie ustawiono /var i dzienniki są dostępne, przejrzyj dodatkowe dzienniki RabbitMQ, aby uzyskać więcej informacji. Debugowanie RabbitMQ może być również wymagane: NetWorker: włączanie debugowania RabbitMQ