version: '3.6' x-logging-quiet: &fibitex-logging-quiet driver: json-file options: max-size: "5m" max-file: "2" services: prometheus: logging: *fibitex-logging-quiet image: prom/prometheus:latest container_name: monitoring-prometheus volumes: - ../config/monitoring/prometheus:/etc/prometheus/ - prometheus:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' - '--web.enable-lifecycle' labels: - "traefik.enable=true" - "traefik.http.routers.pro-<%= @name %>.entrypoints=http" - "traefik.http.routers.pro-<%= @name %>.rule=Host(`pro.<%= @config['app']['domain'] %>`)" - "traefik.http.services.pro-<%= @name %>.loadbalancer.server.port=9090" - "traefik.http.routers.pro-<%= @name %>.middlewares=auth" - "traefik.http.middlewares.auth.basicauth.users=yaser:{SHA}ueAuJOSpNyWTyI+JEiX57oeRevg=" # HaCE4UYTrCTck88uXkd9 <%- if @config['ssl']['enabled'] -%> - "traefik.http.routers.pro-<%= @name %>.entrypoints=websecure" - "traefik.http.routers.pro-<%= @name %>.tls=true" - "traefik.http.routers.pro-<%= @name %>.tls.certresolver=letsencrypt" <%- else -%> - "traefik.http.routers.pro-<%= @name %>.entrypoints=web" <%- end -%> grafana: logging: *fibitex-logging-quiet image: grafana/grafana container_name: monitoring-grafana depends_on: - prometheus volumes: - grafana:/var/lib/grafana environment: - GF_INSTALL_PLUGINS=https://github.com/raintank/crate-datasource/archive/master.zip;crate-datasource,grafana-clock-panel,grafana-worldmap-panel,natel-plotly-panel,grafana-piechart-panel labels: - "traefik.enable=true" - "traefik.http.routers.gra-<%= @name %>.entrypoints=http" - "traefik.http.routers.gra-<%= @name %>.rule=Host(`gra.<%= @config['app']['domain'] %>`)" - "traefik.http.services.gra-<%= @name %>.loadbalancer.server.port=3000" <%- if @config['ssl']['enabled'] -%> - "traefik.http.routers.gra-<%= @name %>.entrypoints=websecure" - "traefik.http.routers.gra-<%= @name %>.tls=true" - "traefik.http.routers.gra-<%= @name %>.tls.certresolver=letsencrypt" <%- else -%> - "traefik.http.routers.gra-<%= @name %>.entrypoints=web" <%- end -%> alertmanager: logging: *fibitex-logging-quiet image: prom/alertmanager container_name: monitoring-alertmanager volumes: - ../config/monitoring/alertmanager/:/etc/alertmanager/ command: - '--config.file=/etc/alertmanager/config.yml' - '--storage.path=/alertmanager' labels: - "traefik.enable=true" - "traefik.http.routers.ale-<%= @name %>.entrypoints=http" - "traefik.http.routers.ale-<%= @name %>.rule=Host(`alert.<%= @config['app']['domain'] %>`)" - "traefik.http.services.ale-<%= @name %>.loadbalancer.server.port=9093" - "traefik.http.routers.ale-<%= @name %>.middlewares=auth" - "traefik.http.middlewares.auth.basicauth.users=yaser:{SHA}ueAuJOSpNyWTyI+JEiX57oeRevg=" # HaCE4UYTrCTck88uXkd9 <%- if @config['ssl']['enabled'] -%> - "traefik.http.routers.ale-<%= @name %>.entrypoints=websecure" - "traefik.http.routers.ale-<%= @name %>.tls=true" - "traefik.http.routers.ale-<%= @name %>.tls.certresolver=letsencrypt" <%- else -%> - "traefik.http.routers.ale.entrypoints=web" <%- end -%> loki: logging: *fibitex-logging-quiet image: grafana/loki:latest container_name: monitoring-loki command: -config.file=/etc/loki/local-config.yaml volumes: - loki:/tmp/loki - ../config/monitoring/loki/local-config.yaml:/etc/loki/local-config.yaml labels: - "traefik.enable=true" - "traefik.http.routers.lok-<%= @name %>.entrypoints=http" - "traefik.http.routers.lok-<%= @name %>.rule=Host(`loki.<%= @config['app']['domain'] %>`)" - "traefik.http.services.lok-<%= @name %>.loadbalancer.server.port=3100" <%- if @config['ssl']['enabled'] -%> - "traefik.http.routers.lok-<%= @name %>.entrypoints=websecure" - "traefik.http.routers.lok-<%= @name %>.tls=true" - "traefik.http.routers.lok-<%= @name %>.tls.certresolver=letsencrypt" <%- else -%> - "traefik.http.routers.lok-<%= @name %>.entrypoints=web" <%- end -%> scope: logging: *fibitex-logging-quiet image: weaveworks/scope:latest pid: "host" privileged: true container_name: monitoring-scope labels: - "traefik.enable=true" - "traefik.http.routers.scop-<%= @name %>.entrypoints=http" - "traefik.http.routers.scop-<%= @name %>.rule=Host(`scope.<%= @config['app']['domain'] %>`)" - "traefik.http.services.scop-<%= @name %>.loadbalancer.server.port=4040" - "traefik.http.routers.scop-<%= @name %>.middlewares=auth" - "traefik.http.middlewares.auth.basicauth.users=yaser:{SHA}ueAuJOSpNyWTyI+JEiX57oeRevg=" # HaCE4UYTrCTck88uXkd <%- if @config['ssl']['enabled'] -%> - "traefik.http.routers.scop-<%= @name %>.entrypoints=websecure" - "traefik.http.routers.scop-<%= @name %>.tls=true" - "traefik.http.routers.scop-<%= @name %>.tls.certresolver=letsencrypt" <%- else -%> - "traefik.http.routers.scop-<%= @name %>.entrypoints=web" <%- end -%> volumes: - "/var/run/docker.sock:/var/run/docker.sock:rw" command: - "--probe.docker=true" node-exporter: logging: *fibitex-logging-quiet image: prom/node-exporter:latest container_name: monitoring-node-exporter volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - --path.procfs=/host/proc - --path.sysfs=/host/sys - --collector.filesystem.ignored-mount-points - ^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/) ports: - 9100:9100 cadvisor: logging: *fibitex-logging-quiet image: google/cadvisor:latest container_name: monitoring-cadvisor volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro ports: <%- if @config['serverip']['enabled'] -%> - "<%= @config['serverip']['ip'] %>:8080:8080" <%- else -%> - 8080:8080 <%- end -%> promtail: logging: *fibitex-logging-quiet image: grafana/promtail:latest container_name: monitoring-promtail volumes: - /var/log:/var/log - ../config/monitoring/promtail/docker-config.yaml:/etc/promtail/docker-config.yaml command: -config.file=/etc/promtail/docker-config.yaml ports: - 9080:9080 volumes: grafana: name: grafana prometheus: name: prometheus loki: name: loki