CentOS搭建RabbitMQ集群
1、环境:三台CentOS Linux release 7.3.1611 机器
192.168.1.105、192.168.1.106、192.168.1.107
查看centos版本命令:cat /etc/redhat-release
2、三台机器修改主机名
修改/etc/hostname 编辑文件内容为 rabbitmq1、rabbitmq2、rabbitmq3
修改/etc/hosts 编辑文件内容添加
192.168.1.105 rabbitmq1
192.168.1.106 rabbitmq2
192.168.1.107 rabbitmq3
修改完后需要重启,查看有没有修改成功使用hostname来查看是无效的,要看命令提示符@符号后面的主机名是否更改了,比如像我的改好后应该显示成[[email protected]/var/lib/rabbitmq]# 而不是 [[email protected] /var/lib/rabbitmq]#
3、关闭三台机器的防火墙
systemctl stop firewalld.service
4、新建erlang文件
新建/etc/yum.repos.d/rabbitmq-erlang.repo文件,输入一下内容
# In /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
执行yum install erlang安装erlang
5、安装Rabbitmq Server
在http://www.rabbitmq.com/install-rpm.html#install-erlang 最上方点击下载rabbitmq-server-3.7.14-1.el7.noarch.rpm包
6、下载完rpm包后执行安装
rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.7.14-1.el7.noarch.rpm
7、启动rabbitmq、查看状态
启动rabbitmq
rabbitmq-server -detached
查看rabbitmq状态
rabbitmqctl status
查看日志文件,找到home dir,.erlang.cookie文件在home dir目录下,将该目录下的.erlang.cookie文件拷贝到另外两台机器上。
注:rpm安装的cookie在/var/lib/rabbitmq/.erlang.cookie
需要在/var/lib/rabbitmq路径设置
chown rabbitmq:rabbitmq .erlang.cookie
chmod 400 .erlang.cookie
8、搭建集群
这里将是rabbitmq1作为主节点,另外两个节点加入到rabbitmq1中,在另外两台上执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster [email protected]
集群搭建完毕后,查看集群状态
[[email protected] /var/lib/rabbitmq]#rabbitmqctl cluster_status
Cluster status of node [email protected] ...
[{nodes,[{disc,[[email protected],[email protected],[email protected]]}]},
{running_nodes,[[email protected],[email protected],[email protected]]},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{[email protected],[]},{[email protected],[]},{[email protected],[]}]}]
9、启动web管理插件,三台机器都要启动
rabbitmq-plugins enable rabbitmq_management
访问 http://192.168.1.105:15672/
rabbitmq有个默认用户guest,密码也为guest,但是这个用户不允许远程登录,登录时会报如下错误
可以使用命令行新增一个用户,用新用户登录
rabbitmqctl add_user admin 123456
rabbitmqctl set_permissions -p / admin".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator
10、访问、查看集群状态
正常情况访问三个的任何一个都可以访问的
附录1:
CentOS怎样安装Python3.6
yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
安装可能用到的依赖
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
下载Python3.6.8源码
tar -xzvf Python-3.6.8.tgz
解压到当前目录
cd Python-3.6.8
进入解压后的目录
./configure --prefix=/usr/local/python
安装到/usr/local/python目录,不用事先创建python目录
make
编译
make install
安装
cd /usr/bin
进入/usr/bin目录
mv python python.bak
mv pip pip.bak
重命名python2的快捷方式
ln -s /usr/local/python/bin/python3.6 /usr/bin/python
ln -s /usr/local/python/bin/pip3.6 /usr/bin/pip
创建python3与pip3软连接
ll yum*
查看/usr/bin目录下有哪些yum文件
把这些文件的第一行#!/usr/bin/python改为#!/usr/bin/python2
因为yum是依赖python的,所以我们修改了默认的python,就要修改yum,让其运行指向python2
修改urlgrabber配置文件
vim /usr/libexec/urlgrabber-ext-down
把第一行#!/usr/bin/python 改为 #!/usr/bin/python2
附录2
错误信息:
Error: unable to connect to nodes [[email protected]]: nodedown
attempted to contact: [[email protected]]
* connected to epmd (port 4369) on rabbitmq1
* epmd reports node 'rabbit' running on port 25672
* TCP connection succeeded but Erlang distribution failed
* suggestion: hostname mismatch?
* suggestion: is the cookie set correctly?
* suggestion: is the Erlang distribution using TLS?
原因可能是erlang没有安装好,重新安装
********************** APPLICATIONS INFORMATION *******************
*********************************************************************
wx : wxWidgets not found, wx will NOT be usable
*********************************************************************
*********************************************************************
********************** DOCUMENTATION INFORMATION ******************
*********************************************************************
documentation :
fop is missing.
Using fakefop to generate placeholder PDF files.