Benötige Hilfe bei Telegraf installation im container manager / Docker

bardom

Benutzer
Mitglied seit
23. Dez 2020
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Hallo zusammen,

ich habe ein kleines Verständnisproblem und hoffe ihr könnt mir auf die Sprünge helfen. Ich habe sehr viel gesucht, bin aber nirgends auf die Info gestossen die mich weiter bringt.

Ich habe eine DS923+ mit DSM 7.2 in Betrieb. Auf dieser DS laufen im docker (aka container manager) Portainer, InfluxDB2 und Grafana. Funktioniert soweit alles. Portainer funktioniert zwar, habe ich aber erst nachinstalliert und nie wirklich benutzt.

Nun möchte ich gerne Telegraf installieren, um Metriken für einen anderen proxmox server, aber insb. auch für mein KNX system aufzusetzen.

Also habe ich per synology GUI das Verzeichnis \volume1\docker\telegraf angelegt und im container manager das entsprechende telegraf image gezogen und als container installiert. Der läuft aber nicht (bzw. beendet sich sofort), weil das config file fehlt (Log: "Error running agent: no outputs found, did you provide a valid config file?"). Unter \volume1\docker\telegraf\telegraf.conf existiert ein leeres config file (0 byte).

An dieser Stelle komme ich nicht mehr weiter. Irgendwo habe ich gelesen, dass dort automatisch ein default file angelegt wird, bei dem 99% auskommentiert sind.

#Unterproblem:
Wenn ich mich per SSH auf dem NAS mit meinem admin user einlogge (root ist deaktiviert), kann ich keine Docker Befehle ausführen. Welche Berechtigung mir fehlt hab ich auch noch nicht kapiert, denn der admin user sollte ja eigendlich alles dürfen...?

Code:
meinadminuser@meinNAS:/$ docker images -a
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json?all=1": dial unix /var/run/docker.sock: connect: permission denied

Edit: Unterproblem gelöst - muss sudo ausgeführt werden. Danke @alexhell

Könnt ihr mir auf die Sprünge helfen? Vielen Dank im voraus für jegliche Hinweise!!
 
Zuletzt bearbeitet:

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Hast du den Ordner auch richtig gemountet? Zeig sonst mal deine Konfiguration und welches Images du nutzt.
Probier mal
Bash:
sudo docker images -a
Dann wirst du nach einem Passwort gefragt. Da musst du dann dein Passwort eintippen.
 

NASAndy

Benutzer
Mitglied seit
31. Okt 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo Alle

habe gerade ein ähnliches Problem und nutze gleich mal diesen Beitrag.
Möchte telegraf installieren um div. Daten aus dem KNX und Modbus-Zählern zu importieren.
Zwar kann ich das aktuelle image im Docker installieren, aber telegraf wird sofort bendet und immer wieder neu gestartet.
Das im Docker einsehbare Protokoll zeigt immer die gleichen Fehler:

- Failed to set capabilities on file '/usr/bin/telegraf': Operation not supported
- Failed to set additional capabilities on /usr/bin/telegraf
- 2023-10-31T15:36:19Z I! Loading config: /etc/telegraf/telegraf.conf
- 2023-10-31T15:36:19Z E! [telegraf] Error running agent: no outputs found, did you provide a valid config file?

in genau dieser Reihenfolge.
telegraf.config wurde entsprechend abgeändert und im Verzeichnis /etc/telegraf abgelegt.
Ich würde meine hier liegen 2 Fehler vor, die irgendwie mit fehlenden Berechtigungen und oder fehlenden Schreib-/Leserechten zusammen hängen.
Zu allem Übel bin ich ein massiver Linux-Dummy
Das Ganze ist auf einer Synology-NAS DS218+ installiert

könnt Ihr helfen?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.399
Punkte
564
Hast du mal versucht, in der File Station testweise für everyone auf den Ordner lesen und schreiben zuzulassen?
Eventuell ist es aber auch ein Synology-Problem. Denn der Linux-Kernel der DSen ist sehr alt und es gibt immer wieder Probleme mit Docker Images. Insbesondere bei welchen, die auf Debian Bookworm als Basis setzen. Die 218+ hat den Kernel 4.4 - der ist von Anfang 2016!
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.399
Punkte
564
Ja war es. Ein neuer Thread ist auch tatsächlich besser. Hast du recht.
 
  • Like
Reaktionen: bardom

NASAndy

Benutzer
Mitglied seit
31. Okt 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
@plang.pl
Hi, der einzige Ordner auf den ich über die File Station zugreifen kann ist /volume1/Docker und der ist für everyone freigegeben
kann man auch die anderen order in der Fil Station sehen? z.B /etc/telegraf oder /usr/bin/...
Das würde vieles vereinfachen, vor allem die Änderungen an der telegraf.conf
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
15.029
Punkte für Reaktionen
5.399
Punkte
564
Mach bitte einen neuen Thread auf und poste da genau, wie du den Telegraf installiert hast. Idealerweise kannst du das Docker-Compose Script / den portainer Stack liefern.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.518
Punkte für Reaktionen
403
Punkte
103
- Failed to set capabilities on file '/usr/bin/telegraf': Operation not supported
- Failed to set additional capabilities on /usr/bin/telegraf
Da fehlen Capabilites (~administrative Berechtigungen für Kernel-Funktionen). Diese sollten in der Image-Beschreibung genannt sein, und müssen dann im Container Manager beim Container unter "Funktonen" entsprechend hinzugefügt werden.

- 2023-10-31T15:36:19Z I! Loading config: /etc/telegraf/telegraf.conf
- 2023-10-31T15:36:19Z E! [telegraf] Error running agent: no outputs found, did you provide a valid config file?
Auch hierzu sollte die Image-Beschreibung Auskunft geben, ob a) erwartet wird das eine Config-Datei bereitgestellt wird, und b) wo diese hinzumounten ist. Ich erinnerte mich dunkel daran, dass man bei influxdb2 erst die Default-Config erzeugen und dann mounten musste, vielleicht ist es bei telegraf auch so?
 

bardom

Benutzer
Mitglied seit
23. Dez 2020
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Ich habe versucht ein default config file mit diesem Befehl zu erzeugen - leider erfolglos (write /dev/stdout: broken pipe)

Code:
sudo docker run --rm telegraf telegraf config | sudo tee /volume1/docker/telegraf/telegraf.conf < /dev/null

Es ist mit der container installation wohl doch nicht ganz so straight forward über die GUI wie ich dachte...
Was könnte ich noch tun? Alles sauber weglöschen und versuchen Telegraf über einen anderen (??welchen??) Weg zu installieren?


ps/edit: Leider kommt es hier nun etwas durcheinander mit den Antworten auf die unterschiedlichen Fragestellungen...
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.518
Punkte für Reaktionen
403
Punkte
103
Warum verwendest du nicht einfach den Befehl zum erzeugen der config, wie er im Image beschrieben ist?

Einfach vorher mit sudo -i auf eine root shell wechseln und dann gemäß Anleitung erzeugen: docker run --rm telegraf telegraf config > telegraf.conf
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.518
Punkte für Reaktionen
403
Punkte
103
sudo docker run --rm telegraf telegraf config | sudo tee /volume1/docker/telegraf/telegraf.conf < /dev/null

Auf den zweiten Blick: dein Redirect am Ende ist falsch. Änder das von < auf > und es sollte gehen.
 
  • Like
Reaktionen: bardom

NASAndy

Benutzer
Mitglied seit
31. Okt 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
"sudo docker run --rm telegraf telegraf config | sudo tee /volume1/docker/telegraf/telegraf.conf > /dev/null"
diese Version funtioniert bei mir!

jetzt bleibt mir noch das Problem mit den Capabilites.
In den Funktionen ist beim telegraf die Option SETPCAP aktiviert

weis jemand wo die docker-compose.yml zu finden ist?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
853
Punkte
154
Die legt man selber an, wenn man Docker Container ohne die GUI erzeugen will. Da du die GUI benutzt hast, wirst du wohl keine habe..
Hast du die Ordner auch gemappt? Also zeigt dein Volume1/Docker/Telegraf auf den richtigen Ordner im Container? Sonst sind deine Daten weg, wenn der Container mal läuft....
Ich würde dir empfehlen dich mehr in Docker einzulesen
 

NASAndy

Benutzer
Mitglied seit
31. Okt 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für eure Unterstützung, fortan bin ich am einlesen.
@bardom sorry das mich hier eingeschummelt habe, bin jetzt weg.
 

bardom

Benutzer
Mitglied seit
23. Dez 2020
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Hi zusammen,

erstmal vielen Dank für die inputs. @haydibe : das hat funktioniert, nun habe ich das default config file, welches ich auch schon mit dem InfluxDB token etc. angepasst habe.

Ich hatte außerdem auch vergessen, bei den Volume Einstellungen das /docker/telegraf mit /etc/telegraf mappen.

Muss mich nur noch mit der KNX Konfiguration ausseinander setzen, aber das ist ein anderes Thema. Vielen Dank euch!
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.518
Punkte für Reaktionen
403
Punkte
103
Falls Du input.docker verwendest: der Telegraf-container startet zwar als priviligierter root Benutzer, führt aber den Telegraf Prozess als nicht-priviligierten Benutzer aus.

Damit es klappt, müsste man eine Docker-Group anlegen (falls die noch nicht existiert), die Gruppe Berechtigen auf den docker.sock zugreifen zu dürfen: siehe https://www.synology-forum.de/threads/benutzer-zur-docker-gruppe.109661/#post-888706.
Dann muss man compose File beim Telegraf service noch user: telegraf:{GID der Docker Group auf dem Host} ergänzen.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat