Logstash kann keine Dateien lesen, auf die es auch Zugriff haben sollte


10

Ich habe den Benutzer mit dem Befehl logstashzur Gruppe hinzugefügt .adm$ usermod -a -G adm logstash

Eine der Dateien, die der Logstash-Agent zu lesen versucht /var/log/nginx/foo-access.log, verfügt über die folgenden Berechtigungen:

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

Wenn ich sudo su logstashdie Datei lesen kann, ABER wenn ich $ sudo service logstash_agent restart(das das Init-Skript als logstashBenutzer ausführt), füllt es die Logstash-Protokolle mit:

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

Ich kann bestätigen, dass sich der Logstash-Benutzer in der Administratorgruppe befindet:

$ groups logstash
logstash : logstash adm

Diese Datei hat definitiv den richtigen Dateizugriff:

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

Ich habe versucht, es aus- und wieder einzuschalten.


Ihre Datei scheint nicht über die richtigen Gruppenschreibberechtigungen zu verfügen. Chmod zu beheben
Nithin Meppurathu

Ich möchte nicht in die Datei schreiben, wie gesagt, ich möchte sie lesen.
Phil Sturgeon

Ich /var/log/nginx
gehe

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

Ich habe die Ausgabe dieses Befehls zur Frage hinzugefügt. Ich hatte es schon einmal mit den erwarteten Ergebnissen durchgeführt und mich anfangs nicht darum gekümmert.
Phil Sturgeon

Antworten:


5

Es stellte sich heraus, dass dies mit diesem Fehler im Upstart zusammenhängt:

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

Da admes sich um eine sekundäre Gruppe handelte, wurde sie nicht auf den Prozess angewendet, der als f ** k unterbrochen und anscheinend in einer späteren Version behoben ist.

Meine Lösung bestand darin setguid adm, der Init-Datei etwas hinzuzufügen .


5

Hier ist eine funktionierende Problemumgehung:

sudo vi /etc/init.d/logstash

ändern

    LS_GROUP=logstash

durch

    LS_GROUP=adm

dann

sudo /etc/init.d/logstash start

1
Funktioniert auch durch Hinzufügen von "LS_GROUP = adm" zu / etc / defaults / logstash - das Schöne daran ist, dass die Verwaltung mit Puppet einfacher ist.
Thinice
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.