r/v-m: Add role for Victoria Metrics
The *victoria-metrics* role deploys a single-server instance of the Victoria Metrics time series database server. It installs the selected version by downloading the binary release from Github and copying it to `/usr/local/sbin` on the managed node. Scrape configuration is optional and can be specified with the `scrape_configs` variable.btop
parent
8176eaf694
commit
0785fda26b
|
@ -1,2 +1,4 @@
|
||||||
/.vault-secret.gpg
|
/.vault-secret.gpg
|
||||||
.fact-cache
|
.fact-cache
|
||||||
|
/victoria-metrics-*.tar.gz
|
||||||
|
/victoria-metrics-*/
|
||||||
|
|
2
hosts
2
hosts
|
@ -154,6 +154,8 @@ smtp1.pyrocufflink.blue
|
||||||
[synapse]
|
[synapse]
|
||||||
matrix0.pyrocufflink.blue
|
matrix0.pyrocufflink.blue
|
||||||
|
|
||||||
|
[victoria-metrics]
|
||||||
|
|
||||||
[vm-hosts]
|
[vm-hosts]
|
||||||
|
|
||||||
[wheelhost]
|
[wheelhost]
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
vm_version: 1.72.0
|
||||||
|
|
||||||
|
vm_retention_period: 12
|
||||||
|
vm_self_scrape: true
|
||||||
|
vm_self_scrape_interval: '{{ vm_default_scrape_interval|d("1m") }}'
|
||||||
|
|
||||||
|
vm_scrape_configs: []
|
||||||
|
|
||||||
|
vm_config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 1m
|
||||||
|
|
||||||
|
scrape_configs: "{{ vm_scrape_configs }}"
|
|
@ -0,0 +1,15 @@
|
||||||
|
[Unit]
|
||||||
|
Description=VictoriaMetrics
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=exec
|
||||||
|
Environment=httpListenAddr=[::1]:8428
|
||||||
|
Environment=storageDataPath=/var/lib/victoria-metrics/data
|
||||||
|
Environment=loggerDisableTimestamps=true
|
||||||
|
EnvironmentFile=-/etc/sysconfig/victoria-metrics
|
||||||
|
ExecStart=/usr/local/sbin/victoria-metrics -enableTCP6 -envflag.enable
|
||||||
|
User=victoriametrics
|
||||||
|
LimitNOFILE=1048576
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,14 @@
|
||||||
|
- name: reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: true
|
||||||
|
|
||||||
|
- name: restart victoria-metrics
|
||||||
|
service:
|
||||||
|
name: victoria-metrics
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: reload victoria-metrics
|
||||||
|
uri:
|
||||||
|
url: http://localhost:8428/-/reload
|
||||||
|
status_code: 204
|
||||||
|
changed_when: true
|
|
@ -0,0 +1,73 @@
|
||||||
|
- name: ensure victoria metrics user exists
|
||||||
|
user:
|
||||||
|
name: victoriametrics
|
||||||
|
system: true
|
||||||
|
home: /var/lib/victoria-metrics
|
||||||
|
createhome: false
|
||||||
|
shell: /sbin/nologin
|
||||||
|
state: present
|
||||||
|
tags:
|
||||||
|
- user
|
||||||
|
|
||||||
|
- name: ensure victoria metrics data data directory exists
|
||||||
|
file:
|
||||||
|
path: /var/lib/victoria-metrics
|
||||||
|
owner: victoriametrics
|
||||||
|
group: victoriametrics
|
||||||
|
mode: u=rwx,go=rx
|
||||||
|
state: directory
|
||||||
|
tags:
|
||||||
|
- datadir
|
||||||
|
|
||||||
|
- name: ensure /etc/sysconfig directory exists
|
||||||
|
file:
|
||||||
|
path: /etc/sysconfig
|
||||||
|
mode: u=rwx,go=rx
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
state: directory
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
- name: ensure victoria metrics is configured
|
||||||
|
template:
|
||||||
|
src: victoria-metrics.sysconfig.j2
|
||||||
|
dest: /etc/sysconfig/victoria-metrics
|
||||||
|
mode: '0644'
|
||||||
|
notify:
|
||||||
|
- restart victoria-metrics
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
||||||
|
- name: ensure victoria metrics config directory exists
|
||||||
|
file:
|
||||||
|
path: /etc/victoria-metrics
|
||||||
|
mode: '0755'
|
||||||
|
state: directory
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
- name: ensure victoria metrics scrape configuration is set
|
||||||
|
copy:
|
||||||
|
dest: /etc/victoria-metrics/scrape.yml
|
||||||
|
content: '{{ vm_config|to_nice_yaml(indent=2) }}'
|
||||||
|
mode: '0644'
|
||||||
|
when: vm_config is not none
|
||||||
|
notify:
|
||||||
|
- reload victoria-metrics
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
- scrape-config
|
||||||
|
|
||||||
|
- name: ensure victoria metrics starts at boot
|
||||||
|
service:
|
||||||
|
name: victoria-metrics
|
||||||
|
enabled: true
|
||||||
|
tags:
|
||||||
|
- service
|
||||||
|
- systemd
|
||||||
|
- name: ensure victoria metrics is running
|
||||||
|
service:
|
||||||
|
name: victoria-metrics
|
||||||
|
state: started
|
||||||
|
tags:
|
||||||
|
- service
|
||||||
|
- systemd
|
|
@ -0,0 +1,61 @@
|
||||||
|
- name: load installation variables
|
||||||
|
include_vars: install.yml
|
||||||
|
|
||||||
|
- name: load architecture variables
|
||||||
|
include_vars: '{{ item }}'
|
||||||
|
with_first_found:
|
||||||
|
- '{{ ansible_architecture }}.yml'
|
||||||
|
- arch-defaults.yml
|
||||||
|
|
||||||
|
- name: ensure victoria metrics release archive is available
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
get_url:
|
||||||
|
url: '{{ vm_tar_url }}'
|
||||||
|
checksum: 'sha256:{{ vm_cksm_url }}'
|
||||||
|
dest: '{{ playbook_dir }}/{{ vm_tar_name }}'
|
||||||
|
tags:
|
||||||
|
- download
|
||||||
|
|
||||||
|
- name: ensure victoria metrics unpack dir exists locally
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
file:
|
||||||
|
path: '{{ vm_extract_dir }}'
|
||||||
|
mode: '0755'
|
||||||
|
state: directory
|
||||||
|
tags:
|
||||||
|
- unarchive
|
||||||
|
|
||||||
|
- name: ensure victoria metrics archive is unpacked locally
|
||||||
|
delegate_to: localhost
|
||||||
|
become: false
|
||||||
|
unarchive:
|
||||||
|
src: '{{ playbook_dir }}/{{ vm_tar_name }}'
|
||||||
|
dest: '{{ vm_extract_dir }}'
|
||||||
|
remote_src: true
|
||||||
|
creates: '{{ vm_extract_dir }}/victoria-metrics-prod'
|
||||||
|
tags:
|
||||||
|
- unarchive
|
||||||
|
|
||||||
|
- name: ensure victoria metrics is installed
|
||||||
|
copy:
|
||||||
|
src: '{{ vm_extract_dir }}/victoria-metrics-prod'
|
||||||
|
dest: /usr/local/sbin/victoria-metrics
|
||||||
|
mode: '0755'
|
||||||
|
diff: false
|
||||||
|
notify:
|
||||||
|
- restart victoria-metrics
|
||||||
|
|
||||||
|
- name: ensure victoria metrics systemd unit is installed
|
||||||
|
file:
|
||||||
|
src: victoria-metrics.service
|
||||||
|
dest: /etc/systemd/system/victoria-metrics.service
|
||||||
|
mode: '0644'
|
||||||
|
notify:
|
||||||
|
- reload systemd
|
||||||
|
- restart victoria-metrics
|
||||||
|
tags:
|
||||||
|
- service
|
||||||
|
- systemd
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
- block:
|
||||||
|
- import_tasks: install.yml
|
||||||
|
tags:
|
||||||
|
- install
|
||||||
|
- import_tasks: deploy.yml
|
||||||
|
tags:
|
||||||
|
- victoria-metrics
|
|
@ -0,0 +1,7 @@
|
||||||
|
retentionPeriod={{ vm_retention_period }}
|
||||||
|
{% if vm_self_scrape|bool %}
|
||||||
|
selfScrapeInterval={{ vm_self_scrape_interval }}
|
||||||
|
{% endif %}
|
||||||
|
{% if vm_config is not none %}
|
||||||
|
promscrape_config=/etc/victoria-metrics/scrape.yml
|
||||||
|
{% endif %}
|
|
@ -0,0 +1,2 @@
|
||||||
|
vm_arch: arm64
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
vm_arch: '{{ ansible_architecture }}'
|
|
@ -0,0 +1,9 @@
|
||||||
|
vm_base_url:
|
||||||
|
https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download
|
||||||
|
vm_tar_name: victoria-metrics-{{ vm_arch }}-v{{ vm_version }}.tar.gz
|
||||||
|
vm_tar_url: >-
|
||||||
|
{{ vm_base_url }}/v{{ vm_version }}/{{ vm_tar_name }}
|
||||||
|
vm_cksm_url: >-
|
||||||
|
{{ vm_base_url }}/v{{ vm_version }}/victoria-metrics-{{ vm_arch }}-v{{ vm_version }}_checksums.txt
|
||||||
|
vm_extract_dir: >-
|
||||||
|
{{ playbook_dir }}/victoria-metrics-{{ vm_arch }}-v{{ vm_version }}
|
|
@ -0,0 +1 @@
|
||||||
|
vm_arch: amd64
|
|
@ -0,0 +1,4 @@
|
||||||
|
- hosts: victoria-metrics
|
||||||
|
roles:
|
||||||
|
- role: victoria-metrics
|
||||||
|
tags: victoria-metrics
|
Loading…
Reference in New Issue