标签: jolokia

Jolokia - 不允许 Origin null 调用此代理

{"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 的经验为零。

java tomcat httprequest javaagents jolokia

6
推荐指数
1
解决办法
5471
查看次数

ActiveMQ Jolokia API 如何获取完整的消息正文

我想编写自己的 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 个字符

感谢您的帮助

java activemq-classic jmx jolokia

5
推荐指数
1
解决办法
6200
查看次数

如何将 servlet 过滤器添加到 Spring Boot Actuator 管理端点,如健康、指标、jolokia?

如何将 servlet 过滤器添加到 Spring Boot Actuator 管理端点,如健康、指标、jolokia 等?还是我必须使用拦截器?

背景:我想记录发送到的请求 <IP>:<managementPort>/jolokia

servlet-filters spring-boot jolokia spring-boot-actuator

5
推荐指数
0
解决办法
350
查看次数

无法访问 Artemis 控制台

我刚刚在我的新服务器上安装了一个新的artemis,能够正常运行服务,但无法从外部访问。

我也关注了这个问题,它似乎与我有类似的问题,但似乎无法工作。

Artemis-2.6.3 控制台:服务不可用

我当前的 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)

jolokia activemq-artemis

5
推荐指数
2
解决办法
8801
查看次数

如何使用 jolokia 检索类的 mbean

我有一个类的 mbean 说 foo.bar.Log4j,我想使用 jolokia 列出所有记录器?

我曾尝试阅读https://jolokia.org/reference/pdf/jolokia-reference.pdf但这告诉我如何获取预定义的 java.memory 等值

请建议如何让 jolokia 检索用户定义类的记录器

java logging jmx jolokia

4
推荐指数
1
解决办法
4593
查看次数

需要安装多少个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 jmx jolokia

3
推荐指数
1
解决办法
1206
查看次数

直接在Maven Java项目中使用Jolokia JVM代理

我有一个简单的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运行我的程序?

java javaagents maven-3 maven jolokia

3
推荐指数
1
解决办法
3538
查看次数

ActiveMQ Jolokia Rest API用于删除队列?

是否可以使用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)

但是要删除的是什么?

rest activemq-classic jolokia

3
推荐指数
1
解决办法
2793
查看次数

如何为apache HttpClient设置全局http代理设置

在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请求创建过程中注入的设置.

java apache-httpclient-4.x jolokia

2
推荐指数
1
解决办法
5168
查看次数

使用 jolokia api 清除 AMQ 队列

尝试找到一种使用 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

curl activemq-classic jolokia

1
推荐指数
1
解决办法
2278
查看次数

使用Jolokia监视同一Tomcat服务器上的webapp的JMX端点

Jolokia对我来说是一个未知的领域,在阅读完文档之后,我仍然不确定它是否适用于我想到的场景.

建立:

  • Tomcat应用程序服务器(版本范围从6.x到7.x),通常在Windows平台上,偶尔会出现Linux的风格.
  • 部署的第三方Java Web应用程序(SAP BusinessObjects)启用了JMX监视(可通过RMI访问).

可能的问题:

  • 要监视的Java Web应用程序是商业和封闭源代码,因此无法进行修改.唯一可以改变的是JMX端口号
  • JMX端点是自定义端点,因此不是默认jmxrmi端点.
  • JMX连接需要身份验证.

目标:

我想要做的是将Jolokia WAR文件部署到Tomcat服务器上,然后对其进行配置,以便我可以从其他Web应用程序中读取MBean属性.

我会使用Python(版本3)和Requests HTTP库自己编写客户端代码.

我一直在阅读Jolokia文档(再次,我现在是一个完整的新手),但无法弄清楚这是否可行(因为我似乎无法找到进入JMX的位置)/RMI url或身份验证信息).

问题:

  1. 我可以使用WAR代理进行此设置吗?
  2. 如果没有,你能解释一下为什么(所以我能理解,不是因为我不相信你).另外,还有另一个更适合这种情况的代理吗?
  3. 如果是的话,你能指出我正确的方向如何配置Jolokia到Web应用程序连接?

python java tomcat jmx jolokia

1
推荐指数
1
解决办法
7744
查看次数

通过Java为ActiveMQ/Jolokia/HawtIO提供的凭据

我知道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文件决定了这个密码......?

java apache activemq-classic hawtio jolokia

0
推荐指数
1
解决办法
3737
查看次数