version: "3.9" services: prometheus: image: {{ images.prometheus }} command: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.retention.time={{ prometheus_retention }} volumes: - {{ monitoring_base_dir }}/prometheus:/etc/prometheus:ro - prom_data:/prometheus ports: - "9090:9090" networks: [ {{ monitoring_docker_network }} ] restart: unless-stopped alertmanager: image: {{ images.alertmanager }} command: ["--config.file=/etc/alertmanager/alertmanager.yml"] volumes: - {{ monitoring_base_dir }}/alertmanager:/etc/alertmanager:ro ports: - "9093:9093" networks: [ {{ monitoring_docker_network }} ] restart: unless-stopped environment: TELEGRAM_BOT_TOKEN: "{{ telegram_bot_token }}" TELEGRAM_CHAT_ID: "{{ telegram_chat_id }}" loki: image: {{ images.loki }} command: ["-config.file=/etc/loki/config.yml"] volumes: - {{ monitoring_base_dir }}/loki:/etc/loki:ro - loki_data:/loki ports: - "3100:3100" networks: [ {{ monitoring_docker_network }} ] restart: unless-stopped grafana: image: {{ images.grafana }} volumes: - grafana_data:/var/lib/grafana - {{ monitoring_base_dir }}/grafana/provisioning:/etc/grafana/provisioning:ro ports: - "3000:3000" networks: [ {{ monitoring_docker_network }} ] restart: unless-stopped environment: GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: admin GF_SERVER_ROOT_URL: http://{{ ansible_host | default(inventory_hostname) }}:3000 volumes: prom_data: {} loki_data: {} grafana_data: {} networks: {{ monitoring_docker_network }}: external: true