Бегущий Серый журнал за Трафиком - PullRequest
0 голосов
/ 12 июня 2019

Я использовал Traefik в качестве обратного прокси-сервера для нескольких контейнеров, управляемых через docker compose.Это работало хорошо, но у меня возникли некоторые трудности с правильным запуском серого журнала.

Этот конфиг (выдержка из полного файла, удаленные нерелевантные сервисы) работает для меня

version: '3'

services:
  traefik:
    image: traefik 
    command: --docker 
    networks:
      - web
    ports:
      - "80:80"     
      - "8080:8080" 
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  graylog:
    image: graylog/graylog:3.0
    environment:
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
      - GRAYLOG_ROOT_PASSWORD_SHA2=somestuffhere
      - GRAYLOG_HTTP_BIND_ADDRESS=0.0.0.0:9000
      - GRAYLOG_HTTP_EXTERNAL_URI=http://graylog.localhost/
    links:
      - mongodb:mongo
      - elasticsearch
    depends_on:
      - mongodb
      - elasticsearch
    networks:
      - web
      - default
    ports:
      - 9000:9000
      - 1514:1514
      - 1514:1514/udp
      - 12201:12201
      - 12201:12201/udp
    labels:
      - "traefik.docker.network=web"
      - "traefik.web.frontend.rule=Host:graylog.localhost"
      - "traefik.protocol=http"
      - "traefik.port=9000"
      - "traefik.enable=true"

Затем я могу получить доступ к Graylog в своем браузере по адресу http://graylog.localhost/

Проблема возникает из-за того, что я не могу использовать такие домены в моей промежуточной среде.Мне нужно было использовать paths, а не domains, например, служба swagger в моей промежуточной среде определяется как

swagger:
    image: swaggerapi/swagger-ui
    environment:
      SWAGGER_JSON: /swagger/staging-openapi.yaml
      BASE_URL: /swagger
    volumes:
      - /home/ubuntu/src/carelink_swagger_service:/swagger
    networks:
      - web
      - default
    labels:
      - "traefik.docker.network=web"
      - "traefik.frontend.rule=Host:my.staging.domain.org; PathPrefix: /swagger"
      - "traefik.protocol=http"
      - "traefik.port=8080"
      - "traefik.enable=true"

, и я обращаюсь к таким службам https://my.staging.domain.org/swagger/

Пытаясь применить этот подход для Graylog

graylog:
    image: graylog/graylog:3.0
    environment:
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
      - GRAYLOG_ROOT_PASSWORD_SHA2=somestuffhere
      - GRAYLOG_HTTP_BIND_ADDRESS=0.0.0.0:9000
      - GRAYLOG_HTTP_EXTERNAL_URI=http://localhost/graylog/
    links:
      - mongodb:mongo
      - elasticsearch
    depends_on:
      - mongodb
      - elasticsearch
    networks:
      - web
      - default
    ports:
      - 9000:9000
      - 1514:1514
      - 1514:1514/udp
      - 12201:12201
      - 12201:12201/udp
    labels:
      - "traefik.docker.network=web"
      - "traefik.web.frontend.rule=Host:localhost; PathPrefix: /graylog"
      - "traefik.protocol=http"
      - "traefik.port=9000"
      - "traefik.enable=true"

, и я получаю следующие ошибки

enter image description here

Я прошел через это Q / A , похожие записи на форумах серого журнала и т. Д., Но я чувствую, что преследую свой хвост.

...