CUBE SUGAR CONTAINER

技術系のこと書きます。

RabbitMQ: Management Plugin の WebUI を使う

RabbitMQErlang で実装された AMQP のブローカー。 具体的な利用例だと OpenStack プロジェクトで RPC のインフラとして使われている。 最近知ったんだけど RabbitMQ にはプラグイン機構があって、その中の Management Plugin を使うと WebUI を利用できるようだ。

使い方

検証の環境には Mac OS X を使っている。

$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.11.2
BuildVersion:   15C50

まずは RabbitMQ 本体を Homebrew でインストールする。

$ brew install rabbitmq

インストールできたら、次に Management Plugin を有効にする。

$ rabbitmq-plugins enable rabbitmq_management

RabbitMQ を起動する。

$ rabbitmq-server

起動できたら TCP:15672 を Listen しているか確認する。 このポートが HTTP サーバを提供している。

$ lsof -i | grep :15672
beam.smp  34160 amedama   25u  IPv4 0xc500faa99d5ac3d5      0t0  TCP *:15672 (LISTEN)

ポートが空いていることが確認できたらブラウザで開く。

$ open http://localhost:15672/

すると、次のような WebUI が表示されるはず。

f:id:momijiame:20151212213108p:plain

デフォルトの状態であれば次のアカウントでログインできる。

  • Username: guest
  • Password: guest

ログインすると WebUI 経由で RabbitMQ の状態が確認できたり、各リソースを操作できるようになる。

f:id:momijiame:20151212213203j:plain

RabbitMQ Management HTTP API

ちなみに Management Plugin を有効にすると WebUI だけでなく HTTP API も使えるようになる。 むしろ、この HTTP API をラッパしているのが WebUI ということだろう。

例えば curl コマンドを使って、自身のアカウント情報を確認してみよう。

$ curl -sS -u guest:guest http://localhost:15672/api/whoami | python -m json.tool
{
    "name": "guest",
    "tags": "administrator"
}

アカウント名の guest と、管理者権限を表すであろうタグの administrator という情報が得られた。

HTTP API ではキューやエクスチェンジなどを操作することもできるようになっている。 詳しくは Management Plugin を有効にした RabbitMQ を立ち上げた状態で次の URL にアクセスすると API の仕様を確認できる。

http://localhost:15672/api/

めでたしめでたし。