RabbitMQ

提供: ArchWiki
移動先: 案内検索

RabbitMQ はメッセージを仲介するメッセージングブローカーです。メッセージを送受信したりするための共通プラットフォームとしてメッセージが受け取られるまで安全な場所に保管することができます。

インストール

rabbitmq パッケージをインストールしてください。

設定

設定は不要です。rabbitmq サービスを起動してください。

デフォルトの設定ファイルは /etc/rabbitmq/rabbitmq-env.conf に存在します。設定に関する詳細は 公式ドキュメント を読んでください。

MQTT の有効化

RabbitMQ は MQTT サーバーとして使えます。機能させるには以下のようにプラグインをインストールする必要があります:

$ sudo -u rabbitmq rabbitmq-plugins enable rabbitmq_mqtt

インストールしたら RabbitMQ サービスを再起動して変更を適用してください。

トピックに投稿する前にクライアントを認証する必要があります。RabbitMQ はバーチャルホストによってトラフィックを分離するため、ユーザー名を `your_user_name:configured_vhost_name` として認証を行ってください。

HTTP 管理の有効化

HTTP 管理ページを有効にするには:

rabbitmq-plugins enable rabbitmq_management

<ip_address_of_host>:15672 から管理することができます。デフォルトのログイン情報は username:guest password:guest です。

リモートマシンから HTTP 管理ページに接続できるようにするには /etc/rabbitmq/rabbitmq.config を作成・編集:

[{rabbit, [{loopback_users, []}]}].

トラブルシューティング

ホストネームの変更

rabbitmq をインストールした後にホストネームを変更した場合、起動できなくなります。/etc/rabbitmq/rabbitmq-env.conf に記述されている NODENAME が原因です。新しいホストネームにあわせて変更してください:

/etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit@my-new-hostname
...

RabbitMQ を最新版にアップグレードしたら起動できない

/etc/rabbitmq/rabbitmq-env.confNODENAME が間違っているのが原因です。例えば @hostname が追加されてしまうことがあります。ホストネームの変更のときと同じようにすることで解決できます。

Erlang の cookie エラー

rabbitmq の HOME 設定が間違っていると認証に失敗することがあります:

Authentication failed (rejected by the remote node), please check the Erlang cookie
...
home dir: /root

HOME は設定ファイルで設定できます:

/etc/rabbitmq/rabbitmq-env.conf
...
HOME=/var/lib/rabbitmq
...

can't establish TCP connection

TCP 接続を確立できないというエラーが表示される場合、/etc/hosts に記述されているホストネームのエントリが /etc/rabbitmq/rabbitmq-env.conf に書いた IP アドレスと一致しているか確認してください (rabbitmq を特定のインターフェイスにバインドするよう設定した場合によく発生するエラーです)。

参照