查询地址: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=11.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 /usr1.2.2 配置密钥
离线可以不用这一步
sudo rpm --import rabbitmq-release-signing-key.asc1.2.3 安装
rpm -ivh erlang-22.3.4.1-1.el7.x86_64.rpm1.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.asc2.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=12.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.rpm2.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 --force2.3 安装路径
默认是:/usr/lib/rabbitmq
whereis rabbitmq2.4 开启守护进程
使用rpm安装,默认是关闭守护进程的,需要开启
chkconfig rabbitmq-server on2.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 status2.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 --reload2.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 STOMPrabbitmq-plugins enable rabbitmq_web_stomp
具体可查看:https://www.rabbitmq.com/web-stomp.html
2.8.4 Web MQTTrabbitmq-plugins enable rabbitmq_web_mqtt
具体可查看:https://www.rabbitmq.com/web-mqtt.html
2.8.5 TRACINGrabbitmq-plugins enable rabbitmq_tracing
消息记录追踪插件
3 RabbitMQ普通集群配置先按照以上步骤安装完单机版
3.1 环境| IP地址 | 主机名 | 操作系统 | 用途 |
|---|---|---|---|
| 192.168.68.133 | rabbitmq1 | CentOS7.8(64位) | 磁盘节点 |
| 192.168.68.134 | rabbitmq2 | CentOS7.8(64位) | 内存节点 |
| 192.168.68.135 | rabbitmq3 | CentOS7.8(64位) | 内存节点 |
firewall-cmd --zone=public --add-port=35672-35682/tcp --permanent firewall-cmd --zone=public --add-port=4369/tcp --permanent firewall-cmd --reload3.3 拷贝cookie
scp root@192.168.68.133:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
3.4 设置内存节点拷贝完以后需要重启Rabbit MQ服务
将 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_app4 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



