Update 4 files

- /roles/grafana/tasks/main.yml
- /roles/grafana/templates/docker-compose.yml.j2
- /roles/grafana/files/vmagent.yaml
- /group_vars/all.yml
This commit is contained in:
Administrator 2025-11-13 18:37:32 +00:00
parent 16a37c3cf1
commit 952ed76979
4 changed files with 135 additions and 3 deletions

View File

@ -175,6 +175,20 @@ meshcentral_files_dir: "/mnt/mesh/meshcentral-files"
meshcentral_backup_dir: "/mnt/mesh/meshcentral-backup" meshcentral_backup_dir: "/mnt/mesh/meshcentral-backup"
meshcentral_port: "45131" meshcentral_port: "45131"
grafana_base_dir: "/opt/grafana" # Grafana
grafana_data_dir: "{{ grafana_base_dir }}/data" grafana_base_dir: /mnt/grafana
grafana_port: "45132" grafana_data_dir: "{{ grafana_base_dir }}/data" # Grafana DB, plugins, etc.
grafana_config_dir: "{{ grafana_base_dir }}/config" # provisioning (datasources, dashboards)
grafana_vm_data_dir: "{{ grafana_base_dir }}/victoriametrics" # VM data (TSDB)
grafana_vmagent_tmp_dir: "{{ grafana_base_dir }}/vmagent/tmp" # vmagent temp files
grafana_vmagent_config: "{{ grafana_base_dir }}/vmagent/vmagent.yaml"
grafana_port: 3000
grafana_admin_user: admin
grafana_admin_password: 13qeadZC
grafana_root_url: https://mon.zailon.ru
victoriametrics_retention_months: 2
victoriametrics_version: v1.101.0
grafana_version: 11.2.0

View File

@ -0,0 +1,9 @@
global:
scrape_interval: 30s
scrape_configs:
- job_name: 'node'
static_configs:
{%- for host in groups['all'] %}
- targets: ['{{ hostvars[host].int_ip }}:9100']
{%- endfor %}

View File

@ -0,0 +1,52 @@
---
- name: Create Grafana directory structure
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: 472
group: 472
mode: '0755'
loop:
- "{{ grafana_base_dir }}"
- "{{ grafana_data_dir }}"
- "{{ grafana_config_dir }}"
- "{{ grafana_vm_data_dir }}"
- "{{ grafana_vmagent_tmp_dir | dirname }}" # создаёт /mnt/grafana/vmagent
- name: Copy vmagent config
ansible.builtin.copy:
src: vmagent.yaml
dest: "{{ grafana_vmagent_config }}"
owner: root
group: root
mode: '0644'
- name: Deploy Grafana docker-compose.yml
ansible.builtin.template:
src: docker-compose.yml.j2
dest: "{{ grafana_base_dir }}/docker-compose.yml"
owner: root
group: root
mode: '0644'
- name: Start Grafana services
ansible.builtin.shell: |
cd "{{ grafana_base_dir }}"
docker compose up -d
args:
executable: /bin/bash
register: grafana_up
changed_when: "'Started' in grafana_up.stdout or 'Recreated' in grafana_up.stdout"
- name: Wait for services to start
ansible.builtin.pause:
seconds: 20
- name: Check Grafana container status
ansible.builtin.shell: docker ps --filter name=grafana
register: grafana_status
changed_when: false
- name: Show Grafana status
ansible.builtin.debug:
var: grafana_status.stdout_lines

View File

@ -0,0 +1,57 @@
version: '3.8'
services:
victoriametrics:
image: victoriametrics/victoria-metrics:{{ victoriametrics_version }}
container_name: victoriametrics
restart: unless-stopped
command:
- '-storageDataPath=/storage'
- '-retentionPeriod={{ victoriametrics_retention_months }}'
- '-selfScrapeInterval=10s'
volumes:
- {{ grafana_vm_data_dir }}:/storage
ports:
- "{{ victoriametrics_port | default(8428) }}:8428"
networks:
- monitoring
vmagent:
image: victoriametrics/vmagent:{{ victoriametrics_version }}
container_name: vmagent
restart: unless-stopped
command:
- '-promscrape.config=/config/vmagent.yaml'
- '-remoteWrite.tmpDataPath=/tmpData'
- '-remoteWrite.url=http://victoriametrics:8428/api/v1/write'
volumes:
- {{ grafana_vmagent_config }}:/config/vmagent.yaml:ro
- {{ grafana_vmagent_tmp_dir }}:/tmpData
depends_on:
- victoriametrics
networks:
- monitoring
grafana:
image: grafana/grafana-oss:{{ grafana_version }}
container_name: grafana
restart: unless-stopped
user: "472"
environment:
- GF_SECURITY_ADMIN_USER={{ grafana_admin_user }}
- GF_SECURITY_ADMIN_PASSWORD={{ grafana_admin_password }}
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL={{ grafana_root_url }}
volumes:
- {{ grafana_data_dir }}:/var/lib/grafana
- {{ grafana_config_dir }}:/etc/grafana/provisioning
ports:
- "{{ grafana_port }}:3000"
depends_on:
- victoriametrics
networks:
- monitoring
networks:
monitoring:
driver: bridge