ubuntu安裝Rabbitmq


安裝

有兩種辦法,一是直接從官網下載最新的deb文件,但是在你dpkg -i 時,因為缺少erlang的依賴,只能再通過apt-get install -f 安裝erlang,最終也能成功,但是會有一些不舒服的錯誤提示。

建議使用另一個官網上提供的安裝辦法(有潔僻的使用)。

首先,修改 /etc/apt/sources.list文件,最后一行加上:

deb http://www.rabbitmq.com/debian/ testing main

然后,命令行先后執行以下兩句加rabbitmq的公鑰為可信:

wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo apt-key add rabbitmq-signing-key-public.asc

 現在,可以先update,然后安裝了

apt-get update
sudo apt-get install rabbitmq-server

 用此步驟安裝,屏幕上會一路很爽地刷到最后,你見到如下信息,說明OK了。。。

Setting up rabbitmq-server (3.6.0-1) ...
Adding group `rabbitmq' (GID 114) ...
Done.
Adding system user `rabbitmq' (UID 106) ...
Adding new user `rabbitmq' (UID 106) with group `rabbitmq' ...
Not creating home directory `/var/lib/rabbitmq'.
 * Starting message broker rabbitmq-server                           [ OK ]
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
Processing triggers for ureadahead (0.100.0-16) ...

 然后,我們可以 ps -ef|grep rabbit 看看情況:

rabbitmq  2102     1  0 10:44 ?        00:00:00 /usr/lib/erlang/erts-5.10.4/bin/epmd -daemon
rabbitmq  2124     1  0 10:44 ?        00:00:00 /bin/sh -e /usr/lib/rabbitmq/bin/rabbitmq-server
rabbitmq  2386  2124  2 10:44 ?        00:00:00 /usr/lib/erlang/erts-5.10.4/bin/beam -W w -A 64 -P 1048576 -K true -B
i -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0/ebin -noshell
-noinput -s rabbit boot -sname rabbit@two -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl
errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@two.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@two-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@two-plugins-expand"
-os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@two"
-kernel
inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
rabbitmq  2469  2386  0 10:44 ?        00:00:00 inet_gethost 4
rabbitmq  2470  2469  0 10:44 ?        00:00:00 inet_gethost 4

 看上去沒什么問題。我們進入安裝目錄看看狀態。

cd /usr/lib/rabbitmq/bin/
yancheng@two:/usr/lib/rabbitmq/bin$ sudo ./rabbitmqctl status
Status of node rabbit@two ...
Error: unable to connect to node rabbit@two: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@two]

rabbit@two:
  * connected to epmd (port 4369) on two
  * epmd reports node 'rabbit' running on port 25672
  * TCP connection succeeded but Erlang distribution failed
  * suggestion: hostname mismatch?
  * suggestion: is the cookie set correctly?
  * suggestion: is the Erlang distribution using TLS?

current node details:
- node name: 'rabbitmq-cli-2507@two'
- home dir: /home/yancheng
- cookie hash: LzLUNZfZaIrZKLsr1kLeAg==

 

必然會報錯,其實用兩種方法安裝都會有這個問題。在這個bin目錄下有一個rabbitmq-server,你使用它停止服務也停不了,感覺上好象就沒安裝成功。。。所以,我們需要做一些配置的工作。

配置

現在我們來修改一些東西,首先,還是官網上提供的命令,停止服務:

invoke-rc.d rabbitmq-server stop

 

這回真的能停止掉,所以從此命令來看,應該還有一個rabbitmq-server腳本才對,的確,我們可以在 /etc/init.d/ 目錄下找到真正起作用的(開機自啟動的)rabbitmq-server腳本。感興趣的可以自己打開此文件看看內容。

我要說的是,在安裝成功的提示中,說新建了一個rabbitmq用戶,的確,自啟動的服務是用這個用戶啟動的,所以當前你登錄的帳號是沒辦法查詢狀態,也就是上面你看不到狀態的原因。我們可以這樣:

invoke-rc.d rabbitmq-server status

 

這也是可以的(前提你要先啟動服務,invoke-rc.d rabbitmq-server start)

於是我們做的配置就是讓當前用戶,比如我一直使用的是yancheng賬戶,能夠執行某些腳本。我需要手工修改一下/usr/lib/rabbitmq/bin目錄下的兩個腳本,讓它可用。

rabbitmqctl 用於添加用戶和查看信息等,以及rabbitmq-plugins,用於添加插件。修改方法基本一樣,就是添加一個HOME,指到 /var/lib/rabbitmq ,也就是要與啟動的rabbitmq服務中使用的HOME一致,因為當前登錄的HOME是/home/yancheng,大概如下:

RABBITMQ_USE_LONGNAME=${RABBITMQ_USE_LONGNAME} \
HOME=/var/lib/rabbitmq \
exec ${ERL_DIR}erl \
    -pa "${RABBITMQ_HOME}/ebin" \
    ...

 

現在,我們可以查看狀態 sudo ./rabbitmqctl status 了。應該是成功了。

添加用戶並加入管理員:

sudo ./rabbitmqctl add_user admin admin123 
sudo ./rabbitmqctl set_user_tags admin administrator

 啟用WEB管理台:

sudo ./rabbitmq-plugins enable rabbitmq_management 

 一切都跟以前一樣了。

 

默認端口:

  • 4369 (epmd), 25672 (Erlang distribution)
  • 5672, 5671 (AMQP 0-9-1 without and with TLS)
  • 15672 (if management plugin is enabled)
  • 61613, 61614 (if STOMP is enabled)
  • 1883, 8883 (if MQTT is enabled)

 

    控制台打開方式:

http://localhost(ip):15672

 

 

 

python3安裝關於rabbitmq的模塊:

pip3 install pika

pip3 install Celery

pip3 install Haigha


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM