Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f7e6db261 |
@@ -38,8 +38,6 @@ jobs:
|
|||||||
apt-get update && apt-get install -y python3 python3-pip openssh-client bash git
|
apt-get update && apt-get install -y python3 python3-pip openssh-client bash git
|
||||||
pip3 install --upgrade pip
|
pip3 install --upgrade pip
|
||||||
pip3 install ansible
|
pip3 install ansible
|
||||||
ansible-galaxy collection install community.docker:">=3.5.0"
|
|
||||||
|
|
||||||
|
|
||||||
- name: Setup SSH
|
- name: Setup SSH
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Install Docker
|
- name: Install Docker
|
||||||
shell: curl -fsSL https://get.docker.com | bash
|
shell: curl -fsSL https://get.docker.com | sh
|
||||||
args:
|
args:
|
||||||
creates: /usr/bin/docker
|
creates: /usr/bin/docker
|
||||||
|
|
||||||
|
|||||||
@@ -1,33 +1,21 @@
|
|||||||
|
---
|
||||||
- hosts: all
|
- hosts: all
|
||||||
become: true
|
become: true
|
||||||
vars:
|
vars:
|
||||||
monitor_dir: /opt/docker/monitoring
|
monitor_dir: /opt/docker/monitoring
|
||||||
docker_network: monitoring
|
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ensure monitoring directory exists
|
- name: Create monitoring directory
|
||||||
file:
|
file:
|
||||||
path: "{{ monitor_dir }}"
|
path: "{{ monitor_dir }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0755'
|
|
||||||
|
|
||||||
- name: Copy monitoring stack
|
- name: Copy monitoring stack
|
||||||
copy:
|
copy:
|
||||||
src: ../../docker/monitoring/
|
src: ../../docker/monitoring/
|
||||||
dest: "{{ monitor_dir }}"
|
dest: "{{ monitor_dir }}"
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: '0755'
|
|
||||||
|
|
||||||
- name: Ensure monitoring Docker network exists
|
- name: Start monitoring
|
||||||
docker_network:
|
command: docker compose up -d
|
||||||
name: "{{ docker_network }}"
|
args:
|
||||||
state: present
|
chdir: "{{ monitor_dir }}"
|
||||||
|
|
||||||
- name: Start monitoring stack
|
|
||||||
community.docker.docker_compose_v2:
|
|
||||||
project_src: "{{ monitor_dir }}"
|
|
||||||
project_name: monitoring
|
|
||||||
state: present
|
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
- 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
|
|
||||||
project_name: monitoring
|
|
||||||
state: present
|
|
||||||
restarted: true
|
|
||||||
@@ -7,7 +7,3 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "8080:80"
|
- "8080:80"
|
||||||
networks:
|
|
||||||
snake_net:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,6 @@
|
|||||||
group: root
|
group: root
|
||||||
mode: '0755'
|
mode: '0755'
|
||||||
|
|
||||||
- name: Ensure snake_net exists
|
|
||||||
docker_network:
|
|
||||||
name: snake_net
|
|
||||||
state: present
|
|
||||||
|
|
||||||
# Login to private registry
|
# Login to private registry
|
||||||
- name: Login to private registry
|
- name: Login to private registry
|
||||||
docker_login:
|
docker_login:
|
||||||
@@ -36,8 +31,6 @@
|
|||||||
ports:
|
ports:
|
||||||
- "8080:80" # host port → container port
|
- "8080:80" # host port → container port
|
||||||
pull: yes
|
pull: yes
|
||||||
networks:
|
|
||||||
- name: snake_net
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +1,45 @@
|
|||||||
|
---
|
||||||
version: '3.8'
|
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:8081/status
|
||||||
|
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:
|
networks:
|
||||||
snake_net:
|
snake_net:
|
||||||
external: true
|
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
|
|
||||||
|
|||||||
@@ -10,17 +10,3 @@ scrape_configs:
|
|||||||
- job_name: 'nginx'
|
- job_name: 'nginx'
|
||||||
static_configs:
|
static_configs:
|
||||||
- targets: ['nginx-prometheus-exporter:9113']
|
- 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
|
|
||||||
Reference in New Issue
Block a user