CentOS7.5 安装rabbitmq采坑

前言

业务中使用到了celery,redis用作消息代理时,断点等情况可能会产生数据丢失,企业级的消息代理,自然想到了rabbitmq。原本ubuntu中只需要一两行命令就可以安装的rabbitmq-server,却在centos中遇到了不少坑。

官网安装

一开始到官网安装rabbitmq,由于官方源的302问题,所以寻找其他的安装步骤。

手动安装

[linux]CentOS 7 下安装 RabbitMQ这里找到一些步骤,看到rabbitmq的版本也比较新(flag狂立),然后就采用了文中的步骤安装。但是所有的安装成功之后发现启动不了。

[root@xlj ~]# rabbitmqctl status
Status of node rabbit@xlj ...
Error: unable to connect to node rabbit@xlj: nodedown

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

attempted to contact: [rabbit@xlj]

rabbit@xlj:
  * connected to epmd (port 4369) on xlj
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on xlj
  * suggestion: start the node

current node details:
- node name: 'rabbitmq-cli-18@xlj'
- home dir: /var/lib/rabbitmq
- cookie hash: 092AOKFm9rigsKLaoyXi4g==
[root@xlj ~]# systemctl stop rabbitmq-server
[root@xlj ~]# systemctl status rabbitmq-server
● rabbitmq-server.service - LSB: Enable AMQP service provided by RabbitMQ broker
   Loaded: loaded (/etc/rc.d/init.d/rabbitmq-server; bad; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)

12月 20 11:03:52 xlj su[28224]: (to rabbitmq) root on none
12月 20 11:03:52 xlj su[28225]: (to rabbitmq) root on none
12月 20 11:03:54 xlj rabbitmq-server[27988]: Starting rabbitmq-server: SUCCESS
12月 20 11:03:54 xlj rabbitmq-server[27988]: rabbitmq-server.
12月 20 11:03:54 xlj systemd[1]: Started LSB: Enable AMQP service provided by RabbitMQ broker.
12月 20 13:19:40 xlj systemd[1]: Stopping LSB: Enable AMQP service provided by RabbitMQ broker...
12月 20 13:19:40 xlj su[4152]: (to rabbitmq) root on none
12月 20 13:19:40 xlj systemd[1]: Stopped LSB: Enable AMQP service provided by RabbitMQ broker.
12月 20 13:19:40 xlj rabbitmq-server[4070]: Stopping rabbitmq-server: RabbitMQ is not running
12月 20 13:19:40 xlj rabbitmq-server[4070]: rabbitmq-server.
Hint: Some lines were ellipsized, use -l to show in full.

log中返回

{"init terminating in do_boot",noproc}
[FAILED]

谷歌搜索之,找到了一个邮件组里提到过这个问题、
rabbitmq-server start fail

21 is only supported starting with 3.7.7; for 3.6.15 you have to stay with 20.x.
RTFM. :-)

查看了一下erl的版本,发现自己是21.0,可能是这个原因引起的。
于是查找官网下载了一个3.7.9的rabbitmq。这个原因和人家写的帖子也没关系,因为在当时的帖子中使用yum install erlang安装的版本是18。

换了rabbitmq的版本,启动了服务现在可以正常启动了。

root@xlj component]# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: active (running) since 四 2018-12-20 13:52:48 CST; 47min ago
  Process: 9278 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=0/SUCCESS)
 Main PID: 9405 (beam.smp)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ├─9405 /usr/lib64/erlang/erts-10.1/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- -ro...
           ├─9747 erl_child_setup 32768
           ├─9772 inet_gethost 4
           └─9773 inet_gethost 4

12月 20 13:52:47 xlj rabbitmq-server[9405]: ##  ##
12月 20 13:52:47 xlj rabbitmq-server[9405]: ##  ##      RabbitMQ 3.7.9. Copyright (C) 2007-2018 Pivotal Software, Inc.
12月 20 13:52:47 xlj rabbitmq-server[9405]: ##########  Licensed under the MPL.  See http://www.rabbitmq.com/
12月 20 13:52:47 xlj rabbitmq-server[9405]: ######  ##
12月 20 13:52:47 xlj rabbitmq-server[9405]: ##########  Logs: /var/log/rabbitmq/rabbit@xlj.log
12月 20 13:52:47 xlj rabbitmq-server[9405]: /var/log/rabbitmq/rabbit@xlj_upgrade.log
12月 20 13:52:47 xlj rabbitmq-server[9405]: Starting broker...
12月 20 13:52:48 xlj rabbitmq-server[9405]: systemd unit for activation check: "rabbitmq-server.service"
12月 20 13:52:48 xlj systemd[1]: Started RabbitMQ broker.
12月 20 13:52:49 xlj rabbitmq-server[9405]: completed with 3 plugins.

安装完后后台管理页面功能也可以开启了

[root@xlj component]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@xlj...
Plugin configuration unchanged.

但是页面通过<ip>:15672还是没法访问。这里尝试了很多命令来定位问题。
在本地使用telnet访问端口

telnet <ip> 15672

在服务器上使用curl,看到了页面内容,说明rabbitmq的后台已经启动

curl http://localhost:15672

检查防火墙设置,没有开启。

[root@xlj ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

12月 20 17:43:07 xlj systemd[1]: Starting firewalld - dynamic firewall daemon...
12月 20 17:43:07 xlj systemd[1]: Started firewalld - dynamic firewall daemon.
12月 20 17:44:02 xlj firewalld[7323]: WARNING: ALREADY_ENABLED: 80:tcp
12月 20 17:50:52 xlj systemd[1]: Stopping firewalld - dynamic firewall daemon...
12月 20 17:50:52 xlj systemd[1]: Stopped firewalld - dynamic firewall daemon.

这时对比了其他的一些服务,服务器上有个8200的接口服务,也是和这个一样的问题,无法通过端口来直接访问,而通过Nginx作一下反向代理就可以。
所以也尝试了一下将15672端口也反向代理一下,但是没有成功,查了相关资料好像是rabbitmq只支持apache,不支持Nginx。
这里分析的时候就发现不是rabbitmq的问题了,因为用的阿里云,所以登上阿里云看一下配置,结果发现了安全组,细想一下,问题应该是出在这里了。添加了一个安全规则,开放了15672端口,刷新页面,熟悉的小兔子出现了。
如果你和我一样使用的阿里云,这里记得要点添加安全组规则

屏幕快照 2018-12-21 下午3.33.13.png

这里留个坑,后来用supervisor配置在另一台CentOS7.6的服务器上,然后通过systemctl start rabbitmq-server可以启动,然后使用supervisor就启动不了。

rabbit@test06:
  * connected to epmd (port 4369) on test06
  * epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic
  * TCP connection succeeded but Erlang distribution failed

  * Hostname mismatch: node "rabbit@izwz97of7rglk0huzajw6nz" believes its host is different. Please ensure that hostnames resolve the same way locally and on "rabbit@izwz97of7rglk0huzajw6nz"


Current node details:
 * node name: 'rabbitmqcli-18529-rabbit@test06'
 * effective user's home directory: /var/lib/rabbitmq
 * Erlang cookie hash: EZ8JXA8SuquW0bMwhaUZdQ==

supervisot是使用/usr/sbin/rabbitmq-server命令启动的。

下面总结一下rabbitmq的正常安装流程

安装相关依赖

yum update
yum install epel-release
yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64

安装ErLang

wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum update
yum install erlang

输入erl检查一下是否安装成功

安装 Elixir

使用源码安装

git clone https://github.com/elixir-lang/elixir.git
cd elixir/
make clean test
export PATH="$PATH:/<path>/elixir/bin"  # 这里path需要替换成自己的

输入iex判断是否安装成功

安装 RabbitMq

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.9/rabbitmq-server-3.7.9-1.el7.noarch.rpm
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.7.9-1.el7.noarch.rpm

启动服务试一下

systemctl start rabbitmq-server

这里又使用了supervisor启动。

[program:rabbitmq]
command=/usr/sbin/rabbitmq-server
directory=%(ENV_HOME)s/puma
user=root
autostart=true
redirect_stderr=true
stdout_logfile=/var/log/puma/rabbitmq.log
stderr_logfile=/var/log/puma/rabbitmq.err

整个rabbitmq服务就搭建好了。
后来在测试服务器使用supervisor启动的时候报了一个错误。

ERROR: epmd error for host izwz97of7rglk0huzajw6nz: nxdomain (non-existing domain)

查找一下/etc/hostname然后加到/etc/hosts中就好了

127.0.0.1   izwz97of7rglk0huzajw6nz

参考相关:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容