RabbitMQ-centOs 7安装
RabbitMQ
是一个免费的开源企业消息代理软件。 它是用Erlang编写的,并实现了高级消息队列协议(AMQP)。 它提供所有主要编程语言的客户端库。 它支持多种消息传递协议,消息队列,传送确认,灵活的路由到队列,多种交换类型。 它还提供易于使用的HTTP-API,命令行工具和用于管理RabbitMQ的Web UI;在本教程中,我们将在CentOS 7服务器上安装RabbitMQ。
条件
最小CentOS 7服务器根权限 本指南以root用户身份编写,如果以sudo用户身份登录,请运行sudo -i 。
yum 安装
添加 repo 文件
添加 repo 文件到 /etc/yum.repos.d/rabbitmq.repo,repo 文件获取 脚本会自动创建 rabbitmq.repo 文件
什么是repo文件:
repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
复制一下内容覆盖到 rabbitmq.repo
# In /etc/yum.repos.d/rabbitmq.repo ## Zero dependency Erlang [rabbitmq_erlang] name=rabbitmq_erlang baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 # PackageCloud's repository key and RabbitMQ package signing key gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [rabbitmq_erlang-source] name=rabbitmq_erlang-source baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 ## ## RabbitMQ server ## [rabbitmq_server] name=rabbitmq_server baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 # PackageCloud's repository key and RabbitMQ package signing key gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [rabbitmq_server-source] name=rabbitmq_server-source baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
如果你的服务无法链接 github,请修改本地 hosts文件进行访问,寻到最优 IP 解析结果。
hosts 文件获取
Linux 系统:/etc/hosts
更新 yum package metadata;
yum update -y
安装 packages
yum install socat logrotate -y
yum install erlang rabbitmq-server -y
您现在可以使用以下命令检查Erlang版本。
erl -version
您将得到以下输出。
[root@localhost core]# erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.2.2.7
要切换到Erlang shell,可以键入以下命令。
erl
shell将更改,您将得到以下输出。
Erlang/OTP 23 [erts-11.2.2.7] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe] Eshell V11.2.2.7 (abort with ^G) 1>
您可以通过按ctrl + C两次退出shell。 Erlang现在安装在系统上,现在可以继续安装RabbitMQ。
开始RabbitMQ
RabbitMQ 服务命令
查看服务文件 /usr/lib/systemd/system/rabbitmq-server.service
- 启动RabbitMQ服务器进程。
systemctl start rabbitmq-server
- 自动启动RabbitMQ 服务
systemctl enable rabbitmq-server
- 检查RabbitMQ服务器的状态
systemctl status rabbitmq-server
- 关闭自动启动RabbitMQ 服务
systemctl disable rabbitmq-server
- 关闭RabbitMQ服务器进程。
systemctl stop rabbitmq-server
- 重启RabbitMQ服务器进程。
systemctl restart rabbitmq-server
修改防火墙和SELinux规则
我的虚拟机上已经关闭防火墙,selinux,如果您已安装并运行防火墙,运行一下命令;
firewall-cmd –zone=public –permanent –add-port=4369/tcp firewall-cmd –zone=public –permanent –add-port=25672/tcp firewall-cmd –zone=public –permanent –add-port=5671-5672/tcp firewall-cmd –zone=public –permanent –add-port=15672/tcp firewall-cmd –zone=public –permanent –add-port=61613-61614/tcp firewall-cmd –zone=public –permanent –add-port=1883/tcp firewall-cmd –zone=public –permanent –add-port=8883/tcp
firewall-cmd –reload
如果您启用SELinux,则必须运行以下命令以允许RabbitMQ服务。
setsebool -P nis_enabled 1
访问Web控制台
启动RabbitMQ Web管理控制台
rabbitmq-plugins enable rabbitmq_management
通过运行以下命令,将RabbitMQ文件的所有权提供给RabbitMQ(admin)用户:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
现在,您将需要为RabbitMQ Web管理控制台创建管理用户.
rabbitmqctl add_user admin admin rabbitmqctl set_user_tags admin administrator rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" systemctl restart rabbitmq-server
将管理员更改为管理员用户的首选用户名。 确保将StrongPassword更改为非常强大的密码。
要访问RabbitMQ的管理面板,请使用您最喜爱的Web浏览器并打开以下URL。
http://Your_Server_IP:15672/
您将看到以下登录页面。
RabbitMQ相关命令
# 当前窗口启动 rabbitmq rabbitmq-server # 后台启动 rabbitmq rabbitmq-server -detached # 停止 rabbitmq rabbitmqctl stop # 查看所有队列 rabbitmqctl list_queues # 查看所有虚拟主机 rabbitmqctl list_vhosts # 在Erlang VM运行的情况下启动RabbitMQ应用 rabbitmqctl start_app rabbitmqctl stop_app # 查看节点状态 rabbitmqctl status # 查看所有可用的插件 rabbitmq-plugins list # 启用插件 rabbitmq-plugins enable# 停用插件 rabbitmq-plugins disable # 添加用户 rabbitmqctl add_user username password # 列出所有用户 rabbitmqctl list_users # 删除用户 rabbitmqctl delete_user username # 清除用户权限 rabbitmqctl clear_permissions -p vhostpath username # 列出用户权限 rabbitmqctl list_user_permissions username # 修改密码 rabbitmqctl change_password username newpassword # 设置用户权限 rabbitmqctl set_permissions -p vhostpath username ".*" ".*" ".*" # 创建虚拟主机 rabbitmqctl add_vhost vhostpath # 列出虚拟主机上的所有权限 rabbitmqctl list_permissions -p vhostpath # 删除虚拟主机 rabbitmqctl delete_vhost vhost vhostpath # 移除所有数据,要在 rabbitmqctl stop_app 之后使用 rabbitmqctl reset
rpm 安装
Erlang源码安装或rpm 安装
wget https://github.com/erlang/otp/releases/download/OTP-24.1.7/otp_src_24.1.7.tar.gz
编译,指定安装目录,去掉不要的模块
./configure --prefix=/usr/local/erlang-24.0 --without-javac
安装
make && make install
下载 RabbitMQ rpm文件及安装
RabbitMQ为预编译并可以直接安装的企业Linux系统提供RPM软件包。 唯一需要的依赖是将Erlang安装到系统中。 我们已经安装了Erlang,我们可以进一步下载RabbitMQ。 通过运行下载Erlang RPM软件包。
选择自己需要的RabbitMQ下载,"el8" with "el7"
代表 CentOS 8 ,CentOS 7。
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.11/rabbitmq-server-3.9.11-1.el7.noarch.rpm
如果你没有安装wget ,可以运行 yum -y install wget
。 您可以随时找到最新版本的RabbitMQ下载页面的链接。
如果你无法打开地址下载,请将地址复制git 加速网站上,另外下载,再传到服务器上。
rmp -ivh rabbitmq-server-3.9.11-1.el7.noarch.rpm
这里遇到一个安装时,erlang >= 23.2 is needed by rabbitmq-server-3.9.11-1.el7.noarch ,但是我的erlang 版本24.0的.于是 --nodeps 忽略依赖安装,后续启动没问题。
rpm -ivh --nodeps rabbitmq-server-3.8.16-1.el7.noarch
启动服务,管理后台...,请按 yum 安装 完后续操作。