CentOS7安装RabbitMQ

安装RabbitMQ需要准备java环境,请自行搜索相关教程

安装Erlang

  1. 安装前线完成条件
  1. curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
  1. 安装Erlang
  1. yum install -y erlang
  1. 检查安装是否成功
  1. erl

CentOS7安装RabbitMQ - 图1

安装RabbitMQ

  1. 完成配置的条件,安装依赖
  1. rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
  1. rpm --import https://packagecloud.io/gpg.key
  1. curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
  1. 下载RabbitMQ的安装包
  1. wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-3.8.5-1.el7.noarch.rpm
  1. 下载一些配置
  1. rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
  1. yum -y install epel-release
  1. yum -y install socat
  1. 安装RabbitMQ包
  1. rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm
  1. 启用管理平台插件,可视化管理RabbitMQ
  1. rabbitmq-plugins enable rabbitmq_management
  1. 启动RabbitMQ
  1. systemctl start rabbitmq-server

添加开机自启动RabbitMQ服务

  1. chkconfig rabbitmq-server on
  1. 查看RabbitMQ的状态
  1. systemctl status rabbitmq-server

CentOS7安装RabbitMQ - 图2

  1. 查看15672和5672端口是否被占用
  1. netstat -anp |grep 端口号

或者

  1. losf -i:端口号
  1. 查看防火墙状态,关闭防火墙
  1. service firewalld status

CentOS7安装RabbitMQ - 图3

  1. service firewalld stop

CentOS7安装RabbitMQ - 图4

  1. 访问地址
  1. http://xxx.xxx.xxx.xxx:15672

xxx.xxx.xxx.xxx是你虚拟机的地址

查看虚拟机的地址

  1. ifconfig

或者

  1. ip addr

CentOS7安装RabbitMQ - 图5

访问页面

CentOS7安装RabbitMQ - 图6

第一次默认安装的账号密码都是guest,但是只能在本机登录

CentOS7安装RabbitMQ - 图7

创建一个用户,下面用admin进行演示

  1. rabbitmqctl add_user [username] [userpassword]

CentOS7安装RabbitMQ - 图8

设置超级管理员

  1. rabbitmqctl set_user_tags [username] administrator

CentOS7安装RabbitMQ - 图9

授权远程访问

  1. rabbitmqctl set_permissions -p / [username] "." "." ".*"

CentOS7安装RabbitMQ - 图10

重启RabbitMQ

  1. systemctl restart rabbitmq-server

登录界面

CentOS7安装RabbitMQ - 图11

可能遇到的问题

  1. 启动RabbitMQ报错

Job for rabbitmq-server.service Failed because the control process exited with error code. See “systemctl status rabbl -xe” for details.

解决:

  1. 定位到详细的报错日志信息
  1. journalctl -xe
  1. 定位到ERROR,查看具体的报错信息

根据具体的报错信息解决

  1. ERROR: epmd error for host 192: badarg (unknown POSIX error)

原因:Linux主机名称中含有数字

解决:修改Linux主机名

  1. 修改hostname
  1. vim /etc/hostname
  1. 重启Linux
  1. reboot

或者

  1. shutdown -r now

注:主机名不要修改为localhost,原来的主机名就是localhost,会出现重启依旧是数字的情况

  1. 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:

翻译一下

  • 目标节点是无法访问的(例如,主机名解析问题,TCP连接或防火墙问题)
  • CLI工具无法通过服务器进行身份验证(例如,CLI工具的Erlang cookie与服务器不匹配)
  • 目标节点没有运行

解决:

  1. 主机名解析问题,对/etc/host文件配置ip和主机名
  1. echo 127.0.0.1 xxx>> /etc/host
  1. TCP连接问题,ping一下rabbitmq所在服务器的地址
  1. ping xxx.xxx.xxx.xxx

注:xxx为rabbit@后面的xxx

  1. 防火墙问题,关闭防火墙
  1. systemctl stop firewalld

防火墙命令

启动

  1. systemctl start firewalld.service

关闭

  1. systemctl stop firewalld.service

开机自启动

  1. systemctl enable firewalld.service

禁用开机自启动

  1. systemctl disable firewalld.service