rabbitmq搭建集群踩坑记

搭建rabbitmq集群参考教材 https://blog.csdn.net/u013256816/article/details/53524766
三台节点启动之后,想要使用s146作为集群主节点,在s151上将该节点加入s146集群时,报如下错误。

[root@s151 rabbitmq]# rabbitmqctl join_cluster rabbit@s146
Clustering node rabbit@s151 with rabbit@s146 ...
Error: unable to connect to nodes [rabbit@s146]: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@s146]

rabbit@s146:
  * connected to epmd (port 4369) on s146
  * 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?

current node details:
- node name: 'rabbitmq-cli-30368@s151'
- home dir: /root
- cookie hash: X8M4gNn7BBuuU5WV1cHdhw==

我在网上看到了很多人都碰到了这个错误,错误提示中也说了三种解决方案。
suggestion: hostname mismatch?
hostname配置是否正确,对于hostname的配置可以参考https://my.oschina.net/mingshashan/blog/741988

suggestion: is the cookie set correctly?
.erlang.cookie设置是否正确,.erlang.cookie文件里面的字符串相当于一个密钥一样,一个节点想要加入某个集群,必须要和这个机器中的所有节点的.erlang.cookie内容一样,所以通常将主节点的.erlang.cookie文件分发给其它节点即可,关键是这个节点可能出现在两个位置/var/lib/rabbitmq/.erlang.cookie或者$HOME/.erlang.cookie。这样一来如何确定自己的.erlang.cookie文件在哪儿呢?这个要看rabbitmq的日志文件,如下所示:

=INFO REPORT==== 9-Apr-2018::14:57:21 ===
node           : rabbit@s151
home dir       : /root
config file(s) : /opt/rabbitmq/sbin/../etc/rabbitmq/rabbitmq.config (not found)
cookie hash    : HfR3DHABJqfPDV+hBgdzXQ==
log            : /opt/rabbitmq/sbin/../var/log/rabbitmq/rabbit@s151.log
sasl log       : /opt/rabbitmq/sbin/../var/log/rabbitmq/rabbit@s151-sasl.log
database dir   : /opt/rabbitmq/sbin/../var/lib/rabbitmq/mnesia/rabbit@s151

其中的home dir就是你的.erlang.cookie文件存放的目录,而这个cookie hash就是.erlang.cookie里面的值hash转换得到的,你可以比较cookie hash的值是不是一致来判断你的.erlang.cookie是否一致。我之前一直以为我的.erlang.cookie文件在/var/lib/rabbitmq/下,所以屡次操作都失败了,看了日志后发现节点的cookie hash不一致,才发现原来一直将.erlang.cookie这个文件的位置搞错了,所以看日志很重要。

suggestion: is the Erlang distribution using TLS?
这种情况目前好像还没碰到过。

发布了141 篇原创文章 · 获赞 173 · 访问量 96万+
展开阅读全文

rabbitmq普通集群(3节点)+haproxy,节点无规律宕掉

06-07

现在生产上有一个rabbitmq(RabbitMQ 3.6.3, Erlang 18.1),三个节点,普通集群,集群前面有一个haproxy进行负载均衡,最近发现集群中的三个节点会随机出现宕掉的情况,影响业务。 下面是haproxy的配置 ``` global log 127.0.0.1 local0 log 127.0.0.1 local2 info maxconn 4096 user haproxy group haproxy daemon pidfile /var/run/haproxy.pid defaults log global mode tcp option tcplog option dontlognull #保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包 retries 3 #重试次数 option redispatch maxconn 4096 #最大连接数 #balance source #如果想让HAProxy按照客户端的IP地址进行负载均衡策略,即同一IP地址的所有请求都发送到同一服务器时需要配置此选项 balance leastconn timeout connect 5000 timeout client 70000 timeout server 70000 listen admin_stat #haproxy的web管理端口 8888,自行设置 bind 0.0.0.0:8888 mode http stats refresh 30s #haproxy web管理url,自行设置 stats uri /haproxy_stats stats realm Haproxy\ Statistics #haproxy web管理用户名密码,自行设置 stats auth admin:Byb1Asr9 stats hide-version listen rabbitmq #监听5672端口(如果haproxy安装在集群节点上时请选择非5672端口如5670),并转发给三个节点的5672端口,采用轮询策略 bind 0.0.0.0:5672 mode tcp balance roundrobin server rabbitmq-1 192.168.1.15:5672 check inter 2000 rise 2 fall 3 server rabbitmq-2 192.168.1.16:5672 check inter 2000 rise 2 fall 3 server rabbitmq-3 192.168.1.17:5672 check inter 2000 rise 2 fall 3 ``` 下图是rabbitmq的信息 ![图片说明](https://img-ask.csdn.net/upload/201806/07/1528360511_731929.jpg) 节点宕掉的时候,在节点的mq日志(rabbitmq@mq1.log)里只能看到下面的信息,没有其他的错误信息 在系统的/var/log/message这个时间段,没有出现错误。 ``` =INFO REPORT==== 5-Jun-2018::01:30:09 === accepting AMQP connection <0.227.33> (192.168.1.7:43276 -> 192.168.1.16:5672) =INFO REPORT==== 5-Jun-2018::01:30:09 === accepting AMQP connection <0.224.33> (192.168.1.7:43279 -> 192.168.1.16:5672) =INFO REPORT==== 5-Jun-2018::01:30:09 === accepting AMQP connection <0.294.33> (192.168.1.7:43282 -> 192.168.1.16:5672) =WARNING REPORT==== 6-Jun-2018::12:18:07 === closing AMQP connection <0.227.33> (192.168.1.7:43276 -> 192.168.1.16:5672): client unexpectedly closed TCP connection =INFO REPORT==== 6-Jun-2018::19:14:47 === rabbit on node rabbit@mq1 down =INFO REPORT==== 6-Jun-2018::19:14:47 === accepting AMQP connection <0.16310.70> (192.168.1.7:42508 -> 192.168.1.16:5672) =INFO REPORT==== 6-Jun-2018::19:14:47 === accepting AMQP connection <0.16320.70> (192.168.1.7:42511 -> 192.168.1.16:5672) =INFO REPORT==== 6-Jun-2018::19:14:48 === accepting AMQP connection <0.16390.70> (192.168.1.7:42514 -> 192.168.1.16:5672) =INFO REPORT==== 6-Jun-2018::19:14:48 === Statistics event collector started. ``` 在/var/log/secure里宕掉的时间点有如下日志,其他的信息都没有了: ``` Jun 6 19:14:48 mq1 su: pam_unix(su:session): session closed for user rabbitmq ``` 想问一下,各位,有没有谁碰到类似的问题,或者能否提供一些解析问题的思路?谢谢了 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503

分享到微信朋友圈

×

扫一扫,手机浏览