From 594009997830abb56292cac58d253ada25cc3e99 Mon Sep 17 00:00:00 2001 From: sotos Date: Thu, 18 Dec 2025 15:29:47 +0100 Subject: [PATCH] asd --- ansible/playbooks/monitoring.yaml | 24 ++++-- .../roles/docker/monitoring/tasks/main.yaml | 10 +++ .../docker/snake/files/docker-compose.yaml | 4 + .../roles/docker/snake/tasks/main.yaml | 7 ++ docker/monitoring/docker-compose.yaml | 78 +++++++++---------- docker/monitoring/prometheus.yaml | 14 ++++ 6 files changed, 91 insertions(+), 46 deletions(-) create mode 100644 ansible/playbooks/roles/docker/monitoring/tasks/main.yaml diff --git a/ansible/playbooks/monitoring.yaml b/ansible/playbooks/monitoring.yaml index 1d1f7a4..d077a89 100644 --- a/ansible/playbooks/monitoring.yaml +++ b/ansible/playbooks/monitoring.yaml @@ -1,21 +1,33 @@ ---- - hosts: all become: true vars: monitor_dir: /opt/docker/monitoring + docker_network: monitoring tasks: - - name: Create monitoring directory + - name: Ensure monitoring directory exists file: path: "{{ monitor_dir }}" state: directory + owner: root + group: root + mode: '0755' - name: Copy monitoring stack copy: src: ../../docker/monitoring/ dest: "{{ monitor_dir }}" + owner: root + group: root + mode: '0755' - - name: Start monitoring - command: docker compose up -d - args: - chdir: "{{ monitor_dir }}" + - name: Ensure monitoring Docker network exists + docker_network: + name: "{{ docker_network }}" + state: present + + - name: Start monitoring stack + docker_container: + project_src: "{{ monitor_dir }}" + state: present + restarted: true diff --git a/ansible/playbooks/roles/docker/monitoring/tasks/main.yaml b/ansible/playbooks/roles/docker/monitoring/tasks/main.yaml new file mode 100644 index 0000000..87f9eab --- /dev/null +++ b/ansible/playbooks/roles/docker/monitoring/tasks/main.yaml @@ -0,0 +1,10 @@ +- name: Ensure snake_net exists for monitoring + docker_network: + name: snake_net + state: present + +- name: Start monitoring stack + community.docker.docker_compose: + project_src: /opt/docker/monitoring + state: present + restarted: true diff --git a/ansible/playbooks/roles/docker/snake/files/docker-compose.yaml b/ansible/playbooks/roles/docker/snake/files/docker-compose.yaml index 90ff4a2..0e67fe7 100644 --- a/ansible/playbooks/roles/docker/snake/files/docker-compose.yaml +++ b/ansible/playbooks/roles/docker/snake/files/docker-compose.yaml @@ -7,3 +7,7 @@ services: restart: unless-stopped ports: - "8080:80" +networks: + snake_net: + external: true + diff --git a/ansible/playbooks/roles/docker/snake/tasks/main.yaml b/ansible/playbooks/roles/docker/snake/tasks/main.yaml index ce75a69..7181023 100644 --- a/ansible/playbooks/roles/docker/snake/tasks/main.yaml +++ b/ansible/playbooks/roles/docker/snake/tasks/main.yaml @@ -8,6 +8,11 @@ group: root mode: '0755' +- name: Ensure snake_net exists + docker_network: + name: snake_net + state: present + # Login to private registry - name: Login to private registry docker_login: @@ -31,6 +36,8 @@ ports: - "8080:80" # host port → container port pull: yes + networks: + - name: snake_net diff --git a/docker/monitoring/docker-compose.yaml b/docker/monitoring/docker-compose.yaml index ad529d2..2022703 100644 --- a/docker/monitoring/docker-compose.yaml +++ b/docker/monitoring/docker-compose.yaml @@ -1,45 +1,43 @@ ---- version: '3.8' -services: - prometheus: - image: prom/prometheus:latest - volumes: - - ./prometheus.yaml:/etc/prometheus/prometheus.yml:ro - ports: - - "9090:9090" - networks: - - snake_net - restart: unless-stopped - - nginx-prometheus-exporter: - image: nginx/nginx-prometheus-exporter:latest - container_name: nginx-prometheus-exporter - ports: - - "9113:9113" - environment: - - NGINX_STATUS_URL=http://nginx:8080/metrics - networks: - - snake_net - - - - grafana: - image: grafana/grafana:latest - volumes: - - ./grafana/provisioning:/etc/grafana/provisioning:ro - - grafana_data:/var/lib/grafana - environment: - GF_SECURITY_ADMIN_PASSWORD: "admin" - GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH: /var/lib/grafana/dashboards/home.json - ports: - - "3000:3000" - networks: - - snake_net - restart: unless-stopped - -volumes: - grafana_data: networks: snake_net: external: true + +services: + prometheus: + image: prom/prometheus:latest + container_name: monitoring-prometheus + ports: + - "9090:9090" + volumes: + - ./prometheus.yaml:/etc/prometheus/prometheus.yml + networks: + - snake_net + + grafana: + image: grafana/grafana:latest + container_name: monitoring-grafana + ports: + - "3000:3000" + volumes: + - ./grafana/provisioning:/etc/grafana/provisioning + - ./grafana/dashboards:/var/lib/grafana/dashboards + networks: + - snake_net + + nginx-exporter: + image: nginx/nginx-prometheus-exporter:latest + container_name: nginx-exporter + ports: + - "9113:9113" + networks: + - snake_net + + blackbox-exporter: + image: prom/blackbox-exporter:latest + container_name: blackbox-exporter + ports: + - "9115:9115" + networks: + - snake_net diff --git a/docker/monitoring/prometheus.yaml b/docker/monitoring/prometheus.yaml index 450ac11..9a8ce97 100644 --- a/docker/monitoring/prometheus.yaml +++ b/docker/monitoring/prometheus.yaml @@ -10,3 +10,17 @@ scrape_configs: - job_name: 'nginx' static_configs: - targets: ['nginx-prometheus-exporter:9113'] + + - job_name: 'snake-game' + metrics_path: /probe + params: + module: [http_2xx] # probe returns 1 if HTTP 200 + static_configs: + - targets: ['snake-game:8080'] # snake game container + port + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ + replacement: blackbox-exporter:9115 \ No newline at end of file