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.