zoukankan      html  css  js  c++  java
  • rabbitmq centos 7.4 主备安装,加入主节点失败Error: unable to perform an operation on node 'rabbit@mq2'. Please see diagnostics information and suggestions below.

    环境:centos 7.4 

    版本:otp_src_22.3.tar.gz  rabbitmq-server-3.7.17-1.el7.noarch.rpm 

    模式:主备

    安装

    1 安装erlang

    依赖:

    yum install lrzsz vim -y
    yum install ncurses ncurses-base ncurses-devel ncurses-libs ncurses-static ncurses-term ocaml-curses ocaml-curses-devel openssl-devel zlib-devel -y
    yum install -y gcc gcc-c++
    yum install -y unixODBC unixODBC-devel
    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel gtk2-devel binutils-devel
    RabbitMQ Erlang版本兼容:http://www.rabbitmq.com/which-erlang.html
    Erlang各版本下载界面:http://erlang.org/download/
    # tar -zxvf otp_src_22.3.tar.gz
    # cd otp_src_22.3/
    # ./configure --prefix=/usr/local/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
    # make && make install

    make报错

    下载 wxWidgets-3.0.5.tar.bz2
    # yum install bzip2 -y
    # yum install -y mesa* freeglut*
    # bzip2 -d wxWidgets-3.0.5.tar.bz2 
    # tar -xvf wxWidgets-3.0.5.tar
    # cd wxWidgets-3.0.5
    # ./configure --with-opengl --enable-debug --enable-unicode
    # make && make install
    重新编译安装 erlang

    配置环境变量

    # vim /etc/profile
    ERL_HOME=/usr/local/erlang
    export PATH=${ERL_HOME}/bin:$PATH
    # source /etc/profile
    # echo $ERL_HOME
    [root@localhost otp_src_22.3]# erl
    Erlang/OTP 22 [erts-10.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Eshell V10.7  (abort with ^G)
    1> halt().

    2 安装 mq

    # yum install socat -y
    [root@localhost opt]# rpm -ivh rabbitmq-server-3.7.17-1.el7.noarch.rpm --nodeps
    warning: rabbitmq-server-3.7.17-1.el7.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 6026dfca: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:rabbitmq-server-3.7.17-1.el7     ################################# [100%]
    
    -- Unit rabbitmq-server.service has begun starting up.
    Mar 14 22:34:19 mq1 rabbitmq-server[4058]: /usr/lib/rabbitmq/bin/rabbitmq-server: line 187: erl: command not found
    Mar 14 22:34:19 mq1 systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=127/n/a
    Mar 14 22:34:19 mq1 rabbitmqctl[4232]: /usr/lib/rabbitmq/bin/rabbitmq-env: line 428: exec: erl: not found
    Mar 14 22:34:19 mq1 systemd[1]: rabbitmq-server.service: control process exited, code=exited status=127
    Mar 14 22:34:19 mq1 systemd[1]: Failed to start RabbitMQ broker.
    -- Subject: Unit rabbitmq-server.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    
    [root@mq1 ~]# vim /usr/lib/rabbitmq/bin/rabbitmq-server
    ERL_HOME=/usr/local/erlang
    export PATH=$PATH:${ERL_HOME}/bin
    [root@mq1 ~]# systemctl start rabbitmq-server
    [root@mq1 ~]# systemctl status rabbitmq-server

    3 拷贝文件以及启动

    [root@mq1 ~]# ll /var/lib/rabbitmq/.erlang.cookie 
    -r--------. 1 rabbitmq rabbitmq 20 Mar 12 00:00 /var/lib/rabbitmq/.erlang.cookie
    [root@mq1 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@10.15.9.232:/var/lib/rabbitmq/.
    [root@mq1 ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie
    [root@mq1 ~]# systemctl restart rabbitmq-server
    
    Mar 14 22:44:47 mq2 rabbitmq-server[3615]: format: "Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces"
    Mar 14 22:44:47 mq2 rabbitmq-server[3615]: label: {error_logger,error_msg}
    
    [root@mq1 ~]# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
    
    Mar 14 22:48:30 mq2 rabbitmqctl[10395]: /usr/lib/rabbitmq/bin/rabbitmq-env: line 428: exec: erl: not found
    Mar 14 22:48:30 mq2 systemd[1]: rabbitmq-server.service: control process exited, code=exited status=127
    
    [root@mq2 opt]# erl
    Erlang/OTP 22 [erts-10.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
    
    Eshell V10.7  (abort with ^G)
    1> halt().
    [root@mq2 opt]# vim /usr/lib/rabbitmq/bin/rabbitmq-server
    [root@mq2 opt]# vim /usr/lib/rabbitmq/bin/rabbitmq-env
    [root@mq2 opt]# systemctl restart rabbitmq-server
    
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: attempted to contact: [rabbit@mq2]
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: rabbit@mq2:
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * connected to epmd (port 4369) on mq2
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * epmd reports: node 'rabbit' not running at all
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: no other nodes on mq2
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * suggestion: start the node
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: Current node details:
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * node name: 'rabbitmqcli-16135-rabbit@mq2'
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * effective user's home directory: /var/lib/rabbitmq
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * Erlang cookie hash: 8J2OCS/WRyu4c4xt5rmDKw==
    
    -- The result is failed.
    Mar 14 22:51:14 mq2 systemd[1]: Unit rabbitmq-server.service entered failed state.
    Mar 14 22:51:14 mq2 systemd[1]: rabbitmq-server.service failed.
    Mar 14 22:51:14 mq2 polkitd[720]: Unregistered Authentication Agent for unix-process:15737:22759747 (system bus name :1.167, object path /org/freedesktop/PolicyKit1/Authen
    lines 2094-2132/2132 (END)
    
    [root@mq1 mnesia]# rabbitmqctl cluster_status
    Cluster status of node rabbit@mq1 ...
    [{nodes,[{disc,[rabbit@mq1]}]},
     {running_nodes,[rabbit@mq1]},
     {cluster_name,<<"rabbit@mq1">>},
     {partitions,[]},
     {alarms,[{rabbit@mq1,[]}]}]

    查看日志

    [root@mq1 ~]# ll /var/log/rabbitmq/
    [root@mq2 rabbitmq]# tail -n 50 rabbit@mq2.log
    2021-03-14 23:19:57.937 [info] <0.267.0> 
     node           : rabbit@mq2
     home dir       : /var/lib/rabbitmq
     config file(s) : (none)
     cookie hash    : 8J2OCS/WRyu4c4xt5rmDKw==
     log(s)         : /var/log/rabbitmq/rabbit@mq2.log
                    : /var/log/rabbitmq/rabbit@mq2_upgrade.log
     database dir   : /var/lib/rabbitmq/mnesia/rabbit@mq2

    这里第二节点加入失败,检查 Erlang cookie hash 始终不正确,

    [root@mq2 opt]# systemctl restart rabbitmq-server
    
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: attempted to contact: [rabbit@mq2]
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: rabbit@mq2:
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * connected to epmd (port 4369) on mq2
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * epmd reports: node 'rabbit' not running at all
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: no other nodes on mq2
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * suggestion: start the node
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: Current node details:
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * node name: 'rabbitmqcli-16135-rabbit@mq2'
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * effective user's home directory: /var/lib/rabbitmq
    Mar 14 22:51:14 mq2 rabbitmqctl[16135]: * Erlang cookie hash: 8J2OCS/WRyu4c4xt5rmDKw==

    上面我标注的2个地方不正确

    搞了一会,我发现我的mq2节点之前再集群启动的时候 ,启动过一次,导致重新加入失败

    所以:要清除数据目录,再重新启动

    [root@mq2 rabbitmq]# cd mnesia/
    [root@mq2 mnesia]# rm -rf *
    [root@mq2 mnesia]# systemctl start rabbitmq-server
    [root@mq2 mnesia]# rabbitmqctl cluster_status
    Cluster status of node rabbit@mq2 ...
    [{nodes,[{disc,[rabbit@mq2]}]},
     {running_nodes,[rabbit@mq2]},
     {cluster_name,<<"rabbit@mq2">>},
     {partitions,[]},
     {alarms,[{rabbit@mq2,[]}]}]
    [root@mq1 ~]# systemctl enable rabbitmq-server
    Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

    后续操作都ok了

    # rabbitmq-plugins enable rabbitmq_management
    [root@mq1 ~]# rabbitmqctl add_user admin *****
    Adding user "admin" ...
    [root@mq1 ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
    Setting permissions for user "admin" in vhost "/" ...
    [root@mq1 ~]# rabbitmqctl set_user_tags admin administrator
    Setting tags for user "admin" to [administrator] ...
    [root@mq1 ~]# netstat -tnlp|grep 5672
    tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      1211/beam.smp       
    tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      1211/beam.smp       
    tcp6       0      0 :::5672                 :::*                    LISTEN      1211/beam.smp 
    
    [root@mq2 rabbitmq]# rabbitmqctl stop_app
    Stopping rabbit application on node rabbit@mq2 ...
    [root@mq2 rabbitmq]# rabbitmqctl join_cluster rabbit@mq1
    Clustering node rabbit@mq2 with rabbit@mq1
    [root@mq2 rabbitmq]# rabbitmqctl start_app
    Starting node rabbit@mq2 ...
     completed with 3 plugins.
    
    [root@mq2 rabbitmq]# rabbitmqctl cluster_status
    Cluster status of node rabbit@mq2 ...
    [{nodes,[{disc,[rabbit@mq1,rabbit@mq2]}]},
     {running_nodes,[rabbit@mq1,rabbit@mq2]},
     {cluster_name,<<"rabbit@mq1">>},
     {partitions,[]},
     {alarms,[{rabbit@mq1,[]},{rabbit@mq2,[]}]}]
    [root@mq1 ~]# rabbitmqctl cluster_status
    Cluster status of node rabbit@mq1 ...
    [{nodes,[{disc,[rabbit@mq1,rabbit@mq2]}]},
     {running_nodes,[rabbit@mq2,rabbit@mq1]},
     {cluster_name,<<"rabbit@mq1">>},
     {partitions,[]},
     {alarms,[{rabbit@mq2,[]},{rabbit@mq1,[]}]}]

    如果要配置为镜像模式

    可以通过命令行或者web页面配置

    [root@rabbit1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
  • 相关阅读:
    Java.io.outputstream.PrintStream:打印流
    Codeforces 732F. Tourist Reform (Tarjan缩点)
    退役了
    POJ 3281 Dining (最大流)
    Light oj 1233
    Light oj 1125
    HDU 5521 Meeting (最短路)
    Light oj 1095
    Light oj 1044
    HDU 3549 Flow Problem (dinic模版 && isap模版)
  • 原文地址:https://www.cnblogs.com/yhq1314/p/14558920.html
Copyright © 2011-2022 走看看