我遵循了本页的说明:https://docs.ksqldb.io/en/latest/operate-and-deploy/monitoring/
因此,这是我的ksqldb服务器的一部分,docker-组合:
ksqldb-server:
image: confluentinc/ksqldb-server:0.15.0
hostname: ksqldb-server
container_name: ksqldb-server
depends_on:
- kafka
- schema-registry
- kafka-connect
ports:
- "8088:8088"
- "1099:1099"
environment:
KSQL_LISTENERS: http://0.0.0.0:8088
KSQL_BOOTSTRAP_SERVERS: kafka:29092
KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: "true"
KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: "true"
KSQL_KSQL_SCHEMA_REGISTRY_URL: http://schema-registry:8081
KSQL_KSQL_CONNECT_URL: http://kafka-connect:8083
KSQL_KSQL_QUERY_PULL_METRICS_ENABLED: "true"
KSQL_JMX_OPTS: >
-Djava.rmi.server.hostname=localhost
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.rmi.port=1099我已经将Prometheus安装在同一个坞-撰写文件中,当我访问{prometheus-url}/targets时,我看到了Get "http://ksqldb-server:1099/metrics": EOF。
在我的研究中,我已经尝试过很多配置,包括将-Djava.rmi.server.hostname更改为主机的IP地址,或者更改为ksqldb-server的容器IP地址,但它们都没有工作。有人有解决办法吗?
发布于 2021-09-24 10:29:16
那么,六个月后,我又一次处理了这个话题,我成功地设置了这个话题。这遵循了swist在我的GitHub问题中建议的方法,当时我也创建了这个问题。
KSQL_JMX_OPTS,如下所示:
出口-Dcom.sun.management.jmxremote.authenticate=false \ -Djava.util.logging.config.file=logging.properties \ -javaagent:BLUB/jmx_prometheus_javaagent.jar=7010:ksqldb.yml“\-Dcom.sun.management.jmxremote\ -Dcom.sun.management.jmxremote.ssl=false
您需要在每次有新会话时创建此变量,或者永久创建该变量。BLUB是通向JMX JAR的绝对路径。现在您可以运行ksqlDB,并且可以在端口7010 (您可以指定任何其他空闲端口)上使用这些指标。如果您想拥有一个好的仪表板,请使用这个一。
发布于 2021-03-24 14:11:21
jmxremote.port值也不是一个恰当的Prometheus目标;它用于j控制台、Visualvm或其他JMX监控工具,正如您所链接的文档所示
如果您想使用Prometheus,您需要下载JMX导出代理JAR并将其挂载到容器中,并修改JVM参数以包括agent+scraper port+mbeans配置文件.
您还可以切换到使用minikube,并应用汇合ksqlDB Helm图,其中这是为你做的
https://stackoverflow.com/questions/66670242
复制相似问题