Telegraf Config permission denied, warum?
Hey wenn ich ein Docker composer File starte kommt bei mir immer folgende Fehlermeldung:
telegraf | 2023-01-15T15:17:26Z I! Using config file: /etc/telegraf/telegraf.conf
telegraf | 2023-01-15T15:17:26Z E! [telegraf] Error running agent: error loading config file /etc/telegraf/telegraf.conf: open /etc/telegraf/telegraf.conf: permission denied
Den Ordner hat folgende Berechitgunen:
-rwxrwxrwx 1 vmadmin vmadmin 751 Jan 15 12:17 /etc/telegraf/telegraf.conf
Das Gleiche wie beim Ordner.
Jemand eine Idee was ich da noch machen kann?
2 Antworten
wenn für Verzeichnis /etc/telegraf/ keine Leserechte bestehen ist es gleichgültig, welche Rechte für Datei /etc/telegraf/telegraf.conf in dem Verzeichnis gesetzt wurden.
Ansonsten kann strace ein Hilfe sein, da es in mehr Detail anzeigt, welche Operation auf welchen Dateien fehlgeschlagen ist.
Manche Programme mögen es auch nicht, wenn *zu viele* Rechte gegeben wurden, wie z.B. Les-, Schreib und Ausführrechte für alle - allerdings ist die Fehlermeldung dann meist eine andere.
Ausserdem sollten die Rechte der vom config file referenzierten Dateien auch so sein, dass Zugriff möglich ist - eventuell wird der config file lediglich als Name der Datei, welche die Ursache enthält, und nicht Zugriff auf die Datei selbst als Fehler angegeben.
telegraf.config sieht folgendermasen aus:
[global_tags]
[agent]
interval = "60s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "10s"
flush_jitter = "0s"
precision = ""
hostname = "192.xxx.0.xxx"
omit_hostname = false
[[outputs.influxdb]]
urls = ["http://influxdb:8086"]
database = "influx"
timeout = "5s"
username = "telegraf"
password = "metricsmetricsmetricsmetrics"
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = false
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
bist du in der Gruppe vmadmin ?
Du hast zwar mit -rwxrwxrwx allen Ausführungsrechte gegeben. Es gibt aber Programme, die prüfen am Betriebssystem vorbei, nochmal selbst solche Zugehörigkeiten.
Beim starten der composer Datei gebe ich einfach folgenden Befehl ein: sudo docker-composer up, muss dann der root Benutzer in dieser Gruppe sein?
telegraf ist doch bestimmt ein Programm, das zur Kommunikation vorgesehen ist.
Um Sicherheit zu gewährleisten, darf so ein Programm nicht mit Superuser-Rechten laufen.
sudo macht das aber und es sollte verhindert werden.
Probiere doch einfach mal das sudo wegzulassen.
Es ist bei Ubuntu-Useren eine Unsitte geworden, alles mit sudo auszuführen. Damit werden oft auch der Besitzer einer Datei oder eines Directories den Superuser zugeordent. Das bringt viele Dinge durcheinander.
Leider kommt immer diese Meldung, wenn ich ohne sudo eingebe:
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
dein Programm erwartet offensichtlich, dass, z.B. schon beim Booten ein deamon gestartet wurde. Das ist ein Programm, das im Hintergrund (Untergrund) läuft und auf Anfragen reagiert.
Ich haben mich nie mit Docker beschäftigt, nehme aber an, dass hier das Server-Client-Prinzip benutzt wird.
Der hier nicht gefundene deamon ist dann der Server, dein Programm, das sich nicht verbinden kann, der Client.
Sicher findest du Anleitungen, wie der unter Ubuntu gestartet werden kann.
Ich habe die gleichen Rechte auch dem Ordner telegraf gegeben.
Das Docker file starte ich immer so:
sudo docker-composer up
Also kann es demnach auch sein das telegraf.conf nicht richtig funktioniert?