Update 3 files
- /roles/docker/tasks/main.yml - /roles/grafana/templates/vmagent.yaml.j2 - /group_vars/all.yml
This commit is contained in:
parent
e017af1504
commit
64ad0c49bc
@ -25,14 +25,14 @@ monitoring_groups:
|
|||||||
- "{{ server_ips.manage }}"
|
- "{{ server_ips.manage }}"
|
||||||
|
|
||||||
# Серверы с Docker (cAdvisor)
|
# Серверы с Docker (cAdvisor)
|
||||||
cadvisor_servers:
|
#cadvisor_servers:
|
||||||
- "{{ server_ips.gateway }}"
|
# - "{{ server_ips.gateway }}"
|
||||||
- "{{ server_ips.data }}"
|
# - "{{ server_ips.data }}"
|
||||||
- "{{ server_ips.media }}"
|
# - "{{ server_ips.media }}"
|
||||||
- "{{ server_ips.photo }}"
|
# - "{{ server_ips.photo }}"
|
||||||
- "{{ server_ips.talk }}"
|
# - "{{ server_ips.talk }}"
|
||||||
- "{{ server_ips.games }}"
|
# - "{{ server_ips.games }}"
|
||||||
- "{{ server_ips.manage }}"
|
# - "{{ server_ips.manage }}"
|
||||||
|
|
||||||
# Proxmox VE
|
# Proxmox VE
|
||||||
proxmox_servers:
|
proxmox_servers:
|
||||||
@ -52,7 +52,7 @@ monitoring_groups:
|
|||||||
# ------------ Порты для сервисов мониторинга ------------
|
# ------------ Порты для сервисов мониторинга ------------
|
||||||
monitoring_ports:
|
monitoring_ports:
|
||||||
node_exporter: 9100
|
node_exporter: 9100
|
||||||
cadvisor: 8080
|
#cadvisor: 8080
|
||||||
proxmox_exporter: 9223
|
proxmox_exporter: 9223
|
||||||
vmagent: 8429
|
vmagent: 8429
|
||||||
victoriametrics: 8428
|
victoriametrics: 8428
|
||||||
|
|||||||
@ -60,4 +60,98 @@
|
|||||||
|
|
||||||
- name: Show Docker Compose version
|
- name: Show Docker Compose version
|
||||||
debug:
|
debug:
|
||||||
msg: "Docker Compose version: {{ docker_compose_version.stdout }}"
|
msg: "Docker Compose version: {{ docker_compose_version.stdout }}"
|
||||||
|
|
||||||
|
- name: Setup Docker monitoring
|
||||||
|
block:
|
||||||
|
- name: Create scripts directory
|
||||||
|
file:
|
||||||
|
path: /opt/scripts
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Deploy Docker metrics script
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
#!/bin/bash
|
||||||
|
# Docker metrics script for Node Exporter textfile collector
|
||||||
|
|
||||||
|
OUTFILE="/var/lib/node_exporter/textfile_collector/docker_metrics.prom"
|
||||||
|
|
||||||
|
# Get container counts
|
||||||
|
TOTAL_CONTAINERS=$(docker ps -a -q 2>/dev/null | wc -l)
|
||||||
|
RUNNING_CONTAINERS=$(docker ps -q 2>/dev/null | wc -l)
|
||||||
|
EXITED_CONTAINERS=$((TOTAL_CONTAINERS - RUNNING_CONTAINERS))
|
||||||
|
|
||||||
|
# Write metrics in Prometheus format
|
||||||
|
cat << EOF > $OUTFILE
|
||||||
|
# HELP docker_containers_total Total number of Docker containers
|
||||||
|
# TYPE docker_containers_total gauge
|
||||||
|
docker_containers_total $TOTAL_CONTAINERS
|
||||||
|
# HELP docker_containers_running Number of running Docker containers
|
||||||
|
# TYPE docker_containers_running gauge
|
||||||
|
docker_containers_running $RUNNING_CONTAINERS
|
||||||
|
# HELP docker_containers_exited Number of exited Docker containers
|
||||||
|
# TYPE docker_containers_exited gauge
|
||||||
|
docker_containers_exited $EXITED_CONTAINERS
|
||||||
|
EOF
|
||||||
|
dest: /opt/scripts/docker_metrics.sh
|
||||||
|
mode: '0755'
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Create systemd service for Docker metrics
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
[Unit]
|
||||||
|
Description=Docker metrics script
|
||||||
|
After=docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=root
|
||||||
|
ExecStart=/opt/scripts/docker_metrics.sh
|
||||||
|
dest: /etc/systemd/system/docker-metrics.service
|
||||||
|
mode: '0644'
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Create systemd timer for Docker metrics
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
[Unit]
|
||||||
|
Description=Run Docker metrics every 30 seconds
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
OnBootSec=1min
|
||||||
|
OnUnitActiveSec=30s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
|
dest: /etc/systemd/system/docker-metrics.timer
|
||||||
|
mode: '0644'
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Ensure Node Exporter textfile directory exists
|
||||||
|
file:
|
||||||
|
path: /var/lib/node_exporter/textfile_collector
|
||||||
|
state: directory
|
||||||
|
owner: node_exporter
|
||||||
|
group: node_exporter
|
||||||
|
mode: '0755'
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Enable and start Docker metrics timer
|
||||||
|
systemd:
|
||||||
|
name: docker-metrics.timer
|
||||||
|
enabled: yes
|
||||||
|
state: started
|
||||||
|
daemon_reload: yes
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Test Docker metrics script
|
||||||
|
command: /opt/scripts/docker_metrics.sh
|
||||||
|
register: metrics_test
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Show Docker metrics test result
|
||||||
|
debug:
|
||||||
|
var: metrics_test.stdout
|
||||||
@ -19,20 +19,20 @@ scrape_configs:
|
|||||||
regex: '(.*):{{ monitoring_ports.node_exporter }}'
|
regex: '(.*):{{ monitoring_ports.node_exporter }}'
|
||||||
replacement: '${1}'
|
replacement: '${1}'
|
||||||
|
|
||||||
# ========== cAdvisor для мониторинга Docker на всех серверах ==========
|
# # ========== cAdvisor для мониторинга Docker на всех серверах ==========
|
||||||
- job_name: 'cadvisor'
|
# - job_name: 'cadvisor'
|
||||||
static_configs:
|
# static_configs:
|
||||||
- targets:
|
# - targets:
|
||||||
{% for server in monitoring_groups.cadvisor_servers %}
|
#{% for server in monitoring_groups.cadvisor_servers %}
|
||||||
- '{{ server }}:{{ monitoring_ports.cadvisor }}'
|
# - '{{ server }}:{{ monitoring_ports.cadvisor }}'
|
||||||
{% endfor %}
|
#{% endfor %}
|
||||||
scrape_interval: 30s
|
# scrape_interval: 30s
|
||||||
metrics_path: /metrics
|
# metrics_path: /metrics
|
||||||
relabel_configs:
|
# relabel_configs:
|
||||||
- source_labels: [__address__]
|
# - source_labels: [__address__]
|
||||||
target_label: instance
|
# target_label: instance
|
||||||
regex: '(.*):{{ monitoring_ports.cadvisor }}'
|
# regex: '(.*):{{ monitoring_ports.cadvisor }}'
|
||||||
replacement: '${1}'
|
# replacement: '${1}'
|
||||||
|
|
||||||
# ========== Proxmox VE ==========
|
# ========== Proxmox VE ==========
|
||||||
- job_name: 'proxmox'
|
- job_name: 'proxmox'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user