{"stacktrace":"java.lang.Exception: Origin null 不允许调用此代理\n\tat org.jolokia.http.HttpRequestHandler.handleThrowable(HttpRequestHandler.java:242)\n\tat org.jolokia.jvmagent .handler.JolokiaHttpHandler.doHandle(JolokiaHttpHandler.java:243)\n\tat org.jolokia.jvmagent.handler.JolokiaHttpHandler.handle(JolokiaHttpHandler.java:178)\n\tat com.sun.net.httpserver.Filter$Chain .doFilter(Filter.java:79)\n\tat sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)\n\tat com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java :82)\n\tat sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)\n\tat com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79 )\n\tat sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util .concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:748)\n","error_type":"java.lang.Exception","错误":"java.lang.Exception: Origin null 不允许调用此代理","status":403}
当我尝试查询我的“jolokia”代理时,出现此错误。
curl http://localhost:8778/jolokia/list
Run Code Online (Sandbox Code Playgroud)
我已经使用 jolokia 代理启动了我的 java 应用程序 (kibana),如手册https://jolokia.org/reference/html/agents.html#agents-jvm中所述。
java -javaagent:agent.jar=port=8778,host=localhost
Run Code Online (Sandbox Code Playgroud)
我可以看到 (ps -aux) 该进程是在 Java 参数之间使用 jolokia 代理启动的。
我还尝试在我的 Tomcat /webapps 中部署 jolokia war。我已经编辑了 user.xml 文件来添加用户 Jolokia,但得到了相同的结果
我通过谷歌搜索错误得到的唯一结果似乎是第 287 行的 Jolokia 代码,这似乎意味着主机或地址错误,但我正在从 localhost 执行所有操作,这应该是允许的。 https://github.com/rhuss/jolokia/blob/master/agent/core/src/main/java/org/jolokia/http/HttpRequestHandler.java
我是否缺少一些设置?最好的测试方法是什么?我对 Java 应用程序和 Jolokia 的经验为零。
我想编写自己的 ActiveMQ 监视器。我可以从队列中获取队列和消息。但是消息体(内容)是短的。如何获得完整的消息正文?
这是我测试过的:
得到: Always errors
http://localhost:8161/api/jolokia/exec/org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=errors/browseMessages(java.lang.String)/JMSMessageID%3D%27ID%3AW530-62766-1419849619826-0%3A15%3A1%3A1%3A1%27
http://localhost:8161/api/jolokia/exec/org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=errors/browseMessages(java.lang.String)/JMSMessageID='ID:W530-62766-1419849619826-0:15:1:1:1'
Run Code Online (Sandbox Code Playgroud)
与邮政:
http://localhost:8161/api/jolokia/?ignoreErrors=true&canonicalNaming=false
{
"type":"exec",
"mbean":"org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=errors",
"operation":"browseMessages(java.lang.String)",
"arguments":["JMSMessageID='ID:W530-62766-1419849619826-0:15:1:1:1'"],
}
Run Code Online (Sandbox Code Playgroud)
错误: java.lang.OutOfMemoryError: Java heap space
http://localhost:8161/api/jolokia/?ignoreErrors=true&canonicalNaming=false
{
"type":"exec",
"mbean":"org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=errors",
"operation":"browseMessages(java.lang.String)",
"arguments":["JMSMessageID='ID:W530-62766-1419849619826-0:15:1:1:1'"],
"path":"content"
}
Run Code Online (Sandbox Code Playgroud)
错误: java.lang.NumberFormatException : For input string: "content"
我可以工作的唯一方法是每个帖子:
http://localhost:8161/api/jolokia/?maxDepth=7&maxCollectionSize=500&ignoreErrors=true&canonicalNaming=false
{
"type":"exec",
"mbean":"org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=errors",
"operation":"browseMessages(java.lang.String)",
"arguments":["JMSMessageID='ID:W530-62766-1419849619826-0:15:1:1:1'"],
}
Run Code Online (Sandbox Code Playgroud)
但后来我只得到前 500 个字符
感谢您的帮助
如何将 servlet 过滤器添加到 Spring Boot Actuator 管理端点,如健康、指标、jolokia 等?还是我必须使用拦截器?
背景:我想记录发送到的请求 <IP>:<managementPort>/jolokia
我刚刚在我的新服务器上安装了一个新的artemis,能够正常运行服务,但无法从外部访问。
我也关注了这个问题,它似乎与我有类似的问题,但似乎无法工作。
我当前的 jolokia-access :
<restrict>
<remote>
<host>localhost</host>
<host>10.85.102.148</host><!--This is my computer ip-->
</remote>
<!--
<cors>
<allow-origin>*://localhost*</allow-origin>
<strict-checking/>
</cors>
-->
</restrict>
Run Code Online (Sandbox Code Playgroud)
当前记录
2019-04-25 20:16:07,013 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server
2019-04-25 20:16:07,046 INFO [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,journalDirectory=data/journal,bindingsDirectory=data/bindings,largeMessagesDirectory=data/large-messages,pagingDirectory=data/paging)
2019-04-25 20:16:07,080 INFO [org.apache.activemq.artemis.core.server] AMQ221012: Using AIO Journal
2019-04-25 20:16:07,133 INFO [org.apache.activemq.artemis.core.server] AMQ221057: Global Max Size is being adjusted to 1/2 of the JVM max size (-Xmx). being defined as 1,073,741,824
2019-04-25 …Run Code Online (Sandbox Code Playgroud) 我有一个类的 mbean 说 foo.bar.Log4j,我想使用 jolokia 列出所有记录器?
我曾尝试阅读https://jolokia.org/reference/pdf/jolokia-reference.pdf但这告诉我如何获取预定义的 java.memory 等值
请建议如何让 jolokia 检索用户定义类的记录器
假设我有4个运行在4个linux盒子中的8个java服务器应用程序(实际上是同一个java应用程序的实例)(每个2个).我希望能够使用Jolokia从另一个Linux机箱监视这些应用程序.
我还需要能够启动和停止这些Java应用程序.Jolokia可以帮忙吗?
我是否需要在Linux机器上安装一个Jolokia war代理来监控上面提到的所有这8个应用程序?或者我是否需要在四个linux盒子中安装war代理?或者我是否需要将jolokia JVM代理连接到8个Java应用程序中的每一个?我是否需要更改原始java应用程序中的任何内容才能将Jolokia用于上述目的?
我有一个简单的Java Maven项目,并希望使用Jolokia的JVM代理来获取JMX值.当我手动下载jolokia-jvm-1.1.5-agent.jar并添加java参数的绝对路径时,它可以工作-javaagent:/absolute/path/to/jolokia-jvm-1.1.5-agent.jar.
由于Jolokia下载页面还列出了maven依赖项(jolokia-core),我想知道是否可以直接将其包含在我的Maven构建中,而无需手动下载JVM代理程序?如何使用此javaagent运行我的程序?
是否可以使用5.9.0上的ActiveMQ rest api删除队列?我知道你可以用
"http://" + host + ":" + port + "/api/jolokia/exec/org.apache.activemq:brokerName=localhost,destinationName=" + queueName + ",destinationType=Queue,type=Broker/purge()";
Run Code Online (Sandbox Code Playgroud)
但是要删除的是什么?
在Apache Commons 4.3及更高版本中,您需要在HttpRequest级别注入HTTP代理设置- 但不是全局注入HttpClient:
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
HttpGet httpget = new HttpGet("http://url");
httpget.setConfig(config);
...
httpclient.execute(target, httpget);
Run Code Online (Sandbox Code Playgroud)
问题是,在一些更高级别的库中,通过传递自定义构建的HttpClient实例来进行配置.但这并不能让您访问HttpRequestAPI代码内置的内容.
例如,在Jolokia(JMX REST桥)中,您可以像这样创建客户端:
J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia", httpClient);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,有没有办法指定HTTP代理?该http.proxyHost系统属性似乎忽略了,我想,以避免围绕创建包装类的全层HttpClient,并HttpRequest请求创建过程中注入的设置.
尝试找到一种使用 jolokia api 和curl 清除AMQ 中的2 个队列的方法。在 jolokia 列表中找到了这个:
"brokerName=localhost,destinationName=FOO.CommandQueue,destinationType=Queue,type=Broker":
{ ...
"purge": {
"ret": "void",
"desc": "Removes all of the messages in the queue.",
"args": []
},
}
Run Code Online (Sandbox Code Playgroud)
但不清楚如何使用它来编写卷曲调用。有人可以给一些建议吗?
/J
Jolokia对我来说是一个未知的领域,在阅读完文档之后,我仍然不确定它是否适用于我想到的场景.
建立:
可能的问题:
jmxrmi端点.目标:
我想要做的是将Jolokia WAR文件部署到Tomcat服务器上,然后对其进行配置,以便我可以从其他Web应用程序中读取MBean属性.
我会使用Python(版本3)和Requests HTTP库自己编写客户端代码.
我一直在阅读Jolokia文档(再次,我现在是一个完整的新手),但无法弄清楚这是否可行(因为我似乎无法找到进入JMX的位置)/RMI url或身份验证信息).
问题:
我知道5.9.0的HawtIO/Jolokia的默认密码是在\ conf \文件夹中设置的
管理员/管理员系统/经理等
但是,在尝试通过Java执行restful命令时,这些密码都不起作用:
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(null, -80), new UsernamePasswordCredentials("admin", "admin"));
CloseableHttpClient httpclient0 = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
URI uri0 = URI.create("http://localhost:8161/hawtio/auth/login/");
HttpGet httpget = new HttpGet(uri0);
HttpResponse r0 = httpclient0.execute(httpget);
System.out.println("Login form get: " + r0.getStatusLine());
for (Header h : r0.getAllHeaders())
System.out.println(h.getName() + "/" + h.getValue());
HttpEntity entity = r0.getEntity();
InputStream is0 = entity.getContent();
String resp = IOUtils.toString(is0);
System.out.println("Response0: " + resp);
Run Code Online (Sandbox Code Playgroud)
以下代码只是吐出403 Forbidden回复!我尝试了很多用户名和密码的组合.
Login form get: HTTP/1.1 403 Forbidden
Access-Control-Allow-Origin/*
Content-Length/0
Server/Jetty(7.6.9.v20130131)
Run Code Online (Sandbox Code Playgroud)
什么在这里有用?
我记得在运行5.8.0时"admin/admin"有效,但我想用5.9.0代替.仅仅因为用户名和密码改变而退出此版本将是蹩脚的.
此外,哪个\ conf文件决定了这个密码......?
jolokia ×12
java ×8
jmx ×4
javaagents ×2
tomcat ×2
apache ×1
curl ×1
hawtio ×1
httprequest ×1
logging ×1
maven ×1
maven-3 ×1
python ×1
rest ×1
spring-boot ×1