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можу прочитати файл, АЛЕ, коли я $ 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 знаходиться в групі адміністраторів:

$ 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::---

Я спробував вимкнути його і знову ввімкнути.


Схоже, ваш файл не має правильних дозволів на групове записування.
Чмод

Я не хочу писати у файл, як я сказав, що хочу його прочитати.
Phil Sturgeon

Я припускаю, що ви також перевірили дозволи батьківського каталогу ( /var/log/nginx)
dawud

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

Я додав висновок цієї команди до питання. Я раніше запускав це з очікуваними результатами, тому спочатку не турбував.
Phil Sturgeon

Відповіді:


5

Виявилося, що ця помилка пов’язана з початком:

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

Оскільки admбула вторинною групою, вона не застосовувалася до процесу, який розбивається як f ** k і, очевидно, фіксується в більш пізній версії.

Моє рішення полягало в тому, щоб додати setguid admдо файлу init.


5

Ось робоче рішення:

sudo vi /etc/init.d/logstash

модифікувати

    LS_GROUP=logstash

від

    LS_GROUP=adm

тоді

sudo /etc/init.d/logstash start

1
Також працює, додаючи "LS_GROUP = adm" до / etc / defaults / logstash - приємна частина цього в тому, що легше керувати за допомогою лялечки.
thinice
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.