linux rabbitmq 服务器,Linux下安装RabbitMQ

1. 安装erlang

erlang的安装比想象中要麻烦的多,试验了好几种,总是出现依赖错误。。最后还是通过kerl脚本安装搞定了。。具体参见:Installing Erlang。

[work@www.linuxidc.com downloads]$ ./kerl list releases

Getting the available releases from erlang.org...

R10B-0 R10B-10 R10B-1a R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B01 R13B02-1 R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B_erts-5.8.1.1 R14B R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03-1 R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2.1 18.2 18.3

Run 'kerl update releases' to update this list from erlang.org

[work@www.linuxidc.com downloads]$ ./kerl update releases

Getting the available releases from erlang.org...

The available releases are:

R10B-0 R10B-10 R10B-1a R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B01 R13B02-1 R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B_erts-5.8.1.1 R14B R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03-1 R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2.1 18.2 18.3

[work@www.linuxidc.com downloads]$ ./kerl build 18.3 erlang-18.3

Downloading otp_src_18.3.tar.gz to /home/work/.kerl/archives

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 65.1M 100 65.1M 0 0 259k 0 0:04:17 0:04:17 --:--:-- 255k^@

Getting the checksum file from erlang.org...

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 27754 100 27754 0 0 13640 0 0:00:02 0:00:02 --:--:-- 87188

Verifying archive checksum...

Checksum verified (7e4ff32f97c36fb3dab736f8d481830b)

Extracting source code

Building Erlang/OTP 18.3 (erlang-18.3), please wait...

Erlang/OTP 18.3 (erlang-18.3) has been successfully built

[work@www.linuxidc.com downloads]$ ./kerl list builds

18.3,erlang-18.3

[work@www.linuxidc.com downloads]$ ./kerl install erlang-18.3 /home/work/erlang/18.3

Installing Erlang/OTP 18.3 (erlang-18.3) in /home/work/erlang/18.3...

You can activate this installation running the following command:

. /home/work/erlang/18.3/activate

Later on, you can leave the installation typing:

kerl_deactivate

[work@www.linuxidc.com downloads]$ ./kerl list installations

erlang-18.3 /home/work/erlang/18.3

[work@www.linuxidc.com downloads]$ . /home/work/erlang/18.3/activate

[work@www.linuxidc.com downloads]$ ./kerl active

The current active installation is:

/home/work/erlang/18.3

2. 安装rabbitmq

一开始图省事,想直接使用yum或者rpm包安装,结果发现问题一大堆。。。:

[root@www.linuxidc.com downloads]# rpm -Uvh rabbitmq-server-3.6.1-1.noarch.rpm

error: Failed dependencies:

erlang >= R16B-03 is needed by rabbitmq-server-3.6.1-1.noarch

会报没有找到erlang依赖,但是其实我们已经通过kerl脚本安装过了,所以可以直接忽略(Install RabbitMQ on CentOS 6):

[root@www.linuxidc.com downloads]# rpm --nodeps -Uvh rabbitmq-server-3.6.1-1.noarch.rpm

Preparing... ########################################### [100%]

1:rabbitmq-server ########################################### [100%]

果然很简单,但是发现用root安装会导致各种奇怪的问题:

[root@www.linuxidc.com ~]# /etc/init.d/rabbitmq-server start

Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err}

rabbitmq-server.

[root@www.linuxidc.com rabbitmq]# tailf startup_err

mkdir: cannot create directory `/var/run/rabbitmq': Permission denied

最后还是决定使用源码安装。。首先卸载掉原来的安装:

[root@www.linuxidc.com ~]# yum remove rabbitmq-server

Loaded plugins: aliases, downloadonly, fastestmirror, priorities, security

Setting up Remove Process

Resolving Dependencies

--> Running transaction check

---> Package rabbitmq-server.noarch 0:3.6.1-1 will be erased

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================================================================================

Package Arch Version Repository Size

================================================================================================================================================

Removing:

rabbitmq-server noarch 3.6.1-1 installed 5.5 M

Transaction Summary

================================================================================================================================================

Remove 1 Package(s)

Installed size: 5.5 M

Is this ok [y/N]: y

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Warning: RPMDB altered outside of yum.

Erasing : rabbitmq-server-3.6.1-1.noarch 1/1

Stopping rabbitmq-server: RabbitMQ is not running

rabbitmq-server.

Verifying : rabbitmq-server-3.6.1-1.noarch 1/1

Removed:

rabbitmq-server.noarch 0:3.6.1-1

Complete!

但是默认会安装到/usr/local目录,然后又是root启动。。所以我们要修改他的默认安装地址,然而文档并没有说明怎么指定,查看Makefile发现如下变量:

DESTDIR ?=

PREFIX ?= /usr/local

WINDOWS_PREFIX ?= rabbitmq-server-windows-$(VERSION)

MANDIR ?= $(PREFIX)/share/man

RMQ_ROOTDIR ?= $(PREFIX)/lib/erlang

RMQ_BINDIR ?= $(RMQ_ROOTDIR)/bin

RMQ_LIBDIR ?= $(RMQ_ROOTDIR)/lib

RMQ_ERLAPP_DIR ?= $(RMQ_LIBDIR)/rabbitmq_server-$(VERSION)

所以我们可以这样子编译:

[work@www.linuxidc.com downloads]$ cd rabbitmq-server-3.6.1

[work@www.linuxidc.com rabbitmq-server-3.6.1]$ make

[work@www.linuxidc.com rabbitmq-server-3.6.1]$ make install PREFIX=/home/work/rabbitmq RMQ_ROOTDIR=/home/work/rabbitmq RMQ_ERLAPP_DIR=

/usr/bin/make64 MAC=64 install PREFIX=/home/work/rabbitmq RMQ_ROOTDIR=/home/work/rabbitmq

[work@www.linuxidc.com ~]$ vim .bashrc

# .bashrc

# User specific aliases and functions

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

ERL_HOME=/home/work/erlang/18.3

export PATH=$PATH:$ERL_HOME/bin

RABBITMQ_HOME=/home/work/rabbitmq/lib/rabbitmq_server-3.6.1

export PATH=$PATH:$RABBITMQ_HOME/sbin

[work@www.linuxidc.com ~]$ source .bashrc

3. 配置和启动

[work@www.linuxidc.com ~]$ rabbitmq-server start

/home/work/rabbitmq/lib/rabbitmq_server-3.6.1/sbin/rabbitmq-server: line 49: /var/lib/rabbitmq/mnesia/rabbit@hkg02-mj-data07.pid: Permission denied

Failed to write pid file: /var/lib/rabbitmq/mnesia/rabbit@hkg02-mj-data07.pid

修改一下用户组:

[root@www.linuxidc.com work]# chown -R work:work /var/lib/rabbitmq/

再次启动:

[work@www.linuxidc.com ~]$ rabbitmq-server start

RabbitMQ 3.6.1. Copyright (C) 2007-2016 Pivotal Software, Inc.

## ## Licensed under the MPL. See http://www.rabbitmq.com/

## ##

########## Logs: /var/log/rabbitmq/rabbit@hkg02-mj-data07.log

###### ## /var/log/rabbitmq/rabbit@hkg02-mj-data07-sasl.log

##########

Starting broker... completed with 6 plugins.

[work@www.linuxidc.com ~]$ tailf /var/log/rabbitmq/rabbit@hkg02-mj-data07.log

Statistics database started.

=INFO REPORT==== 8-Apr-2016::16:54:51 ===

Server startup complete; 6 plugins started.

* rabbitmq_management

* rabbitmq_management_agent

* rabbitmq_web_dispatch

* webmachine

* mochiweb

* amqp_client

成功了,肉留满面啊。。

TIPS

注意到源码安装的RabbitMQ默认安装了6个插件,其实就是下面要介绍的监控和管理插件。

如果要后台运行: rabbitmq-server -detached

正在生产环境使用需要配置一下,比如内存,文件句柄限制,等。

4. 管理和监控

如果是源码安装,这一步可以忽略:

[work@www.linuxidc.com ~]$ rabbitmq-plugins enable rabbitmq_management

The following plugins have been enabled:

mochiweb

webmachine

rabbitmq_web_dispatch

amqp_client

rabbitmq_management_agent

rabbitmq_management

Applying plugin configuration to rabbit@hkg02-mj-data07... started 6 plugins.

然后重启服务。

管理插件默认是监听15672端口,我们可以修改这个配置项:

[work@www.linuxidc.com ~]$ vim /etc/rabbitmq/rabbitmq.config

{rabbitmq_management,

[ {http_log_dir, "/tmp/rabbit-mgmt"},

{rates_mode, basic},

{listener, [{port, 8345}]}

]},

现在我们可以在浏览器直接访问了:http://10.242.111.26:8345/。但是发现登陆不了,要用户名密码。默认的guest/guest并不能登陆成功,日志显示:

=WARNING REPORT==== 8-Apr-2016::17:05:33 ===

HTTP access denied: user '' - invalid credentials

=ERROR REPORT==== 8-Apr-2016::17:05:33 ===

webmachine error: path="/api/whoami"

"Unauthorized"

=INFO REPORT==== 8-Apr-2016::17:05:33 ===

webmachine_log_handler: closing log file: "/tmp/rabbit-mgmt/access.log"

=INFO REPORT==== 8-Apr-2016::17:05:33 ===

opening log file: "/tmp/rabbit-mgmt/access.log.2016_04_08_09"

^@

=WARNING REPORT==== 8-Apr-2016::17:06:03 ===

HTTP access denied: user 'guest' - User can only log in via localhost

guest只能通过本机访问。查看文档需要使用rabbitmqctl add_user来创建一个non-administrator user 和 rabbitmqctl set_user_tags来提升一个普通用户为管理员:

[work@www.linuxidc.com ~]$ rabbitmqctl add_user argan xxxx

Creating user "argan" ...

[work@www.linuxidc.com ~]$ rabbitmqctl list_users

Listing users ...

argan []

guest [administrator]

[work@www.linuxidc.com ~]$ rabbitmqctl set_user_tags argan administrator

Setting tags for user "argan" to [administrator] ...

[work@www.linuxidc.com ~]$ rabbitmqctl list_users

Listing users ...

argan [administrator]

guest [administrator]

果然可以登陆成功了,管理节目还是很清新的~。

还��以通过管理插件查看API:http://10.242.111.26:8345/api/。

但是发现用管理节目创建一个队列一直没有反应,Console显示为 PUT http://10.242.111.26:8345/api/queues/%2F/91-order-wq 401 (Unauthorized)。日志显示:

=ERROR REPORT==== 8-Apr-2016::17:43:45 ===

webmachine error: path="/api/queues/%2F/91-order-wq"

"Unauthorized"

^@^@^@^@

=WARNING REPORT==== 8-Apr-2016::17:48:10 ===

HTTP access denied: user 'argan' - User not authorised to access virtual host

=ERROR REPORT==== 8-Apr-2016::17:48:10 ===

webmachine error: path="/api/queues/%2F/91-order-wq"

"Unauthorized"

是没有权限,原来 administrator 还不是万能的。。好吧。。

[work@www.linuxidc.com ~]$ rabbitmqctl add_vhost /mobopay

Creating vhost "/mobopay" ...

[work@www.linuxidc.com ~]$ rabbitmqctl set_user_tags argan administrator management

Setting tags for user "argan" to [administrator,management] ...

[work@www.linuxidc.com ~]$ rabbitmqctl set_permissions -p /mobopay argan '.*' '.*' '.*'

Setting permissions for user "argan" in vhost "/mobopay" ...

果然可以了。

4. 使用

RabbitMQ 的详细介绍:请点这里

RabbitMQ 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux安装RabbitMQ,可以按照以下步骤进行: 1. 首先,需要安装Erlang环境,因为RabbitMQ是基于Erlang语言开发的。可以使用以下命令安装: sudo apt-get install erlang 2. 接着,需要下载RabbitMQ安装包。可以从官网下载最新版本的安装包,也可以使用以下命令下载: wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-generic-unix-3.8.9.tar.xz 3. 下载完成后,解压缩安装包: tar -xvf rabbitmq-server-generic-unix-3.8.9.tar.xz 4. 进入解压缩后的目录,执行以下命令安装: sudo ./sbin/rabbitmq-server 5. 安装完成后,可以使用以下命令启动RabbitMQ服务: sudo systemctl start rabbitmq-server 6. 如果需要设置RabbitMQ开机自启动,可以使用以下命令: sudo systemctl enable rabbitmq-server 7. 最后,可以使用以下命令检查RabbitMQ服务是否正常运行: sudo systemctl status rabbitmq-server 以上就是在Linux安装RabbitMQ的步骤。 ### 回答2: 要在Linux安装RabbitMQ,首先需要确保系统已安装Erlang/OTP,因为RabbitMQ是使用Erlang编写的。可以使用以下命令安装Erlang/OTP: 1.更新系统软件包列表:sudo apt-get update 2.安装Erlang/OTP:sudo apt-get install erlang 安装完Erlang/OTP后,可以按照以下步骤安装RabbitMQ: 1.从RabbitMQ官方网站(https://www.rabbitmq.com/download.html)下载适用于LinuxRabbitMQ安装包。选择适合你Linux发行版本的安装包。 2.将下载的文件复制到你想要安装RabbitMQ的目录。例如,将文件复制到/usr/local/目录。 3.解压缩安装包:sudo tar -zxvf rabbitmq-server-generic-unix-x.x.x.tar.gz (请将"x.x.x"替换为你下载的RabbitMQ版本号) 4.重命名解压缩出来的文件夹:sudo mv rabbitmq_server-x.x.x/ rabbitmq 5.将RabbitMQ所在的sbin目录添加到系统的PATH环境变量中:export PATH=$PATH:/usr/local/rabbitmq/sbin 6.执行以下命令,创建RabbitMQ所需的目录:sudo mkdir /var/lib/rabbitmq sudo chown -R rabbitmq:rabbitmq /var/lib/rabbitmq 7.为RabbitMQ创建一个配置文件:sudo nano /etc/rabbitmq/rabbitmq.conf 8.在打开的配置文件中输入以下内容: NODENAME=rabbit@localhost NODE_PORT=5672 CONFIG_FILE=/etc/rabbitmq/rabbitmq CONFIG_FILE_VERSION=2 9.保存并退出配置文件。 10.启动RabbitMQ服务:sudo rabbitmq-server -detached 11.检查RabbitMQ是否成功启动:sudo rabbitmqctl status 如果成功安装和启动RabbitMQ,你应该能看到类似于"{rabbit,\[rabbit@localhost\],\[persistent\_mode\]}\n"的输出。 现在,RabbitMQ已经成功安装在你的Linux系统中,你可以使用它来建立分布式应用程序之间的通信。 ### 回答3: 在Linux安装rabbitmq可以按照以下步骤进行: 1. 首先,确保已经安装了Erlang/OTP(Open Telecom Platform),因为RabbitMQ是使用Erlang编写的。可以通过使用以下命令来安装Erlang: ``` sudo apt install erlang ``` 2. 接下来,需要下载并安装RabbitMQ包管理系统。可以从RabbitMQ官方网站下载最新版本的软件包。 ``` wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.5/rabbitmq-server-3.9.5-1.noarch.rpm ``` 3. 安装RabbitMQ软件包。 ``` sudo rpm -Uvh rabbitmq-server-3.9.5-1.noarch.rpm ``` 4. 启动RabbitMQ服务。 ``` sudo systemctl start rabbitmq-server ``` 5. 验证RabbitMQ服务是否成功启动。 ``` sudo systemctl status rabbitmq-server ``` 如果显示"active (running)",则表示RabbitMQ已经成功安装并且正在运行。 6. 可以通过RabbitMQ的Web图形界面管理工具访问RabbitMQ服务器,默认情况下,它监听在端口15672上。在浏览器中输入`http://localhost:15672`并使用默认的登录凭据(用户名:guest,密码:guest)登录。 以上就是在Linux安装RabbitMQ的简单步骤。在安装完成后,你可以配置RabbitMQ以满足你的特定需求,并开始使用它来构建可靠的消息队列系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值