使用bitnami/kafka:3.5 和 3.6的镜像,容器内没有生成日志文件

▓千年祇园 卐 发表于: 2023-11-28   最后更新时间: 2023-11-29 17:02:42   1,363 游览

用k8s部署的基于bitnami/kafka:3.53.6镜像版本的集群,在kafka pod中的容器指定目录并未生成日志文件,而bitnami/kafka:2.5版本能够正常生成log文件,请问下这个可以在哪里设置,使其能输出到日志文件中吗?

特别地,基于bitnami/kafka:3.53.6镜像版本虽然没在指定目录下生成日志文件,但使用kubectl logs <kafka-pod>能够正常打印日志。

发表于 2023-11-28
添加评论

你提供的信息太少了,不知道你是怎么启动的,和你的关键yaml信息。

1、kubectl logs <kafka-pod>看到的日志是bin/kafka-server-start.sh config/server.properties的日志。

2、你运行起来kafka之后,可以命令行进入到容器内,查看/opt/bitnami/scripts/kafka-env.sh,里面有包含日志的信息,关键字是KAFKA_LOG_DIR

export KAFKA_LOG_DIR="${KAFKA_BASE_DIR}/logs"

所以,你可以试试加上KAFKA_LOG_DIR环境变量来指定kafka打印日志的位置。

同样,如果不生效,也可以换成LOG_DIR试试,这个是kafka的原始日志目录指定。

我采用的是k8s容器化部署方式,在yaml中添加或在容器内添加环境变量KAFKA_LOG_DIR和LOG_DIR貌似并没有生效,在指定目录仍没有server logs输出。

以下是容器内操作:

I have no name!@k8snode-76:/opt/bitnami/kafka/logs$ export LOG_DIR=/opt/bitnami/kafka/logs
I have no name!@k8snode-76:/opt/bitnami/kafka/logs$ ls
I have no name!@k8snode-76:/opt/bitnami/kafka/logs$ ls
I have no name!@k8snode-76:/opt/bitnami/kafka/logs$ env | grep LOG_DIR
KAFKA_CFG_LOG_DIR=/opt/bitnami/kafka/logs
LOG_DIR=/opt/bitnami/kafka/logs
I have no name!@k8snode-76:/opt/bitnami/kafka/logs$ ls
I have no name!@k8snode-76:/opt/bitnami/kafka/logs$

大兄弟,你不要这样。步骤相当于:

  1. kafka启动
  2. 你容器内执行,指定了log路径

步骤应该是:

  1. 指定log路径
  2. kafka启动

肯定是配置在前,kafka启动在后呀。
你把env放置到kafka yaml里,这样就能做到了。

"在yaml中添加或在容器内添加环境变量KAFKA_LOG_DIR" —— 看我前面回复的,在yaml中添加 或 ……,最初就是在yaml中添加环境变量再启动kafka集群的,不生效。

你的答案

查看kafka相关的其他问题或提一个您自己的问题