asd
Some checks failed
CI/CD Pipeline / lint (push) Failing after 57s
CI/CD Pipeline / deploy (push) Failing after 1m21s

This commit is contained in:
sotos
2025-12-18 15:29:47 +01:00
parent bb88b190ee
commit 5940099978
6 changed files with 91 additions and 46 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -7,3 +7,7 @@ services:
restart: unless-stopped
ports:
- "8080:80"
networks:
snake_net:
external: true

View File

@@ -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

View File

@@ -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

View File

@@ -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