NetWorker: 시작 중에 서버 RabbitMQ 프로세스 충돌
Summary: Linux 호스트에 NetWorker Server 소프트웨어를 설치하거나 업그레이드한 후 RabbitMQ 초기화가 즉시 실패합니다.
Symptoms
NetWorker Server /nsr/logs/daemon.raw 다음 오류를 보고합니다.
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
렌더링하려면 daemon.raw참조: NetWorker: nsr_render_log 사용하여 .raw 로그 파일을 렌더링하는 방법
이 /nsr/tmp/rabbitmq/cores/erl_crash.dump 보고서:
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>)
이 /opt/nsr/rabbitmq-server-#.#.#/var 디렉토리가 생성되지 않습니다.
rabbitmq-server 폴더 버전은 설치된 NetWorker 버전에 따라 달라집니다.
NetWorker 서비스가 종료됩니다.
Cause
타사 Erlang 패키지가 호스트에 설치되어 erl 바이너리 입력 /usr/bin.
[root@nsr ~]# which erl /usr/bin/erl
작업 시나리오에서는 아무 것도 반환하지 않아야 합니다.
[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)
RabbitMQ의 NetWorker Server 구현은 자체 erl 바이너리 에서 rabbitmq-server 폴더 경로가 아니며 위치에 없습니다. /usr/bin. The OS erl 패키지가 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
이 경우 RabbitMQ 4.1.1은 다음을 사용하여 Erlang을 초기화하려고 합니다. erl 10.4.4 불가능합니다. 그 결과 rmq 충돌이 보고되었습니다. 예를 들어 이 문서에 표시된 버전은 용도로만 사용됩니다.
Erlang 패키지는 OS에서 찾을 수 있습니다.
rpm -qa | grep erlang
Erlang은 표준 OS 패키지가 아니며 환경 시스템 이미지에 없거나 OS 관리자가 설치하지 않는 한 설치되지 않을 것으로 예상됩니다. 이 erl NetWorker에서 사용하는 구현은 위의 명령에서 반환되지 않습니다. 표시된 모든 Erlang 패키지는 NetWorker와 별도로 설치되었습니다. OS에서 설치한 Erlang 패키지가 NetWorker와 충돌합니다.
에서 erl_crash.dump, 의 존재 init:boot_loop/2 은 Erlang 런타임 초기화 중에 오류가 발생했음을 나타냅니다. RabbitMQ는 애플리케이션 초기화에 도달하지 않으므로 RabbitMQ var 디렉터리가 생성되지 않습니다.
NetWorker 시작 보고서 init terminating in do_boot with {undef,[{rabbit,boot,[],[]}]}. 얼랑(Erlang)에서, undef 런타임에 함수 또는 모듈을 확인할 수 없음을 나타냅니다. 이 컨텍스트에서는 Erlang VM이 RabbitMQ 애플리케이션 모듈을 로드할 수 없음을 의미합니다. 호환되지 않거나 잘못된 Erlang 런타임 사용으로 인해 RabbitMQ 시작 오류가 발생합니다.
Resolution
다른 애플리케이션에서 필요하지 않은 경우 시스템에서 제거합니다. 다음 명령을 사용하여 확인할 수 있습니다.
rpm -q --whatrequires erlang
패키지가 반환되면 발견된 Erlang 패키지 및 제거할 수 있는지 여부에 대해 OS 관리자에게 문의해야 합니다.
Erlang을 제거하려면 다음을 사용하십시오.
dnf remove erlang\*
Erlang이 제거되면 NetWorker Server의 루트 프롬프트에서 다음 단계를 수행합니다.
- 현재 설치된 NetWorker 소프트웨어 목록을 가져옵니다.
rpm -qa | grep lgto
- 위 명령에서 반환된 각 NetWorker 패키지를 제거합니다.
rpm -e package1 package2 package3 package4 so_forth
- RabbitMQ 폴더의 이름을 바꿉니다. NetWorker 설치에 사용할 폴더 버전 이름을 지정해야 합니다.
mv /opt/nsr/rabbitmq-server-#.#.# /opt/nsr/rabbitmq-server-#.#.#_$(date -I) mv /nsr/rabbitmq /nsr/rabbitmq_$(date -I)
- NetWorker를 다시 설치합니다.
yum localinstall --nogpgcheck -y package1 package2 package3 package4 so_forth
- 설치 후 AUTHC 구성 스크립트를 실행합니다.
/opt/nsr/authc-server/scripts/authc_configure.sh
- NetWorker 서비스를 시작합니다.
systemctl start networker
- 서버 모니터링
/nsr/logs/daemon.raw서버 시작을 확인합니다.
NetWorker: nsr_render_log 사용하여 .raw 로그 파일을 렌더링하는 방법
NetWorker Server가 NMC(NetWorker Management Console) 또는 NWUI(NetWorker Web User Interface) 서버이기도 한 경우 구성 스크립트를 실행합니다.
/opt/lgtonmc/bin/nmc_config /opt/nwui/scripts/nwui_configure.sh
Additional Information
RabbitMQ는 이 문서에 설명된 원인 이외의 다른 원인으로 인해 시작되지 않을 수 있습니다. 이 특정 시나리오에서 RabbitMQ /var 디렉토리가 생성되지 않습니다. 만약 /var 가 생성되고 로그를 사용할 수 있는 경우 추가 RabbitMQ 로그를 검토하여 자세한 정보를 확인합니다. RabbitMQ 디버깅이 필요할 수도 있습니다. NetWorker: RabbitMQ 디버깅 활성화 방법