监控Debezium开云体育官方注册网址
监视Debezium连接器的指标开云体育官方注册网址
除了Kafka、Zookeeper和Kafka Connect中内置的对JMX指标的支持外,每个连接器都提供了额外的指标,您可以使用这些指标来监视它们的活动。
在本地安装中启用JMX
使用Zookeeper、Kafka和Kafka Connect,你可以在启动每个服务时通过设置适当的环境变量来启用JMX。
Zookeeper JMX环境变量
Zookeeper内置了对JMX的支持。当使用本地安装运行Zookeeper时,会使用zkServer.sh
脚本识别以下环境变量:
-
JMXPORT
-
启用JMX并指定将用于JMX的端口号。该值用于指定JVM参数
-Dcom.sun.management.jmxremote.port = $ JMXPORT
. -
JMXAUTH
-
JMX客户端连接时是否必须使用密码身份验证。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.authenticate = $ JMXAUTH
. -
JMXSSL
-
JMX客户端是否使用SSL/TLS连接。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.ssl = $ JMXSSL
. -
JMXLOG4J
-
是否应该禁用Log4J JMX mbean。肯定是其中之一
真正的
(默认)或假
.默认为真正的
.该值用于指定JVM参数-Dzookeeper.jmx.log4j.disable = $ JMXLOG4J
.
Kafka JMX环境变量
当使用本地安装运行Kafka时kafka-server-start.sh
脚本识别以下环境变量:
-
JMX_PORT
-
启用JMX并指定将用于JMX的端口号。该值用于指定JVM参数
-Dcom.sun.management.jmxremote.port = $ JMX_PORT
. -
KAFKA_JMX_OPTS
-
JMX选项,在启动期间直接传递给JVM。默认选项为:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate = false
-Dcom.sun.management.jmxremote.ssl = false
连接JMX环境变量
当使用本地安装运行Kafka时connect-distributed.sh
脚本识别以下环境变量:
-
JMX_PORT
-
启用JMX并指定将用于JMX的端口号。该值用于指定JVM参数
-Dcom.sun.management.jmxremote.port = $ JMX_PORT
. -
KAFKA_JMX_OPTS
-
JMX选项,在启动期间直接传递给JVM。默认选项为:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate = false
-Dcom.sun.management.jmxremote.ssl = false
在Docker中启用JMX
如果你正在通过Debezium容器镜像运行Apache Zookeeper、Kafka和Kafka Connect,启用JMX需要几个额外的环境变开云体育官方注册网址量,这些变量在本地机器上运行时通常不需要。这是因为JVM需要主机名,它将通过该主机名向JMX客户机发布自己。因此,Deb开云体育官方注册网址ezium用于Zookeeper、Kafka和Kafka Connect的容器映像使用了几个环境变量来启用和配置JMX。对于所有图像,大多数环境变量都是相同的,但有一些小的差异。
Docker中的Zookeeper JMX环境变量
的开云体育官方注册网址debezium /管理员
image可以识别以下与jmx相关的环境变量:
-
JMXPORT
(必需) -
将用于JMX的端口号。用于指定以下JVM参数:
-Dcom.sun.management.jmxremote.port = $ JMXPORT
-Dcom.sun.management.jmxremote.rmi.port = $ JMXPORT
-
JMXHOST
(必需) -
Docker主机的IP地址或可解析的主机名,JMX使用它来构造发送给JMX客户端的URL。值为
本地主机
或127.0.0.1
不会起作用。通常情况下,0.0.0.0
可以使用。该值用于指定JVM参数-Djava.rmi.server.hostname = $ JMXHOST
. -
JMXAUTH
-
JMX客户端连接时是否必须使用密码身份验证。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.authenticate = $ JMXAUTH
. -
JMXSSL
-
JMX客户端是否使用SSL/TLS连接。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.ssl = $ JMXSSL
. -
JMXLOG4J
-
是否应该禁用Log4J JMX mbean。肯定是其中之一
真正的
或假
.默认为真正的
.该值用于指定JVM参数-Dzookeeper.jmx.log4j.disable = $ JMXLOG4J
.
下面的示例Docker命令使用开云体育官方注册网址debezium /管理员
属性的值JMXPORT
而且JMXHOST
并将Docker主机的端口9010映射到容器的JMX端口:
$ docker run -it——rm——name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 -p 9010:9010 -e JMXPORT=9010 -e JMXHOST=10.0.1.10 de开云体育官方注册网址bezium/zookeeper:最新版本
Kafka JMX环境变量在Docker
的开云体育官方注册网址debezium /卡夫卡
image可以识别以下与jmx相关的环境变量:
-
JMXPORT
(必需) -
将用于JMX的端口号。用于指定以下JVM参数:
-Dcom.sun.management.jmxremote.port = $ JMXPORT
-Dcom.sun.management.jmxremote.rmi.port = $ JMXPORT
-
JMXHOST
(必需) -
Docker主机的IP地址或可解析的主机名,JMX使用它来构造发送给JMX客户端的URL。值为
本地主机
或127.0.0.1
不会起作用。通常情况下,0.0.0.0
可以使用。该值用于指定JVM参数-Djava.rmi.server.hostname = $ JMXHOST
. -
JMXAUTH
-
JMX客户端连接时是否必须使用密码身份验证。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.authenticate = $ JMXAUTH
. -
JMXSSL
-
JMX客户端是否使用SSL/TLS连接。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.ssl = $ JMXSSL
.
下面的示例Docker命令使用开云体育官方注册网址debezium /卡夫卡
属性的值JMXPORT
而且HOST_NAME
并将Docker主机的端口9011映射到容器的JMX端口:
$ docker run -it——rm——name kafka -p 9092:9092 -p 9011:9011 -e JMXPORT=9011 -e JMXHOST=10.0.1.10——link zookeeper:zookeeper deb开云体育官方注册网址ezium/kafka:latest .
Kafka连接Docker中的JMX环境变量
的开云体育官方注册网址debezium /连接
image可以识别以下与jmx相关的环境变量:
-
JMXPORT
(必需) -
将用于JMX的端口号。用于指定以下JVM参数:
-Dcom.sun.management.jmxremote.port = $ JMXPORT
-Dcom.sun.management.jmxremote.rmi.port = $ JMXPORT
-
JMXHOST
(必需) -
Docker主机的IP地址或可解析的主机名,JMX使用它来构造发送给JMX客户端的URL。值为
本地主机
或127.0.0.1
不会起作用。通常情况下,0.0.0.0
可以使用。该值用于指定JVM参数-Djava.rmi.server.hostname = $ JMXHOST
. -
JMXAUTH
-
JMX客户端连接时是否必须使用密码身份验证。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.authenticate = $ JMXAUTH
. -
JMXSSL
-
JMX客户端是否使用SSL/TLS连接。肯定是其中之一
真正的
或假
.默认为假
.该值用于指定JVM参数-Dcom.sun.management.jmxremote.ssl = $ JMXSSL
.
下面的示例Docker命令使用开云体育官方注册网址debezium /连接
属性的值JMXPORT
而且JMXHOST
并将Docker主机的端口9012映射到容器的JMX端口:
$ docker run -it——rm——name connect \ -p 8083:8083 -p 9012:9012 \ -e JMXPORT=9012 -e JMXHOST=10.0.1.10 \ -e GROUP_ID=1 \ -e CONFIG_STORAGE_TOPIC=my_connect_configs \ -e OFFSET_STORAGE_TOPIC=my_connect_offset \ -e STATUS_STORAGE_TOPIC=my_connect_status \——link zookeeper:zookeeper \——link kafka:kafka \——link mysql:mysql \ debezium开云体育官方注册网址/connect:latest
使用普罗米修斯和格拉夫娜
Debezium和Kafka公开的指标可以导出开云体育官方注册网址和显示普罗米修斯而且Grafana.中可以找到用于不同连接器的所需配置和示例仪表板的示例开云体育官方注册网址Debezium示例库.
这些仪表板不是Debezium本身的一部分,而是在尽最大努力的基础开云体育官方注册网址上进行维护。 |
爪哇飞行记录
Kafk开云体育官方注册网址a Connect的Debezium容器映像也提供了易于使用的支持JDK飞行记录仪.要启用记录,必须设置环境变量ENABLE_JFR = true
.记录将在容器启动时自动启动。默认情况下,记录是启用的,即使用默认设置进行连续记录,然后您可以使用转储jcmd或者JDK任务控制。
修改记录器的行为是可能的。为此,需要设置前缀为JFR_RECORDING_
设置录音参数。前缀后面的部分被转换为小写字母,下划线被替换为破折号JFR_RECORDING_PATH_TO_GC_ROOTS = true
就变成了path-to-gc-roots = true
.
飞行记录仪控制选项可以配置通过JFR_OPT_
前缀环境变量。