NetWorker:起動中にサーバーRabbitMQプロセスがクラッシュする
Summary: LinuxホストでNetWorkerサーバー ソフトウェアをインストールまたはアップグレードした後、RabbitMQの初期化がすぐに失敗します。
Symptoms
NetWorkerサーバ /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サーバー実装は、独自の erl binary を 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サーバーのrootプロンプトから次の手順を実行します。
- 現在インストールされている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サーバーがNMC(NetWorker管理コンソール)またはNWUI(NetWorker Webユーザー インターフェイス)サーバーを兼ねている場合は、これらの構成スクリプトを実行します。
/opt/lgtonmc/bin/nmc_config /opt/nwui/scripts/nwui_configure.sh
Additional Information
RabbitMQは、この記事で概説されている原因以外の原因で起動に失敗する場合があります。この特定のシナリオでは、RabbitMQ /var ディレクトリは作成されません。「Fusion」 /var が作成され、ログが使用可能になった場合は、追加のRabbitMQログで詳細を確認してください。RabbitMQのデバッグも必要になる場合があります。NetWorker:RabbitMQデバッグを有効にする方法