asd
This commit is contained in:
@@ -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
|
||||
|
||||
10
ansible/playbooks/roles/docker/monitoring/tasks/main.yaml
Normal file
10
ansible/playbooks/roles/docker/monitoring/tasks/main.yaml
Normal 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
|
||||
@@ -7,3 +7,7 @@ services:
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:80"
|
||||
networks:
|
||||
snake_net:
|
||||
external: true
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user