Logstash non può leggere i file a cui dovrebbe avere accesso anche


10

Ho aggiunto l'utente logstashal gruppo admusando il comando $ usermod -a -G adm logstash.

Uno dei file che l'agente logstash sta tentando di leggere è /var/log/nginx/foo-access.log, che dispone delle seguenti autorizzazioni:

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

Quando sudo su logstashriesco a leggere il file, MA, quando io $ sudo service logstash_agent restart(che lo script init esegue come logstashutente) riempie i log del logstash con:

{: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}

Posso confermare che l'utente del logstash è nel gruppo adm:

$ groups logstash
logstash : logstash adm

Questo file ha sicuramente il giusto accesso ai file:

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

Ho provato a spegnerlo e riaccenderlo.


Il tuo file non sembra avere le autorizzazioni di scrittura del gruppo corrette. Chmod da riparare
Nithin Meppurathu,

Non voglio scrivere sul file, come ho detto che voglio leggerlo.
Phil Sturgeon,

Presumo che tu abbia anche controllato i permessi della directory principale ( /var/log/nginx)
dawud,

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

Ho aggiunto l'output di quel comando alla domanda. L'avevo già eseguito con i risultati previsti, quindi inizialmente non mi sono preoccupato.
Phil Sturgeon,

Risposte:


5

Si è scoperto essere correlato a questo bug in startstart:

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

Poiché admera un gruppo secondario, non veniva applicato al processo, che è rotto come f ** k ed è apparentemente corretto in una versione successiva.

La mia soluzione era quella di aggiungere setguid admal file init.


5

Ecco una soluzione alternativa funzionante:

sudo vi /etc/init.d/logstash

modificare

    LS_GROUP=logstash

di

    LS_GROUP=adm

poi

sudo /etc/init.d/logstash start

1
Funziona anche aggiungendo "LS_GROUP = adm" a / etc / defaults / logstash - la cosa bella è che è più facile da gestire usando il burattino.
magrezza
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.