Traefik #1
							
								
								
									
										18
									
								
								configs/traefik.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								configs/traefik.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					log:
 | 
				
			||||||
 | 
					  level: DEBUG
 | 
				
			||||||
 | 
					providers:
 | 
				
			||||||
 | 
					  docker:
 | 
				
			||||||
 | 
					    exposedByDefault: true
 | 
				
			||||||
 | 
					    network: inbound
 | 
				
			||||||
 | 
					    defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
 | 
				
			||||||
 | 
					entryPoints:
 | 
				
			||||||
 | 
					  web:
 | 
				
			||||||
 | 
					    address: ":80"
 | 
				
			||||||
 | 
					  websecure:
 | 
				
			||||||
 | 
					    address: ":443"
 | 
				
			||||||
 | 
					api:
 | 
				
			||||||
 | 
					  dashboard: true
 | 
				
			||||||
 | 
					  debug: true
 | 
				
			||||||
 | 
					global:
 | 
				
			||||||
 | 
					  sendAnonymousUsage: false
 | 
				
			||||||
 | 
					  checkNewVersion: true
 | 
				
			||||||
@@ -1,9 +1,11 @@
 | 
				
			|||||||
version: '2'
 | 
					version: '3.8'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
services:
 | 
					services:
 | 
				
			||||||
  consul:
 | 
					  consul:
 | 
				
			||||||
    image: consul
 | 
					    image: consul
 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
    container_name: consul_elena
 | 
					    container_name: consul
 | 
				
			||||||
    command: consul agent -server -dev -client=0.0.0.0 -ui -bootstrap -log-level warn -datacenter dev
 | 
					    command: consul agent -server -dev -client=0.0.0.0 -ui -bootstrap -log-level warn -datacenter dev
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      SERVICE_8400_NAME: consul
 | 
					      SERVICE_8400_NAME: consul
 | 
				
			||||||
@@ -16,54 +18,83 @@ services:
 | 
				
			|||||||
      - "8400:8400"
 | 
					      - "8400:8400"
 | 
				
			||||||
      - "8500:8500"
 | 
					      - "8500:8500"
 | 
				
			||||||
      - "8600:8600/udp"
 | 
					      - "8600:8600/udp"
 | 
				
			||||||
 | 
					    expose:
 | 
				
			||||||
 | 
					      - "8500"
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - inbound
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.docker.network=inbound"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.consul.rule=Host(`consul.docker.localhost`)"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.consul.service=consul"
 | 
				
			||||||
 | 
					      - "traefik.http.services.consul.loadbalancer.server.port=8500"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  registrator:
 | 
					  registrator:
 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
    container_name: registrator_elena
 | 
					    container_name: registrator
 | 
				
			||||||
    depends_on:
 | 
					    depends_on:
 | 
				
			||||||
      - consul
 | 
					      - consul
 | 
				
			||||||
    image: gliderlabs/registrator:master
 | 
					    image: gliderlabs/registrator:master
 | 
				
			||||||
    command: -ttl=120 -ttl-refresh=10 -cleanup=true -resync=10 -internal consul://consul:8500
 | 
					    command: -ttl=120 -ttl-refresh=10 -cleanup=true -resync=10 -internal consul://consul:8500
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - /var/run/docker.sock:/tmp/docker.sock
 | 
					      - /var/run/docker.sock:/tmp/docker.sock
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - inbound
 | 
				
			||||||
    links:
 | 
					    links:
 | 
				
			||||||
      - consul
 | 
					      - consul
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      SERVICE_NAME: registrator
 | 
					      SERVICE_NAME: registrator
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  portainer:
 | 
					  portainer:
 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
    container_name: portainer_elena
 | 
					    container_name: portainer
 | 
				
			||||||
    image: portainer/portainer
 | 
					    image: portainer/portainer-ce:latest
 | 
				
			||||||
    command: -H unix:///var/run/docker.sock
 | 
					    command: -H unix:///var/run/docker.sock
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - /var/run/docker.sock:/var/run/docker.sock
 | 
					      - /var/run/docker.sock:/var/run/docker.sock
 | 
				
			||||||
      - ./storage/portainer:/data
 | 
					      - ./storage/portainer:/data
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - inbound
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.docker.network=inbound"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.portainer.rule=Host(`portainer.docker.localhost`)"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.portainer.service=portainer"
 | 
				
			||||||
 | 
					      - "traefik.http.services.portainer.loadbalancer.server.port=9000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fluentd:
 | 
					  traefik:
 | 
				
			||||||
    build: ./fluentd
 | 
					    image: traefik:latest
 | 
				
			||||||
 | 
					    container_name: traefikervice=consul"
 | 
				
			||||||
    restart: always
 | 
					    restart: always
 | 
				
			||||||
    container_name: fluentd_elena
 | 
					    networks:
 | 
				
			||||||
 | 
					      - traefik
 | 
				
			||||||
 | 
					      - inbound
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - ./fluentd/conf:/fluentd/etc
 | 
					      - ./configs/traefik.yml:/etc/traefik/traefik.yml
 | 
				
			||||||
    links:
 | 
					      - /var/run/docker.sock:/var/run/docker.sock
 | 
				
			||||||
      - "influxdb"
 | 
					 | 
				
			||||||
    ports:
 | 
					    ports:
 | 
				
			||||||
      - 24224:24224
 | 
					      - target: 80
 | 
				
			||||||
    environment:
 | 
					        published: 80
 | 
				
			||||||
        SERVICE_24224_NAME: 'fluentd'
 | 
					        mode: host
 | 
				
			||||||
        SERVICE_5140_NAME: 'fluentd'
 | 
					      - target: 443
 | 
				
			||||||
 | 
					        published: 443
 | 
				
			||||||
 | 
					        mode: host
 | 
				
			||||||
 | 
					      - target: 8080
 | 
				
			||||||
 | 
					        published: 8090
 | 
				
			||||||
 | 
					        protocol: tcp
 | 
				
			||||||
 | 
					        mode: ingress
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.http.routers.api.rule=Host(`traefik.docker.localhost`)"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.api.service=api@internal"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  influxdb:
 | 
					 | 
				
			||||||
    image: influxdb:latest
 | 
					 | 
				
			||||||
    restart: always
 | 
					 | 
				
			||||||
    container_name: influxdb_elena
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - ./storage/influxdb/data:/var/lib/influxdb
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
        INFLUXDB_DATA_ENGINE: 'tsm1'
 | 
					 | 
				
			||||||
        INFLUXDB_REPORTING_DISABLED: 'false'
 | 
					 | 
				
			||||||
        SERVICE_8086_NAME: 'influxdb'
 | 
					 | 
				
			||||||
        SERVICE_8086_TAG: 'db'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					networks:
 | 
				
			||||||
 | 
					  traefik:
 | 
				
			||||||
 | 
					    driver: bridge
 | 
				
			||||||
 | 
					    name: traefik
 | 
				
			||||||
 | 
					  inbound:
 | 
				
			||||||
 | 
					    driver: bridge
 | 
				
			||||||
 | 
					    name: inbound
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					configs:
 | 
				
			||||||
 | 
					  traefik_config:
 | 
				
			||||||
 | 
					    file: ./configs/traefik.yml
 | 
				
			||||||
							
								
								
									
										26
									
								
								fluent.conf
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								fluent.conf
									
									
									
									
									
								
							@@ -1,26 +0,0 @@
 | 
				
			|||||||
<source>
 | 
					 | 
				
			||||||
  @type  forward
 | 
					 | 
				
			||||||
  @id    input1
 | 
					 | 
				
			||||||
  @label @mainstream
 | 
					 | 
				
			||||||
  port  ${LISTEN_PORT}
 | 
					 | 
				
			||||||
  source_hostname_key hostname
 | 
					 | 
				
			||||||
</source>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<label @mainstream>
 | 
					 | 
				
			||||||
  <filter **>
 | 
					 | 
				
			||||||
    @type record_transformer
 | 
					 | 
				
			||||||
    <record>
 | 
					 | 
				
			||||||
      tag ${tag}
 | 
					 | 
				
			||||||
      hostname ${hostname}
 | 
					 | 
				
			||||||
    </record>
 | 
					 | 
				
			||||||
  </filter>
 | 
					 | 
				
			||||||
  <match **>
 | 
					 | 
				
			||||||
    type influxdb
 | 
					 | 
				
			||||||
    host ${DB_HOST}
 | 
					 | 
				
			||||||
    port ${DB_PORT}
 | 
					 | 
				
			||||||
    dbname ${DB_NAME}
 | 
					 | 
				
			||||||
    collection ${DB_COLLECTION}
 | 
					 | 
				
			||||||
    flush_interval ${FLUSH_INTERVAL}
 | 
					 | 
				
			||||||
  </match>
 | 
					 | 
				
			||||||
</label>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,3 +0,0 @@
 | 
				
			|||||||
FROM fluent/fluentd:latest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN ["gem", "install", "fluent-plugin-influxdb", "--no-rdoc", "--no-ri"]
 | 
					 | 
				
			||||||
@@ -1,20 +0,0 @@
 | 
				
			|||||||
<source>
 | 
					 | 
				
			||||||
  @type forward
 | 
					 | 
				
			||||||
  port 24224
 | 
					 | 
				
			||||||
  bind 0.0.0.0
 | 
					 | 
				
			||||||
</source>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<match *.**>
 | 
					 | 
				
			||||||
  @type copy
 | 
					 | 
				
			||||||
  <store>
 | 
					 | 
				
			||||||
    @type influxdb
 | 
					 | 
				
			||||||
    host influxdb_elena
 | 
					 | 
				
			||||||
    dbname logging
 | 
					 | 
				
			||||||
    port 8086
 | 
					 | 
				
			||||||
    tag_key @log_name
 | 
					 | 
				
			||||||
    flush_interval 1s
 | 
					 | 
				
			||||||
  </store>
 | 
					 | 
				
			||||||
  <store>
 | 
					 | 
				
			||||||
    @type stdout
 | 
					 | 
				
			||||||
  </store>
 | 
					 | 
				
			||||||
</match>
 | 
					 | 
				
			||||||
							
								
								
									
										48
									
								
								traefik-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								traefik-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					version: '3.7'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  traefik:
 | 
				
			||||||
 | 
					    image: traefik:latest
 | 
				
			||||||
 | 
					    container_name: traefik
 | 
				
			||||||
 | 
					    restart: always
 | 
				
			||||||
 | 
					    command:
 | 
				
			||||||
 | 
					      - "--log.level=DEBUG"
 | 
				
			||||||
 | 
					      - "--api.insecure=true"
 | 
				
			||||||
 | 
					      - "--metrics.prometheus.addServicesLabels=true"
 | 
				
			||||||
 | 
					      - "--metrics.prometheus=true"
 | 
				
			||||||
 | 
					      - "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
 | 
				
			||||||
 | 
					      - "--entryPoints.web.address=:80"
 | 
				
			||||||
 | 
					      - "--entryPoints.traefik.address=:8080"
 | 
				
			||||||
 | 
					      - "--providers.docker=true"
 | 
				
			||||||
 | 
					      - "--providers.docker.swarmmode=false"
 | 
				
			||||||
 | 
					      - "--providers.docker.watch"
 | 
				
			||||||
 | 
					      - "--api=true"
 | 
				
			||||||
 | 
					      - "--api.insecure=true"
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - traefik
 | 
				
			||||||
 | 
					      - inbound
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - /var/run/docker.sock:/var/run/docker.sock
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - target: 80
 | 
				
			||||||
 | 
					        published: 80
 | 
				
			||||||
 | 
					        mode: host
 | 
				
			||||||
 | 
					      - target: 443
 | 
				
			||||||
 | 
					        published: 443
 | 
				
			||||||
 | 
					        mode: host
 | 
				
			||||||
 | 
					      - target: 8080
 | 
				
			||||||
 | 
					        published: 8090
 | 
				
			||||||
 | 
					        protocol: tcp
 | 
				
			||||||
 | 
					        mode: ingress
 | 
				
			||||||
 | 
					    labels:
 | 
				
			||||||
 | 
					      - "traefik.http.routers.api.rule=Host(`traefik.docker.localhost`)"
 | 
				
			||||||
 | 
					      - "traefik.http.routers.api.service=api@internal"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					networks:
 | 
				
			||||||
 | 
					  traefik:
 | 
				
			||||||
 | 
					    driver: bridge
 | 
				
			||||||
 | 
					    name: traefik
 | 
				
			||||||
 | 
					  inbound:
 | 
				
			||||||
 | 
					    driver: bridge
 | 
				
			||||||
 | 
					    name: inbound
 | 
				
			||||||
							
								
								
									
										81
									
								
								traefik-stack.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								traefik-stack.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					version: '3.7'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  traefik:
 | 
				
			||||||
 | 
					    image: traefik:latest
 | 
				
			||||||
 | 
					    restart: always
 | 
				
			||||||
 | 
					    command:
 | 
				
			||||||
 | 
					      - "--log.level=DEBUG"
 | 
				
			||||||
 | 
					      - "--api.insecure=true"
 | 
				
			||||||
 | 
					      - "--metrics.prometheus.addServicesLabels=true"
 | 
				
			||||||
 | 
					      - "--metrics.prometheus=true"
 | 
				
			||||||
 | 
					      - "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
 | 
				
			||||||
 | 
					      - "--entryPoints.web.address=:80"
 | 
				
			||||||
 | 
					      - "--tracing.zipkin.httpEndpoint=http://jaeger:9411/api/v2/spans"
 | 
				
			||||||
 | 
					      - "--entryPoints.traefik.address=:8080"
 | 
				
			||||||
 | 
					      - "--providers.docker=true"
 | 
				
			||||||
 | 
					      - "--providers.docker.swarmmode=false"
 | 
				
			||||||
 | 
					      - "--providers.docker.watch"
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - traefik
 | 
				
			||||||
 | 
					      - inbound
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - /var/run/docker.sock:/var/run/docker.sock
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - target: 80
 | 
				
			||||||
 | 
					        published: 80
 | 
				
			||||||
 | 
					        mode: host
 | 
				
			||||||
 | 
					      - target: 443
 | 
				
			||||||
 | 
					        published: 443
 | 
				
			||||||
 | 
					        mode: host
 | 
				
			||||||
 | 
					        mode: host
 | 
				
			||||||
 | 
					      - target: 8080
 | 
				
			||||||
 | 
					        published: 8090
 | 
				
			||||||
 | 
					        protocol: tcp
 | 
				
			||||||
 | 
					        mode: ingress
 | 
				
			||||||
 | 
					    deploy:
 | 
				
			||||||
 | 
					      mode: global
 | 
				
			||||||
 | 
					      placement:
 | 
				
			||||||
 | 
					        constraints:
 | 
				
			||||||
 | 
					          - node.role == manager
 | 
				
			||||||
 | 
					      update_config:
 | 
				
			||||||
 | 
					        parallelism: 1
 | 
				
			||||||
 | 
					        delay: 10s
 | 
				
			||||||
 | 
					      restart_policy:
 | 
				
			||||||
 | 
					        condition: on-failure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  jaeger:
 | 
				
			||||||
 | 
					    image: jaegertracing/all-in-one:1.6
 | 
				
			||||||
 | 
					    restart: always
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      COLLECTOR_ZIPKIN_HTTP_PORT: 9411
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - 5775:5775/udp
 | 
				
			||||||
 | 
					      - 6831:6831/udp
 | 
				
			||||||
 | 
					      - 6832:6832/udp
 | 
				
			||||||
 | 
					      - 5778:5778
 | 
				
			||||||
 | 
					      - 16686:16686
 | 
				
			||||||
 | 
					      - 14268:14268
 | 
				
			||||||
 | 
					      - 9411:9411
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - inbound
 | 
				
			||||||
 | 
					      - traefik
 | 
				
			||||||
 | 
					    deploy:
 | 
				
			||||||
 | 
					      labels:
 | 
				
			||||||
 | 
					       - "traefik.docker.network=inbound"
 | 
				
			||||||
 | 
					       - "traefik.http.routers.jaeger.rule=Host(`jaeger.localhost`)"
 | 
				
			||||||
 | 
					       - "traefik.http.routers.jaeger.service=jaeger"
 | 
				
			||||||
 | 
					       - "traefik.http.services.jaeger.loadbalancer.server.port=16686"
 | 
				
			||||||
 | 
					      placement:
 | 
				
			||||||
 | 
					        constraints:
 | 
				
			||||||
 | 
					        - node.role==manager
 | 
				
			||||||
 | 
					      restart_policy:
 | 
				
			||||||
 | 
					        condition: on-failure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					networks:
 | 
				
			||||||
 | 
					  traefik:
 | 
				
			||||||
 | 
					    driver: overlay
 | 
				
			||||||
 | 
					    name: traefik
 | 
				
			||||||
 | 
					  inbound:
 | 
				
			||||||
 | 
					    driver: overlay
 | 
				
			||||||
 | 
					    name: inbound
 | 
				
			||||||
		Reference in New Issue
	
	Block a user