无法 运行 logstash 配置文件(权限被拒绝)

Unable to run logstash config file (permission denied)

我的配置文件存储在

/etc/logstash/ 

我运行命令

$ /etc/logstash -f /etc/logstash/logstash.conf

作为 root。

但是,当我尝试这样做时,他们告诉我权限被拒绝。有什么办法可以解决吗?

如前所述,您需要 运行 /opt/logstash/bin/logstash -f /etc/logstash/logstash.conf 而不是 /etc/logstash -f /etc/logstash/logstash.conf

这是由 logstash 用来放置其文件的 Linux 系统的默认目录结构引起的。Wikipedia: Filesystem Hierarchy Standard

/opt 代表 optional 并包含不属于默认 linux 分发的第三方包。因此 logstash 将它的二进制文件和一些依赖项放在那里(例如 jRuby 的东西)。在这里您可以找到 logstash 程序 /opt/logstash/bin/logstash 或插件管理器 /opt/logstash/bin/plugin

/etc 表示 et cetera 并且通常用于配置文件(就像 logstash 使用它)。

还有其他系统文件夹供 logstash 使用。例如 /var/log/logstash 在那里你可以找到 logstash 自己的日志。因此,当您 运行 logstash 安装时(在 Ubuntu 中可能使用 apt-getdpkg),它会将所有需要的文件放入与您的目录结构相对应的文件夹中 OS.

如您所见,您不能 运行 /etc/logstash -f /etc/logstash/logstash.conf 因为 /etc/logstash 不是可执行文件而是目录。

但是,如果您在命令提示符下 运行 logstash,您还可以为您的配置文件指定其他路径(例如 /opt/logstash/bin/logstash -f /home/user/logstash.conf)。如果你 运行 它作为一项服务,你不能提供你的配置文件的路径。然后 logstash 的默认行为是在 /etc/logstash/

中查找配置文件

只是对已接受答案的补充。也许你可以检查另外两个地方:

  1. *.conf 输入中提供的正确绝对文件路径;
  2. 尝试从 sudo bin/logstash -f your_config_file 开始;