add prometheus and grafana
This commit is contained in:
1 parent
8dbfcd9404
commit
59c01d9ace
3 files changed
+227
No files matched your search
@@ -0,0 +1,177 @@
|
||||
#### NETWORKS
|
||||
networks:
|
||||
back_network_pg:
|
||||
driver: bridge
|
||||
attachable: true
|
||||
|
||||
#### SERVICES
|
||||
services:
|
||||
|
||||
### prometheus
|
||||
prometheus:
|
||||
container_name: prometheus-app
|
||||
hostname: prometheus-app
|
||||
image: prom/prometheus:latest
|
||||
restart: always
|
||||
volumes:
|
||||
- ./prometheus:/etc/prometheus/
|
||||
- ./prometheus_data:/prometheus
|
||||
command:
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
- '--storage.tsdb.path=/prometheus'
|
||||
- '--storage.tsdb.retention.time=30d'
|
||||
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
|
||||
- '--web.console.templates=/usr/share/prometheus/consoles'
|
||||
- '--web.enable-remote-write-receiver'
|
||||
networks:
|
||||
- front_network
|
||||
- back_network_pg
|
||||
- monitoring_network
|
||||
depends_on:
|
||||
- cadvisor
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik_front_network"
|
||||
# HTTP
|
||||
- "traefik.http.routers.prometheus-http.rule=Host(`prometheus.${ROOT_DOMAIN}`)"
|
||||
- "traefik.http.routers.prometheus-http.entrypoints=http"
|
||||
- "traefik.http.routers.prometheus-http.priority=49"
|
||||
# HTTPS
|
||||
- "traefik.http.routers.prometheus-https.rule=Host(`prometheus.${ROOT_DOMAIN}`)"
|
||||
- "traefik.http.routers.prometheus-https.entrypoints=https"
|
||||
- "traefik.http.routers.prometheus-https.tls=true"
|
||||
- "traefik.http.routers.prometheus-https.priority=50"
|
||||
- "traefik.http.routers.prometheus-https.service=prometheus-https-service"
|
||||
- "traefik.http.routers.prometheus-https.middlewares=prometheus-middlewares"
|
||||
- "traefik.http.routers.prometheus-https.observability.accesslogs=true"
|
||||
- "traefik.http.routers.prometheus-https.observability.metrics=true"
|
||||
- "traefik.http.routers.prometheus-https.observability.tracing=true"
|
||||
# Middleware
|
||||
- "traefik.http.middlewares.prometheus-middlewares.headers.STSSeconds=15552000"
|
||||
- "traefik.http.middlewares.prometheus-middlewares.headers.forceSTSHeader=true"
|
||||
- "traefik.http.middlewares.prometheus-middlewares.headers.STSIncludeSubdomains=true"
|
||||
- "traefik.http.middlewares.prometheus-middlewares.headers.STSPreload=true"
|
||||
# Service
|
||||
- "traefik.http.services.prometheus-https-service.loadbalancer.server.port=9090"
|
||||
# - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.hostname=prometheus.${ROOT_DOMAIN}"
|
||||
# - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.method=foobar"
|
||||
# - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.timeout=10"
|
||||
# - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.interval=30"
|
||||
# --- Homepage ------------------------------------------------------
|
||||
- homepage.group=Monitoring
|
||||
- homepage.name=Prometheus
|
||||
- homepage.icon=prometheus.png
|
||||
- homepage.href=https://prometheus.${ROOT_DOMAIN}
|
||||
- homepage.description=prometheus
|
||||
|
||||
### node-exporter
|
||||
node-exporter:
|
||||
container_name: prometheus-node-exporter
|
||||
hostname: prometheus-node-exporter
|
||||
image: prom/node-exporter:latest
|
||||
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)($$|/)'
|
||||
networks:
|
||||
- back_network_pg
|
||||
restart: always
|
||||
|
||||
|
||||
### alertmanager
|
||||
alertmanager:
|
||||
container_name: prometheus-alertmanager
|
||||
hostname: prometheus-alertmanager
|
||||
image: prom/alertmanager:latest
|
||||
restart: always
|
||||
networks:
|
||||
- back_network_pg
|
||||
volumes:
|
||||
- ./alertmanager/:/etc/alertmanager/
|
||||
- ./alertmanager_data:/alertmanager
|
||||
command:
|
||||
- '--config.file=/etc/alertmanager/config.yml'
|
||||
- '--storage.path=/alertmanager'
|
||||
|
||||
### cadvisor
|
||||
cadvisor:
|
||||
container_name: prometheus-cadvisor
|
||||
hostname: prometheus-cadvisor
|
||||
image: gcr.io/cadvisor/cadvisor:latest
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:rw
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker/:/var/lib/docker:ro
|
||||
networks:
|
||||
- back_network_pg
|
||||
restart: always
|
||||
|
||||
### grafana
|
||||
grafana:
|
||||
container_name: grafana-app
|
||||
hostname: grafana-app
|
||||
image: grafana/grafana:latest
|
||||
user: '472'
|
||||
restart: always
|
||||
environment:
|
||||
# GF_INSTALL_PLUGINS: 'grafana-clock-panel,grafana-simple-json-datasource'
|
||||
GF_PLUGINS_PREINSTALL: 'grafana-clock-panel'
|
||||
volumes:
|
||||
- ./grafana_data:/var/lib/grafana
|
||||
- ./grafana/provisioning/:/etc/grafana/provisioning/
|
||||
env_file:
|
||||
- ./grafana/config.monitoring
|
||||
networks:
|
||||
- front_network
|
||||
- back_network_pg
|
||||
- monitoring_network
|
||||
depends_on:
|
||||
- prometheus
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik_front_network"
|
||||
# HTTP
|
||||
- "traefik.http.routers.grafana-http.rule=Host(`grafana.${ROOT_DOMAIN}`)"
|
||||
- "traefik.http.routers.grafana-http.entrypoints=http"
|
||||
- "traefik.http.routers.grafana-http.priority=41"
|
||||
# HTTPS
|
||||
- "traefik.http.routers.grafana-https.rule=Host(`grafana.${ROOT_DOMAIN}`)"
|
||||
- "traefik.http.routers.grafana-https.entrypoints=https"
|
||||
- "traefik.http.routers.grafana-https.tls=true"
|
||||
- "traefik.http.routers.grafana-https.priority=42"
|
||||
- "traefik.http.routers.grafana-https.service=grafana-https-service"
|
||||
# Middleware
|
||||
# Service
|
||||
- "traefik.http.services.grafana-https-service.loadbalancer.server.port=3000"
|
||||
# - "traefik.http.services.grafana-https-service.loadbalancer.server.scheme=https"
|
||||
# - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.hostname=grafana.${ROOT_DOMAIN}"
|
||||
# - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.method=foobar"
|
||||
# - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.timeout=10"
|
||||
# - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.interval=30"
|
||||
# Homepage
|
||||
- "homepage.group=Monitoring"
|
||||
- "homepage.name=Grafana"
|
||||
- "homepage.icon=grafana.png"
|
||||
- "homepage.href=https://grafana.${ROOT_DOMAIN}"
|
||||
- "homepage.description=grafana"
|
||||
|
||||
### tempo
|
||||
tempo:
|
||||
container_name: tempo-app
|
||||
hostname: tempo-app
|
||||
image: grafana/tempo:2.8.1
|
||||
restart: always
|
||||
user: '10001'
|
||||
command: [ "-config.file=/etc/tempo/tempo.yml" ]
|
||||
volumes:
|
||||
- ./tempo:/etc/tempo
|
||||
- ./tempo_data:/var/tempo
|
||||
networks:
|
||||
- back_network
|
||||
- back_network_pg
|
||||
@@ -0,0 +1,18 @@
|
||||
GF_SECURITY_ADMIN_USER=admin
|
||||
GF_SECURITY_ADMIN_PASSWORD=foobar
|
||||
GF_USERS_ALLOW_SIGN_UP=false
|
||||
|
||||
GF_AUTH_GENERIC_OAUTH_ENABLED=true
|
||||
GF_AUTH_GENERIC_OAUTH_NAME=Authentik
|
||||
GF_AUTH_GENERIC_OAUTH_CLIENT_ID=MJGcr2G6ZeSPtfz993wXyG8m7lEWE7cx6oB6VDCy
|
||||
GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=zIORUZ3RtfiKuxgcJJ0X59eBPvqevH8c6W1ahJKLuzht0aOW4UmxM9AiXZmMLC2SxVDdQ1Qv1IP9lFENW2bfL0VPrLej2NRSXoV2Us0HG5mvekUMfcdwuHvAOrmdlp74
|
||||
GF_AUTH_GENERIC_OAUTH_SCOPES=openid email profile groups
|
||||
GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH=contains(groups[*], 'GL-Grafana-Admin') && 'Admin' || contains(groups[*], 'GL-Grafana') && 'Viewer' || 'Viewer'
|
||||
GF_AUTH_GENERIC_OAUTH_ALLOW_ASSIGN_GRAFANA_ADMIN=true
|
||||
GF_AUTH_GENERIC_OAUTH_AUTH_URL=https://authentik.${ROOT_DOMAIN}/application/o/authorize/
|
||||
GF_AUTH_GENERIC_OAUTH_TOKEN_URL=https://authentik.${ROOT_DOMAIN}/application/o/token/
|
||||
GF_AUTH_GENERIC_OAUTH_API_URL=https://authentik.${ROOT_DOMAIN}/application/o/userinfo/
|
||||
GF_AUTH_GENERIC_OAUTH_LOGIN_ATTRIBUTE_PATH=preferred_username
|
||||
GF_AUTH_GENERIC_OAUTH_NAME_ATTRIBUTE_PATH=name
|
||||
GF_AUTH_SIGNOUT_REDIRECT_URL=https://authentik.${ROOT_DOMAIN}/application/o/grafana/end-session/
|
||||
GF_SERVER_ROOT_URL=https://grafana.${ROOT_DOMAIN}
|
||||
@@ -0,0 +1,32 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
external_labels:
|
||||
monitor: 'sldokp03'
|
||||
|
||||
rule_files:
|
||||
- 'alert.rules'
|
||||
|
||||
alerting:
|
||||
alertmanagers:
|
||||
- scheme: http
|
||||
static_configs:
|
||||
- targets:
|
||||
- "alertmanager:9093"
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'prometheus'
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
- job_name: 'cadvisor'
|
||||
static_configs:
|
||||
- targets: ['cadvisor:8080']
|
||||
|
||||
- job_name: 'node-exporter'
|
||||
static_configs:
|
||||
- targets: ['node-exporter:9100']
|
||||
|
||||
- job_name: 'traefik-app'
|
||||
static_configs:
|
||||
- targets: ['traefik-app:8181']
|
||||
Reference in new issue
Block a user