slapper.ansible_victoriametrics_cluster_role

Rôle Ansible : Installer VictoriaMetrics en mode cluster

Rôle Ansible pour installer ou mettre à jour le cluster VictoriaMetrics, inspiré de la version autonome : https://github.com/dreamteam-gg/ansible-victoriametrics-role. Merci à @dreamteam-gg.

Testé sur Centos 7 et Centos 8, mais cela devrait fonctionner sur d'autres distributions avec quelques ajustements mineurs :-)

Exigences

Aucune.

Inventaire Ansible

Pour utiliser ce rôle, créez votre fichier d'inventaire avec ces 3 groupes :

  • vmstorage (pour les nœuds de stockage)
  • vmselect (pour les nœuds de sélection)
  • vminsert (pour les nœuds d'insertion)

Plus d'infos ici : https://github.com/VictoriaMetrics/VictoriaMetrics/tree/cluster#architecture-overview

[vmstorage]
vmstorage01.example.com
vmstorage02.example.com
vmstorage03.example.com
vmstorage04.example.com

[vminsert]
vminsert01.example.com
vminsert02.example.com

[vmselect]
vmselect01.example.com
vmselect02.example.com

Variables du rôle

Les variables par défaut du rôle. Vous pouvez les remplacer au niveau du rôle ou du playbook.

---
## réglages par défaut pour tous les nœuds de VictoriaMetrics
victoriametrics_repo_url: "https://github.com/VictoriaMetrics/VictoriaMetrics"
victoriametrics_download_url: "{{ victoriametrics_repo_url }}/releases/download/{{ victoriametrics_version }}/victoria-metrics-{{ victoriametrics_version }}-cluster.tar.gz"
victoriametrics_version: "v1.34.6"
victoriametrics_system_user: "victoria"
victoriametrics_system_group: "victoria"

## variables pour les nœuds vmstorage
victoriametrics_vmstorage_data_dir: "/usr/local/bin/victoria-storage"
victoriametrics_vmstorage_retention_period: "24"
victoriametrics_vmstorage_memory_allowed_percent: "60" # 60 est la valeur par défaut 
victoriametrics_vmstorage_service_args: "" # Ajoutez des variables supplémentaires ici. Plus d'options trouvées avec vmstorage-prod --help

## variables pour les nœuds vmselect
victoriametrics_vmselect_cache_dir: "/usr/local/bin/victoria-cache"
victoriametrics_vmselect_memory_allowed_percent: "60"
victoriametrics_vmselect_service_args: "" # Ajoutez des variables supplémentaires ici. Plus d'options trouvées avec vmselect-prod --help

## variables pour les nœuds vminsert
victoriametrics_vminsert_service_args: "" # Ajoutez des variables supplémentaires ici. Plus d'options trouvées avec vminsert-prod --help
victoriametrics_vminsert_memory_allowed_percent: "60"

# variables pour l'adresse d'écoute du service
victoriametrics_vmstorage_listen_address: "{{ ansible_default_ipv4.address }}"
victoriametrics_vmselect_listen_address: "{{ ansible_default_ipv4.address }}"
victoriametrics_vminsert_listen_address: "{{ ansible_default_ipv4.address }}"

Exemple de Playbook pour l'installation initiale

---
- hosts: vmstorage,vminsert,vmselect
  become: yes

  roles:
   - ansible-victoriametrics-cluster-role

Exemple de Playbook pour mettre à jour votre cluster

---
- hosts: vminsert,vmselect,vmstorage
  become: true
  gather_facts: true

  tasks:
    - name: Rassembler des informations sur les nœuds victoria
      setup:

- hosts: vminsert,vmselect,vmstorage
  gather_facts: false
  become: true
  serial: 1

  vars:
    - victoriametrics_version: "v1.40.0"

Extras

Pour utiliser VictoriaMetrics, vous avez besoin d'un équilibreur de charge HTTP :-)

Dans mon cas, j'ai utilisé Haproxy. Voici une configuration simple pour vos nœuds vminsert et vmselect. Si vous ajoutez plus de nœuds vmselect ou vminsert, n'oubliez pas de mettre à jour votre configuration Haproxy en conséquence.

#---------------------------------------------------------------------
# Paramètres globaux
#---------------------------------------------------------------------
global
    # pour que ces messages se retrouvent dans /var/log/haproxy.log, vous devez
    # :
    #
    # 1) configurer syslog pour accepter les événements de journalisation réseau. Ceci se fait
    #    en ajoutant l'option '-r' aux SYSLOGD_OPTIONS dans
    #    /etc/sysconfig/syslog
    #
    # 2) configurer les événements local2 pour aller au fichier /var/log/haproxy.log
    #   Une ligne comme celle-ci peut être ajoutée à
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log          127.0.0.1 local2
    log-send-hostname
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     40000
    user        haproxy
    group       haproxy
    daemon

    # activer le socket d'état unix
    stats socket /run/haproxy.sock mode 666 level admin
    # utiliser les politiques de cryptage à l'échelle du système
    ssl-default-bind-ciphers PROFILE=SYSTEM
    ssl-default-server-ciphers PROFILE=SYSTEM

#---------------------------------------------------------------------
# défauts communs que toutes les sections 'listen' et 'backend' utiliseront
# si elles ne sont pas désignées dans leur bloc
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 30000
    balance
#---------------------------------------------------------------------
# frontend principal vminsert et vmselect
#---------------------------------------------------------------------

frontend vminsert
bind 0.0.0.0:8480
  mode http
  log global
  default_backend vminsert_nodes

frontend vmselect
bind 0.0.0.0:8481
  mode http
  log global
  default_backend vmselect_nodes


frontend stats
bind 0.0.0.0:10010
    mode http
    stats enable
    stats uri /stats
    stats realm HAProxy\ Statistics
    stats auth admin:admin
    stats admin if TRUE
#---------------------------------------------------------------------
# équilibrage round robin entre vminsert et vmselect
#---------------------------------------------------------------------

backend vminsert_nodes
    mode http
    balance roundrobin
    option httpchk GET /health
    http-check expect string OK
    default-server inter 5s fall 3 rise 2
    server vminsert01 10.10.10.100:8480 check
    server vminsert02 10.10.10.101:8480 check

backend vmselect_nodes
    mode http
    balance roundrobin
    option httpchk GET /health
    http-check expect string OK
    default-server inter 5s fall 3 rise 2
    server vmselect01 10.10.10.102:8481 check
    server vmselect02 10.10.10.103:8481 check

À faire

Ajouter la fonctionnalité d'installation et de configuration de Haproxy dans le rôle.

Licence

BSD

Informations sur l'auteur

@Mtsa miltsatsakis@gmail.com

À propos du projet

Role for installing VictoriaMetrics Cluster

Installer
ansible-galaxy install slapper.ansible_victoriametrics_cluster_role
Licence
Unknown
Téléchargements
10.5k
Propriétaire