前言
最近参与的一个项目是信创改造,需要把原有的中间件迁移到国产服务器上,操作系统是麒麟ky.v10 arm架构,这是我第一次在服务器上安装软件,之前很少使用linux,只知道一些简单的命令,由于在安装过程中踩过一些坑,记录总结一下,如果能帮助到遇到相同问题的人那就更好。
准备工作
rabbitmq版本
3.6.16
Releases · rabbitmq/rabbitmq-server · GitHub
官网提供的github地址,国内很难打开,我是让能翻墙的朋友帮忙下载的安装包,这里附上安装包。有条件的尽量在官网下载,还可以使用官网提供rpm包或者其他安装方式。
erlang版本
20.3
https://www.erlang.org/downloads
操作系统
麒麟ky.v10 arm架构
其本质应该是centos8的魔改,实际安装跟centos8上安装没有区别。
注意事项
rabbitmq与erlang版本对应关系
rabbitmq跟erlang的版本需要对应,否则会有不兼容的问题,官网有对应关系,rabbitmq3.6.16系列对应的erlang是19.3-20.3.x。
RabbitMQ Erlang Version Requirements — RabbitMQ
openssl错误
公司之前服务器上的erlang版本是19.3.6.12,迁移的时候是想跟原来的版本保持一致,以免出现一些问题,但是在ky.v10上安装会报如下报错,在centos上安装是可以的,最终也没有解决这个问题,不知道是什么原因报错,最后选择安装的erlang20.3。
hostname
公司服务器的主机名是数字开头的,启动rabbitmq会报错,修改成字母开头就可以启动了。
hosts
集群中每个节点的hosts文件应包含集群内所有节点的信息才能保证互相解析。
.erlang.cookie
.erlang.cookie这个文件的权限是只读,如果修改权限会导致服务起不来,修改完内容后需要把权限改回成只读。修改这个文件之前需要先停止rabbitmq服务,如果改完以后再停会报错,最好是不要修改这个文件,直接备份这个文件,再把主节点的文件复制到目录下。
安装依赖
yum install -y gcc gcc-c++ m4 kernel-devel ncurses-devel openssl-devel unixODBC-devel unixODBC
autoconf 如果erlang是19.x系列需要安装这个依赖
安装erlang
tar -xvf erlang-otp-OTP.tar.gz
cd erlang-otp
./otp_build autoconf 19.x系列需要执行这个命令,(官网推荐)
./configure --prefix=/opt/erlang --without-javac
make
make install
设置环境变量
vi /etc/profile
export PATH=$PATH:/opt/erlang/bin
source /etc/profile
查看erlang版本
查看版本:erl
退出: halt().
安装rabbitmq
在/usr/local目录下解压
tar -xvf rabbitmq-server.tar.xz
vi /etc/profile
export PATH=$PATH:/rabbitmq安装路径/sbin
source /etc/profile
启动服务
检查主机名称
启动服务之间先检查一下主机名,如果不是字母开头,会解析不到,需要修改成字母开头
hostnamectl set-hostname 主机名
设置允许WEB访问
设置为允许才能访问rabbitmq的后台管理页面
rabbitmq-plugins enable rabbitmq_management
启动rabbitmq
-detached代表后台守护进程方式启动
rabbitmq-server –detached
服务端验证:curl http://localhost:15672
新增管理员用户
新增: rabbitmqctl add_user 用户名 密码
添加角色: rabbitmqctl set_user_tags administrator
设置权限: rabbitmqctl set_permissions -p / 用户名 ‘.*’ ‘.*’ ‘.*’
访问管理页面
用创建的管理员账号密码登录
集群
设置 Erlang Cookie
备份:mv .erlang.cookie erlang.cookie.bak
把主节点的 cookie 复制到两台服务器上
scp .erlang.cookie 用户名@ip:目标服务器目录
修改hosts文件
vi /etc/hosts
主节点 主机名
从节点1 主机名
从节点2 主机名
创建集群
启动服务
rabbitmq-server -detached
停止应用服务,只有从节点需要这个步骤,主节点不需要操作
rabbitmqctl stop_app
加入主节点
rabbitmqctl join_cluster rabbit@主机名
启动应用服务
rabbitmqctl start_app
查询集群状态
rabbitmqctl cluster_status
文件目录
日志:/usr/local/rabbitmq_server-3.6.16/var/log/rabbitmq
数据:/usr/local/rabbitmq_server-3.6.16/var/lib/rabbitmq/mnesia
常用命令
启动服务:rabbitmq-server -detached
查看状态 :rabbitmqctl status
停止服务:rabbitmqctl stop
新增: rabbitmqctl add_user 用户名 密码
授权: rabbitmqctl set_user_tags administrator
修改密码: rabbitmqctl change_password 用户名 新密码
删除用户 : rabbitmqctl delete_user 用户名
查看用户列表 : rabbitmqctl list_users
查询集群状态:rabbitmqctl cluster_status