10.3. 动态更改 Kafka Connect 和 MirrorMaker 2 的日志记录级别
在运行时动态更改 Kafka Connect worker 或 MirrorMaker 2 连接器的日志记录级别,而无需重启。
使用 Kafka Connect API 为 worker 或连接器日志记录器临时更改日志级别。Kafka Connect API 提供了一个 admin/loggers
端点来获取或修改日志记录级别。当您使用 API 更改日志级别时,connect-log4j.properties
配置文件中的 logger 配置不会改变。如果需要,您可以永久更改配置文件中的日志记录级别。
您只能在分布式或独立模式中时更改 MirrorMaker 2 的日志记录级别。专用 MirrorMaker 2 集群没有 Kafka Connect REST API,因此无法更改日志级别。
Kafka Connect API 的默认监听程序在端口 8083 上,用于此流程。您可以更改或添加更多监听程序,并使用 admin.listeners
配置启用 TLS 身份验证。
admin
端点的监听程序配置示例
admin.listeners=https://localhost:8083 admin.listeners.https.ssl.truststore.location=/path/to/truststore.jks admin.listeners.https.ssl.truststore.password=123456 admin.listeners.https.ssl.keystore.location=/path/to/keystore.jks admin.listeners.https.ssl.keystore.password=123456
如果您不希望 admin
端点可用,您可以通过指定空字符串来禁用它。
禁用 admin
端点的监听程序配置示例
admin.listeners=
先决条件
- AMQ Streams 安装在主机上
- zookeeper 和 Kafka 正在运行
- Kafka Connect 或 MirrorMaker 2 正在运行
流程
切换到
kafka
用户:su - kafka
检查
connect-log4j.properties
文件中配置的日志记录器的当前日志记录级别:$ cat /opt/kafka/config/connect-log4j.properties # ... log4j.rootLogger=INFO, stdout, connectAppender # ... log4j.logger.org.apache.zookeeper=ERROR log4j.logger.org.reflections=ERROR
使用 curl 命令检查 Kafka Connect API 的
admin/loggers
端点中的日志记录级别:curl -s http://localhost:8083/admin/loggers/ | jq { "org.apache.zookeeper": { "level": "ERROR" }, "org.reflections": { "level": "ERROR" }, "root": { "level": "INFO" } }
jq
以 JSON 格式打印输出。列表显示标准的org
和root
级别的日志程序,以及特定的带有改变的日志级别的日志程序。如果您在 Kafka Connect 中为
admin.listeners
配置配置 TLS (Transport Layer Security)身份验证,则 loggers 端点的地址是为admin.listeners
指定的值,如 https,如https://localhost:8083
。您还可以获取特定日志记录器的日志级别:
curl -s http://localhost:8083/admin/loggers/org.apache.kafka.connect.mirror.MirrorCheckpointConnector | jq { "level": "INFO" }
使用 PUT 方法更改日志记录器的日志级别:
curl -Ss -X PUT -H 'Content-Type: application/json' -d '{"level": "TRACE"}' http://localhost:8083/admin/loggers/root { # ... "org.reflections": { "level": "TRACE" }, "org.reflections.Reflections": { "level": "TRACE" }, "root": { "level": "TRACE" } }
如果您更改了
root
日志程序,则默认使用了 root 日志级别的日志程序的日志级别也会被改变。