2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RabbitMQ: MQTT プラグイン動作確認

Last updated at Posted at 2014-10-19

rabbitmq-server Debian Jessie Install

vagrant@10:~$ sudo apt-get install rabbitmq-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  erlang-asn1 erlang-base erlang-corba erlang-crypto erlang-diameter erlang-edoc erlang-eldap
  erlang-erl-docgen erlang-eunit erlang-ic erlang-inets erlang-mnesia erlang-nox erlang-odbc erlang-os-mon
  erlang-parsetools erlang-percept erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssh erlang-ssl
  erlang-syntax-tools erlang-tools erlang-webtool erlang-xmerl libodbc1 libsctp1 libsystemd0 lksctp-tools
Suggested packages:
  erlang erlang-manpages erlang-doc xsltproc fop erlang-ic-java erlang-observer libmyodbc odbc-postgresql
  tdsodbc unixodbc-bin
The following NEW packages will be installed:
  erlang-asn1 erlang-base erlang-corba erlang-crypto erlang-diameter erlang-edoc erlang-eldap
  erlang-erl-docgen erlang-eunit erlang-ic erlang-inets erlang-mnesia erlang-nox erlang-odbc erlang-os-mon
  erlang-parsetools erlang-percept erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssh erlang-ssl
  erlang-syntax-tools erlang-tools erlang-webtool erlang-xmerl libodbc1 libsctp1 libsystemd0 lksctp-tools
  rabbitmq-server
0 upgraded, 31 newly installed, 0 to remove and 290 not upgraded.
Need to get 24.0 MB of archives.
After this operation, 39.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Adding group `rabbitmq' (GID 111) ...
Done.
Adding system user `rabbitmq' (UID 106) ...
Adding new user `rabbitmq' (UID 106) with group `rabbitmq' ...
Not creating home directory `/var/lib/rabbitmq'.
Job for rabbitmq-server.service failed. See 'systemctl status rabbitmq-server.service' and 'journalctl -xn' for details.
invoke-rc.d: initscript rabbitmq-server, action "start" failed.
dpkg: error processing package rabbitmq-server (--configure):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for libc-bin (2.19-7) ...
Errors were encountered while processing:
 rabbitmq-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Debian Hostname 変更

vagrant@10:~$ hostname
10
vagrant@10:~$ sudo hostname js1
vagrant@10:~$ hostname
js1
vagrant@10:~$ sudo vim /etc/hosts


127.0.1.1       js1   
vagrant@10:~$ sudo vim /etc/hostname

js1
vagrant@10:~$ sudo /etc/init.d/hostname.sh restart

rabbitmq restart

vagrant@10:~$ sudo /etc/init.d/rabbitmq-server start
Starting rabbitmq-server (via systemctl): rabbitmq-server.service.

mqtt plugin


vagrant@10:~$ sudo rabbitmq-plugins enable rabbitmq_mqtt
The following plugins have been enabled:
  amqp_client
  rabbitmq_mqtt
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
vagrant@10:~$ sudo /etc/init.d/rabbitmq-server start
Starting rabbitmq-server (via systemctl): rabbitmq-server.service.

management plugin

root@js1:~# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.

/etc/rabbitmq/rabbitmq.config

root@js1:~# zcat /usr/share/doc/rabbitmq-server/rabbitmq.config.example.gz  | sudo tee -a /etc/rabbitmq/rabbitmq.config
  • 編集: erlangのコメントアウト(%%)、リストの最後のアイテムは ","で終われないみたいなので注意。
root@js1:~# vi /etc/rabbitmq/rabbitmq.config 
{loopback_users, []}         %%, 
  • 再起動
root@js1:~# sudo /etc/init.d/rabbitmq-server restart
Restarting rabbitmq-server (via systemctl): rabbitmq-server.service.

mqtt 設定

  • こちら
  • plugin有効にした時点で動いていると思われ
[{rabbit,        [{tcp_listeners,    [5672]}]},
 {rabbitmq_mqtt, [{default_user,     <<"guest">>},
                  {default_pass,     <<"guest">>},
                  {allow_anonymous,  true},
                  {vhost,            <<"/">>},
                  {exchange,         <<"amq.topic">>},
                  {subscription_ttl, 1800000},
                  {prefetch,         10},
                  {ssl_listeners,    []},
                  %% Default MQTT with TLS port is 8883
                  %% {ssl_listeners,    [8883]}
                  {tcp_listeners,    [1883]},
                  {tcp_listen_options, [binary,
                                        {packet,    raw},
                                        {reuseaddr, true},
                                        {backlog,   128},
                                        {nodelay,   true}]}]}
].
root@js1:~# lsof -i:1883
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
beam    5651 rabbitmq   15u  IPv6  25954      0t0  TCP *:1883 (LISTEN)

動作確認: paho-mqtt

(sandbox)Peeko:messaging hide$ pip install paho-mqtt
Downloading/unpacking paho-mqtt
  Downloading paho-mqtt-1.0.tar.gz (40Kb): 40Kb downloaded
  Running setup.py egg_info for package paho-mqtt
    
Installing collected packages: paho-mqtt
  Running setup.py install for paho-mqtt
    
Successfully installed paho-mqtt
Cleaning up...

publisher/subscriber

(sandbox)Peeko:messaging hide$ for i in $(seq 1 10); do python paho_pub.py ;done
(sandbox)Peeko:messaging hide$ python paho_sub.py 
rc: 0
Subscribed: 1 (0,)
Subscribed: 2 (0,)

my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014
my/topic/string 0 Hello Mon Oct 20 00:17:05 2014

amq.topic Exchange

  • ルーティングキー : my.topic.string

image

RabbitMQのマネージャから送信

image

my/topic/string 0 ほげほげ
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?