mikrotik_monitoring/docker-compose.yml
2024-09-07 13:07:39 +02:00

84 lines
2.5 KiB
YAML

version: "3.9"
volumes:
prometheus_data: {}
grafana_data: {}
services:
# Prometheus
# https://github.com/stefanprodan/dockprom
prometheus:
image: prom/prometheus:v2.54.1
container_name: mikrotik-prometheus
volumes:
- ./prometheus:/etc/prometheus
- prometheus_data:/prometheus
command:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
- "--storage.tsdb.retention.time=1y" # <= adjust the storage retention period of Prometheus
restart: unless-stopped
networks:
- default
labels:
org.label-schema.group: "monitoring"
# Grafana
# https://github.com/stefanprodan/dockprom
grafana:
image: grafana/grafana:11.2.0
container_name: mikrotik-grafana
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards:ro
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:ro
environment:
- GF_SECURITY_ADMIN_USER=${ADMIN_USER:-admin}
- GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin}
- GF_USERS_ALLOW_SIGN_UP=false
- GF_INSTALL_PLUGINS=flant-statusmap-panel
- GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/provisioning/dashboards/mikrotik/monitor.json
restart: unless-stopped
networks:
- default
labels:
org.label-schema.group: "monitoring"
# MKTXP
# https://github.com/akpw/mktxp
mktxp:
image: ghcr.io/akpw/mktxp:gha-10485178964
container_name: mikrotik-mktxp
volumes:
# Since Version v0.37 mktxp runs as single user
# Prior it was root
- "./mktxp/:/home/mktxp/mktxp/"
networks:
- default
restart: unless-stopped
nginx:
image: nginx:latest
container_name: mikrotik-nginx
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
- ./nginx/nginx-selfsigned.key:/etc/nginx/ssl/nginx-selfsigned.key
- ./nginx/nginx-selfsigned.crt:/etc/nginx/ssl/nginx-selfsigned.crt
- ./nginx/self-signed.conf:/etc/nginx/ssl/self-signed.conf
ports:
- 80:80 # You may adjust to some unprivileged ports
- 443:443
networks:
- default
restart: unless-stopped
# https://github.com/prometheus/blackbox_exporter/blob/master/example.yml
blackbox:
image: quay.io/prometheus/blackbox-exporter:latest
container_name: mikrotik-blackbox-exporter
command: --config.file=/config/blackbox.yml
volumes:
- ./blackbox/blackbox.yml:/config/blackbox.yml
networks:
- default
restart: unless-stopped