2015年4月15日水曜日

RabbitMQ - インストールから設定まで -

RabbitMQを使用するための調査をしたので、まとめを記載します。
日本語の情報がかなり少ないけど、あまり使われていないのでしょうか…
テスト環境としてvagrantを利用します。

環境

  • mac
  • vagrant1.7.2(cent os)

記事履歴

  • 投稿:2015/04/14
  • 最終更新:2015/04/15

Erlang導入


// wget
wget https://www.rabbitmq.com/releases/erlang/erlang-17.4-1.el6.x86_64.rpm

// install erlang 
sudo rpm -ivh erlang-17.4-1.el6.x86_64.rpm

RabbitMQ導入


// wget
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.5.1/rabbitmq-server-3.5.1-1.noarch.rpm

// install RabbitMQ 
sudo rpm -ivh rabbitmq-server-3.5.1-1.noarch.rpm

chkconfig(サービス自動起動)の設定とサーバーの起動

RabbitMQ serverはパッケージとしてインストールされているので、デーモンとして起動されません。
なので、システムをブートした時にデフォルトでデーモンとして開始するために、以下のように設定をします。


// chkconfigの設定(自動起動)
sudo chkconfig rabbitmq-server on

// 状態を確認
chkconfig --list rabbitmq-server
rabbitmq-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off

// サーバーを起動
sudo /sbin/service rabbitmq-server start
Starting rabbitmq-server: SUCCESS
rabbitmq-server.

Note: 上記の場合、RabbitMQはシステムユーザーrabbitmqとして動作している。
設定ファイルを変更する場合は、root、もしくはrabbitmqになって変更する必要があります。

動作確認


// ステータス確認
sudo rabbitmqctl status # sudo /sbin/service rabbitmq-server statusと同じ

[{pid,9967},
 {running_applications,[{rabbit,"RabbitMQ","3.5.1"},
                        {mnesia,"MNESIA  CXC 138 12","4.12.4"},
                        {os_mon,"CPO  CXC 138 46","2.3"},
                        {xmerl,"XML parser","1.3.7"},
                        {sasl,"SASL  CXC 138 11","2.4.1"},
                        {stdlib,"ERTS  CXC 138 10","2.3"},
                        {kernel,"ERTS  CXC 138 10","3.1"}]},
 {os,{unix,linux}},
 {erlang_version,"Erlang/OTP 17 [erts-6.3] [source] [64-bit] [async-threads:30] [kernel-poll:true]\n"},
 {memory,[{total,34863768},
          {connection_readers,0},
          {connection_writers,0},
          {connection_channels,0},
          {connection_other,2632},
          {queue_procs,2632},
          {queue_slave_procs,0},
          {plugins,0},
          {other_proc,13375752},
          {mnesia,57984},
          {mgmt_db,0},
          {msg_index,45136},
          {other_ets,732320},
          {binary,13416},
          {code,16576864},
          {atom,602729},
          {other_system,3454303}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,192287539},
 {disk_free_limit,50000000},
 {disk_free,194548305920},
 {file_descriptors,[{total_limit,924},
                    {total_used,3},
                    {sockets_limit,829},
                    {sockets_used,1}]},
 {processes,[{limit,1048576},{used,123}]},
 {run_queue,0},
 {uptime,1244}]


ログ


// フォルダ移動
cd /var/log/rabbitmq 

tail -f rabbit@localhost.log
msg_store_persistent: using rabbit_msg_store_ets_index to provide index

=WARNING REPORT==== 14-Apr-2015::02:00:02 ===
msg_store_persistent: rebuilding indices from scratch

=INFO REPORT==== 14-Apr-2015::02:00:02 ===
started TCP Listener on [::]:5672

=INFO REPORT==== 14-Apr-2015::02:00:02 ===
Server startup complete; 0 plugins started.

Limits

Limitの数(スレッド数の上限)は、初期設定では少なすぎるので変更するべきです。
本番環境なら少なくとも65536にすることを薦めます。ただし、開発環境なら4096で十分です。


// プロセス数
ulimit -n
1024

// 変更(一時的に更新)
ulimit -S -n 4096

// プロセス数
ulimit -n
4096

Limitの変更方法は環境や状況に応じて異なります。ここが参考になります。

以上。続きます。

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...