对于我即将到来的学士学位论文,我想开发一个工具,从Apache Flink收集系统和应用程序数据,并将这些数据以某种"事件"的形式发送到另一个系统。此工具将安装在 Flink 作业和任务管理器节点上。除了来自 linux 系统实用程序(如 dstat)的数据之外,我还想收集 JMX 数据。
我的问题是,我无法弄清楚如何使用端口通过远程 JMX 连接连接到 Flinks 作业管理器。虽然收集器将在同一台机器上,但我确实尽量避免使用 --javaagent 来访问 Flink JVM 的 JMX 数据。
另一个问题是,我有一个基于 https://github.com/apache/flink/tree/master/flink-contrib/docker-flink 的本地 docker 设置并更新到 flink-1.0.2,我无法通过 jconsole 连接,因为我不知道如何为作业和任务管理器"打开"JMX 远程端口。
有什么办法可以做到这一点吗?
提前感谢,任何想法都非常感谢。
解决了!
我需要添加env.java.opts: -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
在 flink-conf.yaml 中。
不,可以通过 jconsole 连接作业管理器。