Traefik #1
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
tags
|
tags
|
||||||
storage
|
storage
|
||||||
|
influxdb/
|
||||||
|
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,16 +18,28 @@ 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: -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:
|
||||||
@ -33,38 +47,54 @@ services:
|
|||||||
|
|
||||||
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
|
||||||
- portainer_data:/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: traefik
|
||||||
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
|
||||||
influxdb:
|
mode: host
|
||||||
image: influxdb:latest
|
- target: 8080
|
||||||
restart: always
|
published: 8090
|
||||||
container_name: influxdb_elena
|
protocol: tcp
|
||||||
volumes:
|
mode: ingress
|
||||||
- ./storage/influxdb/data:/var/lib/influxdb
|
labels:
|
||||||
environment:
|
- "traefik.http.routers.api.rule=Host(`traefik.docker.localhost`)"
|
||||||
INFLUXDB_DATA_ENGINE: 'tsm1'
|
- "traefik.http.routers.api.service=api@internal"
|
||||||
INFLUXDB_REPORTING_DISABLED: 'false'
|
|
||||||
SERVICE_8086_NAME: 'influxdb'
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
networks:
|
||||||
portainer_data:
|
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
|
Loading…
Reference in New Issue
Block a user