4.13. 日志


Kafka 代理使用 Log4j 作为日志记录基础架构。默认情况下,日志配置是从 log4j.properties 配置文件读取的,该文件应该放在 /opt/kafka/config/ 目录中或类路径中。配置文件的位置和名称可使用 Java 属性 log4j.configuration 更改,该属性可使用 KAFKA_LOG4J_OPTS 环境变量传递给 Kafka:

su - kafka
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:/my/path/to/log4j.config"; /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

有关 Log4j 配置的更多信息,请参阅 Log4j 手册

4.13.1. 动态更改 Kafka 代理日志记录器的日志记录级别

Kafka 代理日志记录由每个 代理中的多个代理日志记录器 提供。您可以动态更改代理日志记录器的日志记录级别,而无需重启代理。通过将 INFO 改为 DEBUG 来提高 logs 中返回的详细信息级别,例如 -​ 可用于调查 Kafka 集群中的性能问题。

代理日志记录器也可以动态重置为默认的日志记录级别。

流程

  1. 切换到 kafka 用户:

    su - kafka
  2. 使用 kafka-configs.sh 工具列出代理的所有代理日志记录器:

    /opt/kafka/bin/kafka-configs.sh --bootstrap-server BOOTSTRAP-ADDRESS --describe --entity-type broker-loggers --entity-name BROKER-ID

    例如,对于代理 0

    /opt/kafka/bin/kafka-configs.sh --bootstrap-server localhost:9092 --describe --entity-type broker-loggers --entity-name 0

    这会为每个日志记录器返回日志级别: TRACEDEBUGINFOWARNERRORFATAL。例如:

    #...
    kafka.controller.ControllerChannelManager=INFO sensitive=false synonyms={}
    kafka.log.TimeIndex=INFO sensitive=false synonyms={}
  3. 更改一个或多个代理日志记录器的日志记录级别。使用 --alter--add-config 选项,使用双引号以逗号分隔列表的形式指定每个日志记录器及其级别。

    /opt/kafka/bin/kafka-configs.sh --bootstrap-server BOOTSTRAP-ADDRESS --alter --add-config "LOGGER-ONE=NEW-LEVEL,LOGGER-TWO=NEW-LEVEL" --entity-type broker-loggers --entity-name BROKER-ID

    例如,对于代理 0

    /opt/kafka/bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config "kafka.controller.ControllerChannelManager=WARN,kafka.log.TimeIndex=WARN" --entity-type broker-loggers --entity-name 0

    如果成功,则返回:

    Completed updating config for broker: 0.
重置代理日志记录器

您可以使用 kafka-configs.sh 工具将一个或多个代理日志记录器重置为默认日志记录级别。使用 --alter--delete-config 选项,并使用双引号将每个代理日志记录器指定为用逗号分开的列表:

/opt/kafka/bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --delete-config "LOGGER-ONE,LOGGER-TWO" --entity-type broker-loggers --entity-name BROKER-ID
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.