From fbfc81e1ca37a8adcb3a55917ef1755bed844cdb Mon Sep 17 00:00:00 2001 From: nutcas3 Date: Fri, 17 Apr 2026 17:29:09 +0300 Subject: [PATCH] feat: Add Docker Compose monitoring stack with Prometheus, Grafana, InfluxDB, Redis, node-exporter, and Alertmanager - Add Prometheus service with 9090 port, 200h retention, lifecycle API enabled, prometheus_data volume - Add Grafana service on port 3001, admin password, sign-up disabled, provisioning and dashboards volumes - Add InfluxDB 2.7 with 8086 port, telecom org/bucket, admin credentials, influxdb_data and influxdb_config volumes - Add Redis 7-alpine service on port 6379 with redis_data volume --- monitoring/docker-compose.yml | 101 ++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 monitoring/docker-compose.yml diff --git a/monitoring/docker-compose.yml b/monitoring/docker-compose.yml new file mode 100644 index 0000000..b9d7ebf --- /dev/null +++ b/monitoring/docker-compose.yml @@ -0,0 +1,101 @@ +services: + prometheus: + image: prom/prometheus:latest + container_name: telecom-prometheus + ports: + - "9090:9090" + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus_data:/prometheus + command: + - '--config.file=/etc/prometheus/prometheus.yml' + - '--storage.tsdb.path=/prometheus' + - '--web.console.libraries=/etc/prometheus/console_libraries' + - '--web.console.templates=/etc/prometheus/consoles' + - '--storage.tsdb.retention.time=200h' + - '--web.enable-lifecycle' + networks: + - monitoring + + grafana: + image: grafana/grafana:latest + container_name: telecom-grafana + ports: + - "3001:3000" + environment: + - GF_SECURITY_ADMIN_PASSWORD=admin + - GF_USERS_ALLOW_SIGN_UP=false + volumes: + - grafana_data:/var/lib/grafana + - ./grafana/provisioning:/etc/grafana/provisioning + - ./grafana/dashboards:/var/lib/grafana/dashboards + networks: + - monitoring + + influxdb: + image: influxdb:2.7 + container_name: telecom-influxdb + ports: + - "8086:8086" + environment: + - DOCKER_INFLUXDB_INIT_MODE=setup + - DOCKER_INFLUXDB_INIT_USERNAME=admin + - DOCKER_INFLUXDB_INIT_PASSWORD=password123 + - DOCKER_INFLUXDB_INIT_ORG=telecom + - DOCKER_INFLUXDB_INIT_BUCKET=telecom + - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=telecom-super-secret-auth-token + volumes: + - influxdb_data:/var/lib/influxdb2 + - influxdb_config:/etc/influxdb2 + networks: + - monitoring + + redis: + image: redis:7-alpine + container_name: telecom-redis + ports: + - "6379:6379" + volumes: + - redis_data:/data + networks: + - monitoring + + node-exporter: + image: prom/node-exporter:latest + container_name: telecom-node-exporter + ports: + - "9100:9100" + volumes: + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /:/rootfs:ro + command: + - '--path.procfs=/host/proc' + - '--path.rootfs=/rootfs' + - '--path.sysfs=/host/sys' + - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' + networks: + - monitoring + + alertmanager: + image: prom/alertmanager:latest + container_name: telecom-alertmanager + ports: + - "9093:9093" + volumes: + - ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml + - alertmanager_data:/alertmanager + networks: + - monitoring + +volumes: + prometheus_data: + grafana_data: + influxdb_data: + influxdb_config: + redis_data: + alertmanager_data: + +networks: + monitoring: + driver: bridge