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=

先决条件

流程

  1. 切换到 kafka 用户:

    su - kafka
  2. 检查 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 格式打印输出。列表显示标准的 orgroot 级别的日志程序,以及特定的带有改变的日志级别的日志程序。

    如果您在 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"
    }
  3. 使用 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 日志级别的日志程序的日志级别也会被改变。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.