テクノロジーガイド

CentOS 7にRabbitMQをインストールする手順

1 min read ミドルウェア 更新されました 20 Oct 2025
CentOS 7にRabbitMQをインストールする手順
CentOS 7にRabbitMQをインストールする手順

目的と対象読者

このガイドは、CentOS 7上でRabbitMQを動かしたいシステム管理者や開発者向けです。RabbitMQはErlangで書かれたオープンソースのメッセージブローカーです。AMQPなど複数プロトコルをサポートし、管理用のHTTP APIとWeb UIを提供します。

重要用語:

  • RabbitMQ:メッセージブローカー。メッセージ送受信を仲介します。
  • Erlang:RabbitMQ自体が実装されているランタイム言語。

前提条件

  • 最小限のCentOS 7サーバー
  • root権限(sudoユーザーの場合は sudo -i を実行)

変更前の準備とシステム更新

インストール前にパッケージとリポジトリを最新にします。

yum -y update

アップデート完了後、Erlangのインストールへ進みます。

Erlangをインストールする

RabbitMQはErlangランタイムを必要とします。ErlangはデフォルトのYUMリポジトリに存在しないため、EPELリポジトリを有効化します。

yum -y install epel-release
yum -y update

その後、Erlangとsocatをインストールします。

yum -y install erlang socat

インストール後、Erlangのバージョン確認は次のコマンドで行えます。

erl -version

Erlangシェルに入るには:

erl

シェルから抜けるには Ctrl + C を2回押します。

RabbitMQをインストールする

RabbitMQはRPMパッケージで配布されています。まずパッケージをダウンロードします(以下は例として特定バージョンを示します)。

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

もしwgetが無ければ、

yum -y install wget

GPGキーをインポートします。

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

RPMをインストールします。

rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm

これでRabbitMQパッケージがシステムにインストールされます。

RabbitMQを起動して自動起動を設定する

サービスを起動します。

systemctl start rabbitmq-server

ブート時に自動起動させるには:

systemctl enable rabbitmq-server

ステータス確認:

systemctl status rabbitmq-server

正常に起動していれば Active: active (running) のような出力が得られます。

ファイアウォールとSELinuxの設定

RabbitMQは複数ポートを利用します。firewalldを使用している場合は必要なポートを開放してください。

firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp
firewall-cmd --reload

よく使うポートの説明(短く):

  • 4369:epmd(Erlangノード検出)
  • 25672:ノード間通信(クラスタリング)
  • 5671/5672:AMQP(5671はTLS用、5672は平文)
  • 15672:管理用HTTP(Web UI)
  • 61613-61614:STOMP
  • 1883/8883:MQTT(8883はTLS用)

SELinuxが有効な場合、RabbitMQに必要なブールを有効化します。

setsebool -P nis_enabled 1

注意:実運用環境ではより限定的なポリシー設定やファイルコンテキストの調整が必要な場合があります。

管理用Webコンソールにアクセスする

管理コンソール(rabbitmq_managementプラグイン)を有効にします。

rabbitmq-plugins enable rabbitmq_management

RabbitMQのファイル所有者をrabbitmqユーザーに設定します。

chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

管理者ユーザーを作成します(admin と StrongPassword は例です。実運用では強力なパスワードを使用してください)。

rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

管理コンソールへはブラウザで次のURLにアクセスします(Your_Server_IPを実際のIPに置換)。

http://Your_Server_IP:15672/

以下はログイン画面とダッシュボードの例です。ALTは日本語で説明を付けています。

RabbitMQ Login

ログイン後に管理ダッシュボードが表示されます。

RabbitMQ Overview

ユーザー、仮想ホスト、ポリシーは「Admin」タブで管理できます。セキュリティのためデフォルトの Guest ユーザーは削除または無効化することを推奨します。

RabbitMQ Users

キューの一覧は「Queues」タブで確認・作成・削除が可能です。

RabbitMQ Queues

現在の接続は「Connections」タブで確認できます。

RabbitMQ Connections

チャンネルやエクスチェンジはそれぞれのタブで管理できます。

RabbitMQ Exchanges

セキュリティチェックリスト(運用前)

  • 管理者アカウントに強力なパスワードを設定する
  • ゲストユーザーを削除またはローカル接続のみ許可にする(例: rabbitmqctl delete_user guest)
  • TLSを有効にしてAMQPと管理APIを暗号化する
  • 必要なポートのみを開放する(上記ポート表を参照)
  • クラスタを構築する場合はノード間通信を内部ネットワークに限定する

運用者/開発者別チェックリスト

  • 管理者:バックアップポリシー、ユーザー管理、証明書更新手順
  • 運用:ログローテーション、モニタリング(メモリ/FD/接続数)、アラート閾値
  • 開発者:クライアントライブラリ(言語別)、接続の再試行ロジック、確認用のテストキュー

トラブルシューティングのヒント

  • サービスが起動しない:systemctl status と journalctl -u rabbitmq-server を確認
  • ポートに接続できない:firewall-cmd –list-all でゾーン設定を確認
  • Erlangのバージョン不整合:rabbitmqはErlangの特定レンジに依存する場合があるためRabbitMQの互換性表を参照
  • プラグインが有効にならない:rabbitmq-plugins list で状態を確認し、ログを確認

よくある失敗例と回避策

  • 失敗例:ファイアウォールで15672を閉じたまま管理画面にアクセスしようとする。回避策:事前に必要ポートを開放する。
  • 失敗例:クラスタ化時に25672をブロックしてノードが参加できない。回避策:ノード間通信を許可する。
  • 失敗例:Erlangのバージョンが古すぎる/新しすぎる。回避策:RabbitMQの推奨Erlangバージョンを確認する。

受け入れ基準

  • systemctl status rabbitmq-server が active (running) を示すこと
  • 管理コンソールへブラウザでアクセスし、ログインできること
  • 必要なポートが firewall-cmd –list-ports で開いていること
  • 管理者ユーザーが作成され、Guestユーザーが無効化または削除されていること

簡易導入フロー(Mermaid)

flowchart TD
  A[サーバ準備] --> B[システム更新]
  B --> C[EPEL有効化]
  C --> D[Erlangインストール]
  D --> E[RabbitMQ RPMダウンロード]
  E --> F[RPMインストール]
  F --> G[サービス起動]
  G --> H[ファイアウォール/SELinux設定]
  H --> I[管理コンソール有効化]
  I --> J[管理ユーザー作成]
  J --> K[動作確認]

まとめ

このガイドではCentOS 7上にRabbitMQをインストールし、基本的な起動、ファイアウォールとSELinuxの調整、管理コンソールの有効化、管理ユーザーの作成までを解説しました。実運用ではTLSや監視、バックアップなどを追加で検討してください。

要点:

  • Erlangを先に入れること
  • 管理コンソールはrabbitmq_managementプラグインで有効化
  • 必要なポートとSELinux設定を忘れない

1行用語集:

  • AMQP:アプリケーション間でメッセージを送受信するための標準プロトコル

参考:RabbitMQ公式サイトで最新の互換性情報やベストプラクティスを確認してください。

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Debian 11 に Podman をインストールして使う
コンテナ

Debian 11 に Podman をインストールして使う

Apt-pinning入門:Debianで複数リポジトリを管理
Linux

Apt-pinning入門:Debianで複数リポジトリを管理

OptiScalerでFSR 4を全対応ゲームに導入する方法
ゲーム

OptiScalerでFSR 4を全対応ゲームに導入する方法

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法
ネットワーク

Dansguardian と Squid(NTLM)を Debian Etch に導入する方法

AndroidでSDカードのインストールエラーを修正する方法
トラブルシューティング

AndroidでSDカードのインストールエラーを修正する方法

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定
Linux ネットワーク

KNetAttach と KDE の remote:/ でネットワークフォルダーを設定