rabbitmq .erlang.cookie文件疑惑
1、安装方式
常见的rabbitmq安装方式有两种:rpm安装和二进制安装(编译安装)。
2、.erlang.cookie是什么
.erlang.cookie是erlang实现分布式的必要文件,erlang分布式的每一个节点上要保持相同的.erlang.cookie文件,同时该文件的权限为400。
3、.erlang.cookie文件路径
官方介绍集群的文档介绍如下: .erlang.cookie一般会存在于两个地方,第一个是:$HOME/.erlang.cookie;第二个是:/var/lib/rabbitmq/.erlang.cookie。
如果我们使用解压缩安装方式(二进制安装或者编译安装),那么该文件存在位置为$HOME目录下。即$HOME/.erlang.cookie。如果我们使用root安装,则位置为:/root/.erlang.cookie,其他用户为/home/用户名/.erlang.cookie。
如果我们使用rpm包方式安装,那么这个文件会存在于/var/lib/rabbitmq目录下。
4、依据
我们可以通过rabbitmq的启动日志,查看rabbitmq的home目录以及.erlang.cookie文件的位置等信息。
使用rpm包安装,然后启动,日志内容如下:
=INFO REPORT==== 20-Jul-2018::13:34:56 === node : rabbit@node1 home dir : /var/lib/rabbitmq config file(s) : /etc/rabbitmq/rabbitmq.config (not found) cookie hash : u93q0KLNBdaW4CWPZXC6NQ==
使用二进制安装,然后启动:
=INFO REPORT==== 20-Jul-2018::13:34:56 === node : rabbit@he10 home dir : /root (我是用root用户启动的) config file(s) : /home/rabbitmq_server-3.6.1/etc/rabbitmq/rabbitmq.config (not found) cookie hash : 063Gh+RyPjHRzyuSPf9wWA==
5、疑惑
我使用rrpm安装完成之后,使用root用户启动,则在/root和/var/lib/rabbitmq目录下都会存在.erlang.cookie。
建议为了保证rabbitmq集群正常启动,把两个目录下的erlang.cookie都copy到集群中其他机器的对应目录下,同时保持权限为400。