根据其docs,默认情况下Apache Kafka会记录到<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>worldbuilding.stackexchange.com - Background</title>
</head>
<body>
<div class="container"></div>
<div id="footer"></div>
</body>
</html>
。
由于/tmp/kafka-logs
在Linux中归/tmp
所有,那么对我而言,这意味着您必须将Kafka作为root
运行才能正确登录到该位置。但是出于安全考虑,我不希望它以root身份运行,因此我想弄清楚我的选择是什么。我相信我必须在以下选项之间做出选择:
root
命令行开关指定要写入的日志的其他位置(不属于root用户);或-Dkafka.logs.dir
由与将启动Kafka的用户相同的用户拥有(或者,通常,确保Kafka用户对该目录的r / w / x具有正确的权限);或有人可以澄清(或纠正)我对Linux权限和流程的承诺是否正确,那些是我唯一的选择吗?当然,如果有任何其他选项可以让我以非root身份运行Kafka,请加入!
答案 0 :(得分:2)
$ ls -ld /tmp
drwxrwxrwt 16 root root 32768 Sep 28 16:39 /tmp
第一个rwx
表示/tmp
是其所有者(root)可读,可写和可执行的,第二个rwx
表示它的组可读,可写和可执行({1}} ),第三个rwx
表示所有人可读,可写和可执行。 (对于目录“可执行”,意味着它可以导航到)。
因此,您的非特权用户可以将日志文件写入/tmp
。如果其他用户已经创建了自己的/tmp/kafka-logs
,则可能会出现问题。
但是,从长期来看,将日志写入/tmp
并不是一项可持续发展的策略。如果这是个人系统,任何事情都会发生,但在生产系统上,您不希望/tmp
拥有预留的存储空间或像/var/log
这样的目录所具有的维护关注。根据它的名字,如果空间开始耗尽,您可以猜测/tmp
中的文件被认为是公平的删除游戏。
您链接的页面非常清晰 - 虽然有默认值,但他们期望您至少提供包含broker.id
,logs.dir
和zookeeper.connect
的属性文件。< / p>
因此,配置您喜欢的任何日志目录,您的首选用户可以写入。