Logstash no puede leer archivos, también debería tener acceso


10

Agregué un usuario logstashal grupo admusando el comando $ usermod -a -G adm logstash.

Uno de los archivos que el agente logstash está intentando leer es el /var/log/nginx/foo-access.logque tiene los siguientes permisos:

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

Cuando sudo su logstashpuedo leer el archivo, PERO, cuando $ sudo service logstash_agent restart(el script de inicio se ejecuta como logstashusuario) llena los registros de 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}

Puedo confirmar que el usuario logstash está en el grupo adm:

$ groups logstash
logstash : logstash adm

Este archivo definitivamente tiene el acceso a archivos correcto:

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

He intentado apagarlo y volverlo a encender.


Su archivo no parece tener los permisos de escritura de grupo correctos. Chmod para arreglar
Nithin Meppurathu

No quiero escribir en el archivo, como dije, quiero leerlo.
Phil Sturgeon

Supongo que también verificó los permisos del directorio principal ( /var/log/nginx)
dawud

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

Agregué el resultado de ese comando a la pregunta. Lo había ejecutado antes con los resultados que esperaba, así que al principio no me molesté.
Phil Sturgeon

Respuestas:


5

Resultó estar relacionado con este error en la fase inicial:

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

Debido a que admera un grupo secundario, no se estaba aplicando al proceso, que se divide como f ** k y aparentemente se corrige en una versión posterior.

Mi solución fue agregar setguid admal archivo init.


5

Aquí hay una solución alternativa:

sudo vi /etc/init.d/logstash

modificar

    LS_GROUP=logstash

por

    LS_GROUP=adm

luego

sudo /etc/init.d/logstash start

1
También funciona agregando "LS_GROUP = adm" a / etc / defaults / logstash; lo bueno de esto es que es más fácil de administrar usando puppet.
thinice
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.