栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CentOS 7 搭建RabbitMQ环境

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CentOS 7 搭建RabbitMQ环境

0 版本选择

查询地址:https://www.rabbitmq.com/which-erlang.html

Windows下载:https://erlang.org/download/otp_versions_tree.html

Linux可在其GitHub仓库直接下载rpm安装包

1 Erlang安装 (22.3.4.1版本) 1.1 在线安装

这里选用的Erlang是rabbitMQ官方提供的精简包,只有rabbitMQ运行所必须的环境

1.1.1 配置软件仓库和签名密钥
vi /etc/yum.repos.d/rabbitmq-erlang.repo

To use Erlang 22.x on CentOS 7:

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/22/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
1.1.2 安装
yum install erlang

来自:https://github.com/rabbitmq/erlang-rpm的readme.md

1.2 离线安装 1.2.1 准备

下载需要的密钥和对应的安装包

密钥下载地址:https://github.com/rabbitmq/signing-keys、https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

安装包下载地址:https://github.com/rabbitmq/erlang-rpm/releases/download/v22.3.4.1/erlang-22.3.4.1-1.el7.x86_64.rpm

上传到服务器,进入到目录,这里上传到/usr目录

cd /usr
1.2.2 配置密钥

离线可以不用这一步

sudo rpm --import rabbitmq-release-signing-key.asc
1.2.3 安装
rpm -ivh erlang-22.3.4.1-1.el7.x86_64.rpm
1.3 验证

显示版本号,并进入控制台,即成功。

erl

退出,“.”不能忘记

halt().
2 安装RabbitMQ (3.8.4 版本) 2.1 在线安装 2.1.1 导入签名密钥
sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
2.1.2 配置软件仓库

在/etc/yum.repos.d/目录下添加.repo文件(例如rabbitmq.repo),在文件中添加以下内容,并保存

vi /etc/yum.repos.d/rabbitmq.repo

The following example sets up a repository that will install RabbitMQ 3.8 and targets CentOS 7:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1
2.1.3 安装

https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server中查找对应的版本,这里使用的是CentOS 7 ,所以安装地址是:

https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/noarch/rabbitmq-server-3.8.4-1.el7.noarch.rpm

yum install https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/noarch/rabbitmq-server-3.8.4-1.el7.noarch.rpm
2.2 离线安装 2.2.1 准备

下载对应的安装包(若选用离线,密钥在安装erlang的时候已经配置过,故这里可不再次配置)

rabbitmq以及其依赖包

socat下载地址:http://mirror.centos.org/centos/7/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm

rabbitmq下载地址:https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/noarch/rabbitmq-server-3.8.4-1.el7.noarch.rpm

github上对应版本下载:https://github.com/rabbitmq/rabbitmq-server/releases

2.2.2 安装

将下载的安装包上传服务器,这里上传到/usr目录

cd /usr

rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm

rpm -ivh rabbitmq-server-3.8.4-1.el7.noarch.rpm

一键安装

rpm -Uvh *.rpm --nodeps --force
2.3 安装路径

默认是:/usr/lib/rabbitmq

whereis rabbitmq
2.4 开启守护进程

使用rpm安装,默认是关闭守护进程的,需要开启

chkconfig rabbitmq-server on
2.5 启动/停止
# start it back
service rabbitmq-server start

# restart it back
service rabbitmq-server restart

# stop the local node
service rabbitmq-server stop

# check on service status as observed by service manager
service rabbitmq-server status
2.6 放行端口
systemctl status firewalld

firewall-cmd --list-ports

firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=15674-15675/tcp --permanent
firewall-cmd --zone=public --add-port=4396/tcp --permanent
firewall-cmd --zone=public --add-port=25672/tcp --permanent
firewall-cmd --zone=public --add-port=1883/tcp --permanent

firewall-cmd --reload
2.7 用户管理

查看所有用户

rabbitmqctl list_users

添加一个用户

rabbitmqctl add_user admin 123456

配置权限

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

查看用户权限

rabbitmqctl list_user_permissions admin

设置tag

rabbitmqctl set_user_tags admin administrator

删除用户(安全起见,删除默认用户)

rabbitmqctl delete_user guest

重启即可用新账号登录

2.8 启用插件 2.8.1 Web管理
rabbitmq-plugins enable rabbitmq_management

访问:http://{ip}:15672/

默认账号密码:guest guest(这个账号只允许本机访问)

2.8.2 MQTT

启动MQTT插件

rabbitmq-plugins enable rabbitmq_mqtt

创建账号

rabbitmqctl add_user mqtt-user mqtt-123456
rabbitmqctl set_permissions -p / mqtt-user ".*" ".*" ".*"
rabbitmqctl set_user_tags mqtt-user management

具体可查看:https://www.rabbitmq.com/mqtt.html

2.8.3 Web STOMP
rabbitmq-plugins enable rabbitmq_web_stomp

具体可查看:https://www.rabbitmq.com/web-stomp.html

2.8.4 Web MQTT
rabbitmq-plugins enable rabbitmq_web_mqtt

具体可查看:https://www.rabbitmq.com/web-mqtt.html

2.8.5 TRACING
rabbitmq-plugins enable rabbitmq_tracing

消息记录追踪插件

3 RabbitMQ普通集群配置

先按照以上步骤安装完单机版

3.1 环境
IP地址主机名操作系统用途
192.168.68.133rabbitmq1CentOS7.8(64位)磁盘节点
192.168.68.134rabbitmq2CentOS7.8(64位)内存节点
192.168.68.135rabbitmq3CentOS7.8(64位)内存节点
3.2 放行端口
firewall-cmd --zone=public --add-port=35672-35682/tcp --permanent
firewall-cmd --zone=public --add-port=4369/tcp --permanent

firewall-cmd --reload
3.3 拷贝cookie
scp root@192.168.68.133:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie

拷贝完以后需要重启Rabbit MQ服务

3.4 设置内存节点

将 2、3 服务器rabbitMQ设置成 1 服务器的内存节点,在2、3服务器上执行如下命令

rabbitmqctl stop_app

rabbitmqctl join_cluster --ram rabbit@rabbitmq1

rabbitmqctl start_app

–ram 指定内存节点类型

–disc 指定磁盘节点类型

修改节点类型

rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app
4 RabbitMQ镜像集群配置

查看博客:https://blog.51cto.com/11134648/2155934

5 服务器名修改后可能遇到的报错 5.1 报错一
Error: unable to perform an operation on node 'rabbit@pro-xxx'. Please see diagnostics information and suggestions below.

Most common reasons for this are:

 * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
 * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
 * Target node is not running

In addition to the diagnostics info below:

 * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
 * Consult server logs on node rabbit@pro-xxx
 * If target node is configured to use long node names, don't forget to use --longnames with CLI tools

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

attempted to contact: ['rabbit@pro-xxx']

rabbit@pro-xxx:
  * connected to epmd (port 4369) on pro-xxx
  * epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic 
  * can't establish TCP connection to the target node, reason: timeout (timed out)
  * suggestion: check if host 'pro-xxx' resolves, is reachable and ports 25672, 4369 are not blocked by firewall

Current node details:
 * node name: 'rabbitmqcli-23998-rabbit@pro-xxx'
 * effective user's home directory: /var/lib/rabbitmq
 * Erlang cookie hash: AsZk1YLHaHBTrRfcnFH+PQ==

需要编辑服务器的hosts配置文件

vi /etc/hosts

追加内容,即:把本机的IP追加进去,名称对应服务器名称

192.168.68.133 pro-xxx

或

echo 192.168.68.133 pro-xxx >> /etc/hosts

再重启rabbitMQ服务

5.2 报错二
Error: unable to perform an operation on node 'rabbit@localhost'. Please see diagnostics information and suggestions below.

Most common reasons for this are:

 * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues)
 * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server)
 * Target node is not running

In addition to the diagnostics info below:

 * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more
 * Consult server logs on node rabbit@localhost
 * If target node is configured to use long node names, don't forget to use --longnames with CLI tools

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

attempted to contact: [rabbit@localhost]

rabbit@localhost:
  * connected to epmd (port 4369) on localhost
  * epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic 
  * TCP connection succeeded but Erlang distribution failed 

  * Node name (or hostname) mismatch: node "rabbit@test-xxx" believes its node name is not "rabbit@test-xxx" but something else.
    All nodes and CLI tools must refer to node "rabbit@test-xxx" using the same name the node itself uses (see its logs to find out what it is)


Current node details:
 * node name: 'rabbitmqcli-26280-rabbit@localhost'
 * effective user's home directory: /var/lib/rabbitmq
 * Erlang cookie hash: AsZk1YLHaHBTrRfcnFH+PQ==

解决

vi /etc/rabbitmq/rabbitmq-env.conf

#新增以下内容
RABBITMQ_NODENAME=rabbit@test-xxx
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号