我试图在puppetmaster(开源puppet)上设置mcollective/activemq。我遇到了ActiveMQ无法识别Stomp协议的问题。这里是我的/etc/activemq/instances-enabled/activemq/activemq.xml
文件中的相关片段,它应使蹬+ SSL:当我通过service activemq start
开始的ActiveMQActiveMQ不识别Stomp:传输方案无法识别:[stomp + ssl]
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
<transportConnector name="stomp+ssl" uri="stomp+ssl://0.0.0.0:61614?needClientAuth=true&transport.enabledProtocols=TLSv1,TLSv1.1,TLSv1.2"/>
</transportConnectors>
,我注意到守护进程不结束运行(我不认为这是一个处理)。然后我试着运行service activemq console activemq
,看起来问题是无法找到stomp Transport方案。这是我在输出中看到的第一个错误(并且错误在整个输出中仍然存在):
错误|无法启动Apache ActiveMQ([localhost, ID:my-servers-hostname.example.com-40447-1475514312306-0:1],java.io.IOException:Transport 连接器无法在 中注册JMX:java .io.IOException:Transport scheme not recognized:[stomp + ssl])
ActiveMQ可以很好地识别openwire。当仅使用openwire + ssl而不使用stomp + ssl时,ActiveMQ守护程序可以毫无错误地正常启动。然而,当我尝试运行mco find
,我得到一个错误,因为它似乎MCO仍试图用跺脚+ SSL(和ActiveMQ的只有openwire +启用SSL):
错误2016年10月3日17: 26:59:activemq.rb:149:在`on_ssl_connectfail” SSL会话创建与STOMP + SSL:// mcollective @本地:61614失败:连接被拒绝 - (2)连接为 “localhost” 的端口61614
也许我需要调整我的mco配置来使用openwire代替stomp?我不确定该配置会在哪里或哪些文件中。不知道为什么它不能识别脚跺,但我想知道我的选项在这里。是否甚至有可能只使用openwire + ssl来使用MCollective/ActiveMQ,或者如果我想使用mco,是否正在使用stomp要求?我不认为这是一个端口问题,因为我相信服务器上的相关端口是开放的。
这里是安装在我的机器上的相关的包/版本:
OS: Ubuntu 16.04 (xenial)
puppet: 4.7.0
ActiveMQ: 5.13.2
ruby-stomp: 1.3.5-1
MCollective (mco) version: 2.9.0
你找到一个解决的办法? –