监控Debezium开云体育官方注册网址

提供的JMX指标Apache管理员Apache卡夫卡,卡夫卡连接来监控Debezium开云体育官方注册网址。要使用这些指标,你必须在启动Zookeeper、Kafka和Kafka Connect服务时启用它们。启用JMX需要设置正确的环境变量。你必须设置的环境变量取决于你是在本地安装还是在Docker容器中运行Zookeeper、Kafka和Kafka Connect。

如果在同一台机器上运行多个服务,请确保为每个服务使用不同的JMX端口。

监视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

例1。在Zookeeper Docker容器中启用JMX

下面的示例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

例2。在Kafka Docker容器中启用JMX

下面的示例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

例3。在Kafka Connect Docker容器中启用JMX

下面的示例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_前缀环境变量。