Logstash не может читать файлы, к которым он должен иметь доступ

Я добавил пользователя 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 Я могу прочитать файл, НО, когда я $ sudo service logstash_agent restart (который скрипт инициализации запускается как logstash user) заполняет логи 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::---

Я пытался выключить и снова включить.

2 ответа

Решение

It turned out to be related to this bug in upstart:

https://bugs.launchpad.net/upstart/+bug/812870

Так как adm was a secondary group it was not being applied to the process, which is broken as f**k and is apparently fixed in a later version.

Мое решение было добавить setguid adm to the init file.

Вот рабочий способ:

sudo vi /etc/init.d/logstash

модифицировать

    LS_GROUP=logstash

от

    LS_GROUP=adm

затем

sudo /etc/init.d/logstash start
Другие вопросы по тегам