Traefik v2 als reverse proxy // WARNING: no logs are available with the ‘db’ log driver

DanielWW

Benutzer
Mitglied seit
07. Jan 2019
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Hallo zusammen,

ich versuche seit einigen Wochen Traefik v2 als reverse proxy auf meiner DS918+ einzurichten. Bisher leider ohne erfolg.

Ich bin in diesen Dingen weder Profi noch vollkommender Neuling. Ich benutze Docker seit einigen Jahren mit einzelnen Containern. Bei dem Versuch Traefik einzurichten habe ich mich u. a. an die Dokumentation auf der Website und den guide auf SmarthomeBeginner gehalten.

Bis jetzt habe es aber leider noch nicht funktioniert. Wenn ich die docker-compose Datei ausführe erhalten ich jedes mal folgende Ausgabe im Terminal:

xxx@xxx:/volume1/docker$ docker-compose up
traefik is up-to-date
Attaching to traefik
traefik | WARNING: no logs are available with the 'db' log driver
traefik exited with code 1


Kann mir jemand dabei helfen, was die vorgenannte Fehlermeldung bedeutet? Ich habe schon herausgefunden, dass es wohl einen Docker Logging Driver betrifft. Ich weiß aber nicht, wie ich diesen anpassen oder konfigurieren kann.

Auch die Benutzeroberfläche von Traefik kann ich über die Browsereingabe [IP]:8080 nicht öffnen.

Ich freue mich über jede Hilfe und jeden Hinweis. Ich kann auch gerne noch mehr Informationen bereitstellen, aber ich weiß gerade nicht wo ich am besten anfangen soll.

Vielen Dank für Eure Unterstützung im Voraus. Viele Grüße Daniel
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.528
Punkte für Reaktionen
416
Punkte
103
Das mit dem Logdriver ist lediglich eine Warnung. Könnte sein das für diesen Container keine Logs in der Docker-UI zu sehen sind. Das hat keinen Einfluss auf die Funktionalität des Containers.

Ansonsten: ich bin kein Freund von "ich habe mich an Anleitung x gehalten, hier ist der Link", da es uberhaupt keine Aussage über die aktuelle Konfiguration gibt. Share doch mal Deine modifzierte docker-compose.yml und .tom-Datei falls Du eine Verwendest.
 

DanielWW

Benutzer
Mitglied seit
07. Jan 2019
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Hallo Haydibe,
vielen Dank für Deine schnelle Antwort. Ich komme leider erste jetzt dazu zu antworten.

Hier ist die docker-compose.yaml

YAML:
version: "3"

services:
  traefik:
    image: traefik:latest
    container_name: traefik
    restart: always
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik:/etc/traefik
    environment:
      - "TZ=Europe/Berlin"
    networks:
      - traefik_proxy
      - default


networks:
  traefik_proxy:
    external:
      name: traefik_proxy
  default:
    driver: bridge


und hier die traefik.toml

Code:
logLevel = "INFO"
  defaultEntryPoints = ["http", "https"]

[web]
  address = ":8080"

[docker]
  domain = "my.domain"
  watch = true
  exposedbydefault = false

 # Force HTTPS
[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]

 # Let's encrypt configuration
 [acme]
   email="my@email.com"
   storage="/etc/traefik/acme/acme.json"
   entryPoint="https"
   acmeLogging=true
   OnHostRule=true
   [acme.httpChallenge]
     entryPoint = "http"

Teile mir gerne mit, falls ich grundlegende Angaben falsch gemacht habe oder falls ich die docker-compose anders aufsetzen sollte.

Ich finde es als relativer Anfänger nicht leicht diese Einrichtung vorzunehmen und bin daher über jede Hilfe sehr dankbar.
Gibt es weitere wichtige Eckpunkte, die ich beachten sollte?


Viele Grüße - Daniel
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.528
Punkte für Reaktionen
416
Punkte
103
Das erste was mir auffält ist: in der docker-compose.yml ist als image: traefik:latest angegeben. Aktuell entspricht es dem Tag "v2.3.2". Die toml-Datei dagen entspricht dem Format der 1.7.x Version... Das kann natürlich nicht funktionieren. Es gibt in der v2-toml keine Elemente mehr, die nicht unterhalb einer Sektion liegen (siehe bei dir logLevel = "INFO")

Entweder verwendest Du die passende Traefik Version, hierzu müsste image: von traefik:latest auf traefik:v1.7.26-alpine geändert werden, oder die toml muss angepasst werden. Letzteres ist deutlich aufwändiger... aber irgendwann notwendig.

Zum Dashboard: man muss die API und das Dashboard explizit anschalten, was bei dir weder in docker-compose.yml, noch in der toml-Datei passiert. Statt [web] wäre bei v1.7.x das hier zu verwenden: https://doc.traefik.io/traefik/v1.7/configuration/api/

Ich selber verwende in meinem Swarm Cluster auch noch 1.7.26-alpine, da dort die Letsencrypt-Zertifikate in einem Key-Value Store gespeichert werden können. Bei Traefik 2 wurde die Funktion leider entfernt... und eignetlich will ich meinen Swarm-Cluster schon lange ausrangieren. Will sagen: bei 1.7.x kann ich dir direkt helfen, bei v2 kann ich dir höchstens helfen Dich an die Konfig heranzuspielen.

Welcher Weg darf es sein?
 
Zuletzt bearbeitet:

DanielWW

Benutzer
Mitglied seit
07. Jan 2019
Beiträge
16
Punkte für Reaktionen
1
Punkte
3
Hi Haydibe,
vielen dank für Deine hilfreiche Rückmeldung und Erläuterung. Ich möchte versuchen gleich Traefik v2 einzurichten und mir die dazu notwendigen Kenntnisse - Schritt für Schritt - anzueignen. Ich werde jetzt erst mal auf die Dokumentation von Traefik zurückgreifen.

Dort wird in einem "Migration Guide" unter anderem auch der Wechsel von v1 zu v2 erläutert. Vielleicht ist das interessant für Dich?

Wenn ich in der traefik.toml die Änderungen eingearbeitet habe, werde ich diese nochmal hochladen.

Hinsichtlich der Verwendung von Let's-Encrypt-Zertifikaten weiß ich im Moment noch nicht, was ich alles berücksichtigen muss. Mein Ziel ist es am Ende einige unterschiedliche Docker Container über verschiedene Subdomains anzusprechen (sub1.mydomain.com, sub2.mydomain.com, etc.). Meine Second-Level-Domain (mydomain.com) liegt bei dem Hoster Strato.de. Ich habe gelesen, dass in Zusammenhang mit Traefik oft die Verwendung von Wildcard-Zertifikaten ins Spiel gebracht wird. Strato und (viele) andere Hoster bieten das jedoch nicht an. An einigen Stellen wird daher immer wieder auf den Hoster Cloudflare verwiesen.

Ich hoffte eigentlich nicht mit meiner Domain umziehen zu müssen. ;-) Daher dazu noch meine Frage:
Benötige ich bei der Verwendung mehreren Subdomains ein Wildcard-Zertifikat?
Welche anderen Schritte muss ich zur richtigen Einrichtung der Subdomains mit Zertifikaten berücksichtigen?

Vielen Dank für Eure Hilfe und Hinweise! (y)
Viele Grüße - Daniel
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.528
Punkte für Reaktionen
416
Punkte
103
Ich kenne den Migration Guide :) Für mich kommt der Wechsel auf v2 nicht in Frage wegen der ausgebauten Funktion die Wildcard-Zertifikat in einem KV-Store abzulegen. Ich habe einen Mehrknoten-Cluster (den ich wie schon geschrieben eignetlich nicht mehr haben will) und will nicht auf jedem Knoten ein eigenes Zertifikat erzeugen lassen, sondern will das eine Teilen. Ich könnte hierfür eine Lösung erarbeiten, aber das würde mich nur weiter davon abhalten auch privat komplett auf Kubernetes umzusteigen.. mein Kubernetes Cluster wartet seit ewigkeiten auf Aufmerksamkeit *hüstel*

Ein Wildcard-Zertifikat ergibt am meisten Sinn mit einer Wildcard-Subdomain, da mann dann tatsächlich nur noch die Labels für die Services konfigurieren muss und schon ist dieser von aussen über https erreichbar - so verwende ich es. Ohne Wildcard-Subdomain, muss man jede Subdomain einzeln pflegen. Ohne Wildcard-Zertifikat muss Traefik für jede Subdomain ein separates Zertifikat mittels http01-challenge Verfahren erzeugen.

Ohne unterstütztung vom Anbieter für die benötigte DNS-Api ergibt die Verwendung von Wildcard-Zertifikaten keinen Sinn. Strato fehlt leider in der Liste der unterstützen Anbieter. Man kann Strato als Registrar behalten und die technische Verwaltung zu Cloudflair umziehen, so dass man die Cloudflare DNS-Api für das dns01-challenge Verfahren nutzen kann.

Man muss nicht zwingend eine toml-Datei verwenden. In dem Tutorial wurde die Konfiguration komplett über "command:" parameter gelöst.
 
Zuletzt bearbeitet:


 

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