CentOS7安装RabbitMQ
安装RabbitMQ需要准备java环境,请自行搜索相关教程
安装Erlang
- 安装前线完成条件
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
- 安装Erlang
yum install -y erlang
- 检查安装是否成功
erl
安装RabbitMQ
- 完成配置的条件,安装依赖
rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
rpm --import https://packagecloud.io/gpg.key
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
- 下载RabbitMQ的安装包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm
- 下载一些配置
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum -y install epel-release
yum -y install socat
- 安装RabbitMQ包
rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm
- 启用管理平台插件,可视化管理RabbitMQ
rabbitmq-plugins enable rabbitmq_management
- 启动RabbitMQ
systemctl start rabbitmq-server
添加开机自启动RabbitMQ服务
chkconfig rabbitmq-server on
- 查看RabbitMQ的状态
systemctl status rabbitmq-server
- 查看15672和5672端口是否被占用
netstat -anp |grep 端口号
或者
losf -i:端口号
- 查看防火墙状态,关闭防火墙
service firewalld status
service firewalld stop
- 访问地址
http://xxx.xxx.xxx.xxx:15672
xxx.xxx.xxx.xxx是你虚拟机的地址
查看虚拟机的地址
ifconfig
或者
ip addr
访问页面
第一次默认安装的账号密码都是guest,但是只能在本机登录
创建一个用户,下面用admin进行演示
rabbitmqctl add_user [username] [userpassword]
设置超级管理员
rabbitmqctl set_user_tags [username] administrator
授权远程访问
rabbitmqctl set_permissions -p / [username] "." "." ".*"
重启RabbitMQ
systemctl restart rabbitmq-server
登录界面
可能遇到的问题
- 启动RabbitMQ报错
Job for rabbitmq-server.service Failed because the control process exited with error code. See "systemctl status rabbl -xe" for details.
解决:
- 定位到详细的报错日志信息
journalctl -xe
- 定位到ERROR,查看具体的报错信息
根据具体的报错信息解决
- ERROR: epmd error for host 192: badarg (unknown POSIX error)
原因:Linux主机名称中含有数字
解决:修改Linux主机名
- 修改hostname
vim /etc/hostname
- 重启Linux
reboot
或者
shutdown -r now
注:主机名不要修改为localhost,原来的主机名就是localhost,会出现重启依旧是数字的情况
- ERROR:unable to perform an operation on node 'rabbit@xxx'. Please see diagnostics information and suggestions below
rabbitmq在报错信息下面给出了一些建议的解决办法
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 http://rabbitmq.com/documentation.html to learn more
翻译一下
- 目标节点是无法访问的(例如,主机名解析问题,TCP连接或防火墙问题)
- CLI工具无法通过服务器进行身份验证(例如,CLI工具的Erlang cookie与服务器不匹配)
- 目标节点没有运行
解决:
- 主机名解析问题,对/etc/host文件配置ip和主机名
echo 127.0.0.1 xxx>> /etc/host
- TCP连接问题,ping一下rabbitmq所在服务器的地址
ping xxx.xxx.xxx.xxx
注:xxx为rabbit@后面的xxx
- 防火墙问题,关闭防火墙
systemctl stop firewalld
防火墙命令
启动
systemctl start firewalld.service
关闭
systemctl stop firewalld.service
开机自启动
systemctl enable firewalld.service
禁用开机自启动
systemctl disable firewalld.service