无法从Hawtio仪表板连接到远程服务器

时间:2017-04-04 12:13:29

标签: java apache-camel hawtio

我有一个在remote-server-1上运行的camel web应用程序,它是一个tomcat 8服务器。我在这个tomcat上附加了一个jolokia jvm代理,如下所示 -

java -jar jolokia-jvm-1.3.5-agent.jar start <PID>

我通过访问http://remote-server-1:port/jolokia -

在我的本地计算机上获得以下响应
{
    "request": {
        "type": "version"
    },
    "value": {
        "agent": "1.3.5",
        "protocol": "7.2",
        "config": {
            "maxDepth": "15",
            "discoveryEnabled": "true",
            "maxCollectionSize": "0",
            "agentId": "***.***.***.**-16224-35a7a114-jvm",
            "debug": "false",
            "agentType": "jvm",
            "historyMaxEntries": "10",
            "agentContext": "\/jolokia",
            "maxObjects": "0",
            "debugMaxEntries": "100"
        },
        "info": {
            "product": "tomcat",
            "vendor": "Apache",
            "version": "8.0.35"
        }
    },
    "timestamp": 1491307702,
    "status": 200
}

我也在我的local-tomcat8.5上部署了hawtio.war。当我尝试连接到此远程代理时,我被重定向到登录页面。我无法弄清楚我哪里出错了。任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:13)

如果您使用的是Hawtio的可运行JAR版本,则在启动应用程序时也可以传递参数hawtio.proxyWhitelist:

java -Dhawtio.proxyWhitelist=SERVERNAME -jar hawtio-app-1.5.3.jar

答案 1 :(得分:9)

自hawtio 1.5.0起,您需要将远程主机添加到hawtio.proxyWhitelist系统属性。

http://hawt.io/docs/configuration/#configuration-properties

  

ProxyServlet - 目标主机的逗号分隔白名单,hawtio-jmx Connect插件可以通过localhost(默认127.0.0.1*)连接到目标主机。出于安全原因,未列入此白名单中列出的所有主机都将被拒绝连接。此选项可以设置为"r:"以恢复旧行为并将所有主机列入白名单。使用localhost,r:myservers[0-9]+.mydomain.com为列表元素添加前缀可以定义正则表达式(例如:hawtio.war

如果您使用WEB-INF/web.xml,请修改其 <servlet> <servlet-name>jolokia-proxy</servlet-name> <servlet-class>io.hawt.web.ProxyServlet</servlet-class> <!-- Comma-separated list of allowed target hosts. It is required for security. '*' allows all hosts but keep in mind it's vulnerable to security attacks. --> <init-param> <param-name>proxyWhitelist</param-name> <param-value> localhost, 127.0.0.1, remote-server-1 </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> ,如下所示:

docker exec -it add92j rs