我正在尝试通过 URL 在 ActiveMQ 5.11 服务器上获取 hawtio http://<host>:8161/api/jolokia
。如果我从浏览器 curl/hit 它,URL 可以正常工作,但当我尝试使用hawtio.jar
via时java -jar hawtio.jar
,它会失败。
它在我的开发实例上工作正常。调试输出显示以下内容:
[qtp400507874-19] WARN org.eclipse.jetty.servlet.ServletHandler -
/hawtio/proxy/http://192.168.1.171:8161/api/jolokia/
java.lang.SecurityException: Authentication Failed on remote server
http://192.168.1.171:8161/api/jolokia/?maxDepth=7&maxCollectionSize=500&ignoreErrors=true&canonicalNaming=false
关于如何解决此问题有什么建议吗?我能找到的唯一区别是测试盒在我的本地网络上(但不在本地主机上),而生产盒在 AWS 中,但如果它通过端口 8161 进行通信,那么这应该没关系。
答案1
我遇到的问题不是如何让 hawtio 自己工作(正如我所说,它在我的开发环境中工作正常),而是如何进行身份验证。我知道我需要做什么(启用 RMI),但不知道如何做,而且这很困难,因为有几种方法可以做到这一点,而且根据发行版等的不同,它们也有所不同。
如果其他人正在搜索这个问题,那么诀窍就是获取以下内容(我的 MQ 安装方式是位于 bin 目录下的“env”文件中。
ACTIVEMQ_SUNJMX_CONTROL="--jmxurl 服务:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi --jmxuser controlRole --jmxpassword abcd1234"
答案2
我可以登录到activemq控制台,但不能登录hawtio。
就我而言,我发现:
- activemq 控制台凭据从 conf/jetty-realm.properties 读取
- hawtio 凭证从 conf/users.properties 和 conf/groups.properties 读取
在 users.properties 中,密码不能包含相同的字符,在我的情况下是欧元符号 €