Logstash无法读取它也应该具有访问权限的文件


10

我已经使用命令将用户添加logstash到组中。adm$ usermod -a -G adm logstash

logstash代理尝试读取的文件之一是/var/log/nginx/foo-access.log,它具有以下权限:

-rw-r----- 1 www-data adm 0 Jul 25 07:52 /var/log/nginx/foo-access.log

当我sudo su logstash可以读取文件BUT时,当我$ sudo service logstash_agent restart(init脚本以logstash用户身份运行)时,它将用以下内容填充logstash日志:

{:timestamp=>"2013-07-31T17:05:17.287000+0000", :message=>"failed to open /var/log/nginx/foo-access.log: Permission denied - /var/log/nginx/foo-access.log", :level=>:warn}

我可以确认Logstash用户位于adm组中:

$ groups logstash
logstash : logstash adm

此文件绝对具有正确的文件访问权限:

$ getfacl /var/log/nginx/foo-access.log
getfacl: Removing leading '/' from absolute path names
# file: var/log/nginx/foo-access.log
# owner: www-data
# group: adm
user::rw-
group::r--
other::---

我试过将其关闭然后再打开。


您的文件似乎没有正确的组写入权限。Chmod修复
Nithin Meppurathu

我不想写入文件,就像我说过要读取的那样。
Phil Sturgeon

我假设您还检查了父目录权限(/var/log/nginx
dawud

getfacl /var/log/nginx/kapture-api3-access.log
Nithin Meppurathu

我将该命令的输出添加到了问题中。我之前曾运行过预期的结果,因此最初并没有打扰。
Phil Sturgeon

Answers:



5

这是一个解决方法:

sudo vi /etc/init.d/logstash

修改

    LS_GROUP=logstash

通过

    LS_GROUP=adm

然后

sudo /etc/init.d/logstash start

1
也可以通过在/ etc / defaults / logstash中添加“ LS_GROUP = adm”来工作-有趣的是,使用puppet更易于管理。
thinice
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.