根据文件,Apache·Kafka登录到 /tmp/kafka-logs
默认情况下。
自 /tmp
属于 root
在linux中,对我来说,这意味着你必须以 root
以便它正确地登录到该位置。但是为了安全起见,我不希望它以root身份运行,因此我正在尝试找出我的选项。我相信我必须在以下两者中做出选择:
使用 -Dkafka.logs.dir
命令行开关,为要写入的日志指定不同的位置(不属于root);或
提前修改系统(即在开始Kafka之前),以便 /tmp/kafka-logs
与将要启动kafka的用户属于同一个用户(或者,通常,确保kafka用户对该目录具有r/w/x的正确权限);或
有人能澄清(或纠正)我对linux权限和进程的理解是正确的,而这是我仅有的两个选择吗?当然,如果有任何其他的选择可以让我以非根用户身份运行Kafka,请加入!
1条答案
按热度按时间ljsrvy3e1#
第一个
rwx
意思是/tmp
由其所有者(根)可读、可写和可执行rwx
意味着它的组(根)是可读的、可写的和可执行的,第三个rwx
意味着它是可读的,可写的,每个人都可以执行(对于一个目录,“可执行文件”意味着它可以被导航到)。所以您的非特权用户可以将日志文件写入
/tmp
. 如果其他用户已经创建了自己的,则可能会出现问题/tmp/kafka-logs
.但是,将日志写入
/tmp
从长远来看,这不是一个可持续的战略。如果这是一个个人系统,任何事情都会发生,但在一个生产系统上,你不会期望/tmp
保留目录所需的存储空间或维护注意事项/var/log
有。从它的名字,你可以猜到/tmp
被认为是公平的游戏删除,如果空间开始用尽。您链接的页面非常清晰-虽然有默认值,但他们的期望是至少提供一个包含
broker.id
,logs.dir
以及zookeeper.connect
.所以,配置任何你喜欢的日志目录,由你喜欢的用户写。