安装依赖
yum -y install socat gcc gcc-c++ openssl openssl-devel perl ncurses-base ncurses-devel ncurses-bin
unixODBC.x86_64 unixODBC-devel.x86_64 wxBase wxWidgets-devel
安装 Erlang
# 首先需对erlang对RabbitMQ的版本支持进行对比,因为它是由 erlang 编写的
https://www.rabbitmq.com/which-erlang.html
# -----------------------------------------------------------
# 安装 Erlang: https://www.erlang-solutions.com/resources/download.html
wget http://erlang.org/download/otp_src_23.2.tar.gz
tar -zxf otp_src_23.2.tar.gz -C ~
cd ~/otp_src_23.2
./configure --prefix=/usr/local/software/erlang
--with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
make -j4
make install
# 环境变量
cat >> ~/.bash_profile <<'EOF'
# set erlang environment
export ERL_HOME=/usr/local/software/erlang
export PATH=$PATH:${ERL_HOME}/bin
EOF
source ~/.bash_profile
# 检查安装: erl -v
安装 RabbitMQ
cd /usr/local/software/
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.1/rabbitmq-server-generic-unix-3.9.1.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.9.1.tar.xz
ln -sv rabbitmq_server-3.9.1 rabbitmq_server
# 环境变量
cat >> ~/.bash_profile <<'EOF'
# set RabbitMQ environment
export RABBITMQ_HOME=/usr/local/software/rabbitmq_server
export RABBITMQ_CONFIG_FILE=${RABBITMQ_HOME}/etc/rabbitmq/rabbitmq.conf
export RABBITMQ_ADVANCED_CONFIG_FILE=${RABBITMQ_HOME}/etc/rabbitmq/advanced.config
export RABBITMQ_CONF_ENV_FILE=${RABBITMQ_HOME}/etc/rabbitmq/rabbitmq-env.conf
export PATH=$PATH:${RABBITMQ_HOME}/sbin
EOF
source ~/.bash_profile
# 配置文件
# 在 3.7.0 之前 rabbitmq.conf 使用 Erlang 语法格式,新版本使用 sysctl 格式
# https://www.rabbitmq.com/configure.html#config-file
cat > $RABBITMQ_CONFIG_FILE <<'EOF'
listeners.tcp.default = 5672
management.listener.port = 15672
default_vhost = /
heartbeat = 60
log.file.level = info
num_acceptors.tcp = 10
num_acceptors.ssl = 10
ssl_options = none
EOF
# 该文件将与 rabbitmq.conf 合并 ...
# 当某些配置不可用或难以使用 sysctl 格式时可使用 Erlang 格式的配置文件: advanced.config
cat > $RABBITMQ_ADVANCED_CONFIG_FILE <<'EOF'
[
{rabbitmq_shovel,
[{shovels,
[
]}
]},
{rabbitmq_auth_backend_ldap, [
]}
].
EOF
mkdir -p /var/log/rabbitmq
cat > $RABBITMQ_CONF_ENV_FILE <<'EOF'
#!/bin/bash
RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
RABBITMQ_NODE_PORT=5672
# RABBITMQ_NODENAME=<rabbitmq_nodename>
RABBITMQ_LOG_BASE=/var/log/rabbitmq/
# RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
EOF
# 开启WEB管理插件
rabbitmq-plugins enable rabbitmq_management
# 后台启动,停止服务: rabbitmqctl stop
rabbitmq-server -detached RABBITMQ_NODENAME=<rabbitmq_nodename>
# 新增用户 admin,密码为 123,并设置最高权限后加入管理员组
rabbitmqctl add_user admin 123
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator
# 查看状态
rabbitmqctl -n rabbitmq1 status
# WEB地址: http://localhost:15672
# API文档: http://localhost:15672/api/
# 容器: docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management
RabbitMQ 相关命令
# 新增用户 admin,密码为 123
rabbitmqctl add_user admin 123
# 更改密码
rabbitmqctl change_password admin 123456
# 查看用户列表
rabbitmqctl list_users
# 查看用户权限
rabbitmqctl list_user_permissions admin
# 赋予用户全部操作权限(格式: -p 针对哪个虚拟机、哪个用户、哪个配置、是否可写、是否可读)
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
# 将 admin 用户加入管理员组
rabbitmqctl set_user_tags admin administrator
# (最后操作) 由于 RabbitMQ 默认的账号用户名和密码都是 guest,为安全起见需删除默认用户
rabbitmqctl delete_user guest
# 重置/初始化
rabbitmqctl reset
# 查看集群状态
rabbitmqctl cluster_status
# -----------------------------------------------------------
# 相关可执行文件 ...
# [root@localhost sbin]# ll -al
# -rwxr-xr-x 1 root root 1480 Jan 17 2018 rabbitmqctl
# -rwxr-xr-x 1 root root 1885 Jan 17 2018 rabbitmq-defaults
# -rwxr-xr-x 1 root root 12095 Jan 17 2018 rabbitmq-env
# -rwxr-xr-x 1 root root 1362 Jan 17 2018 rabbitmq-plugins
# -rwxr-xr-x 1 root root 10971 Jan 17 2018 rabbitmq-server