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:
parent
16a37c3cf1
commit
952ed76979
@ -175,6 +175,20 @@ meshcentral_files_dir: "/mnt/mesh/meshcentral-files"
|
||||
meshcentral_backup_dir: "/mnt/mesh/meshcentral-backup"
|
||||
meshcentral_port: "45131"
|
||||
|
||||
grafana_base_dir: "/opt/grafana"
|
||||
grafana_data_dir: "{{ grafana_base_dir }}/data"
|
||||
grafana_port: "45132"
|
||||
# Grafana
|
||||
grafana_base_dir: /mnt/grafana
|
||||
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
|
||||
|
||||
|
||||
9
roles/grafana/files/vmagent.yaml
Normal file
9
roles/grafana/files/vmagent.yaml
Normal 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 %}
|
||||
52
roles/grafana/tasks/main.yml
Normal file
52
roles/grafana/tasks/main.yml
Normal 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
|
||||
57
roles/grafana/templates/docker-compose.yml.j2
Normal file
57
roles/grafana/templates/docker-compose.yml.j2
Normal 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
|
||||
Loading…
Reference in New Issue
Block a user