2017-01-24 1 views
0

RabbitMQ - MQTT 플러그인을 구성하려고합니다. 하지만 일단 플러그인을 활성화하면 서비스를 다시 시작할 수 없습니다. 내 행동을 요약하자면 https://www.rabbitmq.com/mqtt.htmlRabbitMQ MQTT 플러그인 시작 실패

:

나는 내가 문서에있는 가이드를 따라 내가이 응답

에게 있습니다

sudo rabbitmq-plugins enable rabbitmq_mqtt 

명령으로 플러그인을 활성화

[[email protected] rabbitmq]# rabbitmq-plugins enable rabbitmq_mqtt 
The following plugins have been enabled: 
    rabbitmq_mqtt 

Applying plugin configuration to [email protected] failed. 
Error: {could_not_start,rabbitmq_mqtt, 
     {{shutdown, 
      {failed_to_start_child,'rabbit_mqtt_listener_sup_:::1883', 
      {shutdown, 
      {failed_to_start_child, 
      {ranch_listener_sup,{acceptor,{0,0,0,0,0,0,0,0},1883}}, 
      {shutdown, 
       {failed_to_start_child,ranch_acceptors_sup, 
       {listen_error,{acceptor,{0,0,0,0,0,0,0,0},1883},eacces}}}}}}}, 
     {rabbit_mqtt,start,[normal,[]]}}} 
그래서 내가 활성화 된 플러그인 목록을 인쇄

[[email protected] rabbitmq]# rabbitmq-plugins list 
Configured: E = explicitly enabled; e = implicitly enabled 
| Status: [failed to contact [email protected] - status not shown] 
|/ 
[e ] amqp_client      3.6.1 
[ ] cowboy       1.0.3 
[ ] cowlib       1.0.1 
[e ] mochiweb       2.13.0 
[ ] rabbitmq_amqp1_0     3.6.1 
[ ] rabbitmq_auth_backend_ldap  3.6.1 
[ ] rabbitmq_auth_mechanism_ssl  3.6.1 
[ ] rabbitmq_consistent_hash_exchange 3.6.1 
[ ] rabbitmq_event_exchange   3.6.1 
[ ] rabbitmq_federation    3.6.1 
[ ] rabbitmq_federation_management 3.6.1 
[E ] rabbitmq_management    3.6.1 
[e ] rabbitmq_management_agent   3.6.1 
[ ] rabbitmq_management_visualiser 3.6.1 
[E ] rabbitmq_mqtt      3.6.1 
[ ] rabbitmq_recent_history_exchange 1.2.1 
[ ] rabbitmq_sharding     0.1.0 
[ ] rabbitmq_shovel     3.6.1 
[ ] rabbitmq_shovel_management  3.6.1 
[ ] rabbitmq_stomp     3.6.1 
[ ] rabbitmq_tracing     3.6.1 
[e ] rabbitmq_web_dispatch    3.6.1 
[ ] rabbitmq_web_stomp    3.6.1 
[ ] rabbitmq_web_stomp_examples  3.6.1 
[ ] sockjs       0.3.4 
[e ] webmachine      1.10.3 

[E ] rabbitmq_management 3.6.1에서 볼 수 있듯이 플러그인이 명시 적으로 사용 설정되었습니다.

그래서 나는 서비스

[[email protected] rabbitmq]# /sbin/service rabbitmq-server start 
Starting rabbitmq-server (via systemctl):     [ OK ] 

제대로 시작하는 것을 시작했습니다. 그러나 그렇지 않습니다.

[[email protected] rabbitmq]# rabbitmqctl status 
Status of node '[email protected]' ... 
Error: unable to connect to node '[email protected]': nodedown 

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

attempted to contact: ['[email protected]'] 

[email protected]: 
    * connected to epmd (port 4369) on iot-rabbit01 
    * epmd reports: node 'rabbit' not running at all 
        no other nodes on iot-rabbit01 
    * suggestion: start the node 

current node details: 
- node name: '[email protected]' 
- home dir: /var/lib/rabbitmq 
- cookie hash: pNNE23Tq7SUKunVAXkqReg== 

이 당신이 더 많은 정보는 저에게 연락 주시기 바랍니다해야하는 경우가 /var/log/rabbitmq/[email protected] 파일

=ERROR REPORT==== 24-Jan-2017::11:43:53 === 
Failed to start Ranch listener {acceptor,{0,0,0,0,0,0,0,0},1883} in ranch_tcp:listen([{port, 
                         1883}, 
                         {ip, 
                         {0, 
                         0, 
                         0, 
                         0, 
                         0, 
                         0, 
                         0, 
                         0}}, 
                         inet6, 
                         {backlog, 
                         128}, 
                         {nodelay, 
                         true}]) for reason eacces (permission denied) 

=INFO REPORT==== 24-Jan-2017::11:43:53 === 
stopped TCP Listener on [::]:5672 

=INFO REPORT==== 24-Jan-2017::11:43:53 === 
Error description: 
    {could_not_start,rabbitmq_mqtt, 
     {{shutdown, 
      {failed_to_start_child,'rabbit_mqtt_listener_sup_:::1883', 
       {shutdown, 
        {failed_to_start_child, 
         {ranch_listener_sup,{acceptor,{0,0,0,0,0,0,0,0},1883}}, 
         {shutdown, 
          {failed_to_start_child,ranch_acceptors_sup, 
           {listen_error, 
            {acceptor,{0,0,0,0,0,0,0,0},1883}, 
            eacces}}}}}}}, 
     {rabbit_mqtt,start,[normal,[]]}}} 

startup_log

  RabbitMQ 3.6.1. Copyright (C) 2007-2016 Pivotal Software, Inc. 
    ## ##  Licensed under the MPL. See http://www.rabbitmq.com/ 
    ## ## 
    ########## Logs: /var/log/rabbitmq/[email protected] 
    ###### ##  /var/log/rabbitmq/[email protected] 
    ########## 
       Starting broker... 

BOOT FAILED 
=========== 

Error description: 
    {could_not_start,rabbitmq_mqtt, 
     {{shutdown, 
      {failed_to_start_child,'rabbit_mqtt_listener_sup_:::1883', 
       {shutdown, 
        {failed_to_start_child, 
         {ranch_listener_sup,{acceptor,{0,0,0,0,0,0,0,0},1883}}, 
         {shutdown, 
          {failed_to_start_child,ranch_acceptors_sup, 
           {listen_error, 
            {acceptor,{0,0,0,0,0,0,0,0},1883}, 
            eacces}}}}}}}, 
     {rabbit_mqtt,start,[normal,[]]}}} 

Log files (may contain more information): 
    /var/log/rabbitmq/[email protected] 
    /var/log/rabbitmq/[email protected] 

{"init terminating in do_boot",{could_not_start,rabbitmq_mqtt,{{shutdown,{failed_to_start_child,'rabbit_mqtt_listener_sup_:::1883',{shutdown,{failed_to_start_child,{ranch_listener_sup,{acceptor,{0,0,0,0,0,0,0,0},1883}},{shutdown,{failed_to_start_child,ranch_acceptors_sup,{listen_error,{acceptor,{0,0,0,0,0,0,0,0},1883},eacces}}}}}}},{rabbit_mqtt,start,[normal,[]]}}}} 

에 표시되는 것입니다. 정말 고마워요.

+0

는 아무것도 이미 포트 1883에서 실행되지 않는 것을 확인 했습니까? 'sudo lsof -i -P -n'은 어떤 포트가 사용되고 있는지 보여줍니다. – hardillb

+0

1883에서 이미 실행중인 것은 없습니다. – Stefano

답변

0

내 문제가 해결되었습니다. 누가 내 똑같은 문제를 갖게 될지.

커널이 EACCESS 오류로 에 응답했기 때문에 플러그인이 포트 1883에 바인딩 할 수 없습니다. 어떤 종류의 보안 도구 (대부분 SELinux)는 해당 포트가 허용 목록이어야합니다.

변경 SELinux를 매개 변수 난 내 문제를 해결할 수 있었다. 이 SELINUX=permissive에 나에 문자열 SELINUX=enforcing 편집 파일 /etc/selinux/config 편집 두 가지 방법

  1. 가능하다 SELINUX=disabled
  2. SELinux를
  3. 의 화이트리스트에 semanage port --add에 포트 1883을 추가 (주의, 그것은 보안 결함이다)
관련 문제