slapper.ansible_victoriametrics_cluster_role

Ansible 角色:以集群模式安装 VictoriaMetrics

Ansible 角色用于安装或升级 VictoriaMetrics 集群,灵感来源于独立版本:https://github.com/dreamteam-gg/ansible-victoriametrics-role。感谢 @dreamteam-gg

该角色已在 Centos 7Centos 8 上测试,但在其他发行版上也应能正常工作,稍作调整即可 :-)

要求

无。

Ansible 清单

要使用此角色,请创建包含以下 3 个组的清单文件:

  • vmstorage(用于存储节点)
  • vmselect(用于选择节点)
  • vminsert(用于插入节点)

更多信息请见: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

角色变量

角色的默认变量。您可以在角色或剧本级别覆盖它们。

---
## 所有 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"

## vmstorage 节点的变量
victoriametrics_vmstorage_data_dir: "/usr/local/bin/victoria-storage"
victoriametrics_vmstorage_retention_period: "24"
victoriametrics_vmstorage_memory_allowed_percent: "60" # 60 是默认值
victoriametrics_vmstorage_service_args: "" # 在此添加额外的变量。使用 vmstorage-prod --help 可以找到更多选项

## vmselect 节点的变量
victoriametrics_vmselect_cache_dir: "/usr/local/bin/victoria-cache"
victoriametrics_vmselect_memory_allowed_percent: "60"
victoriametrics_vmselect_service_args: "" # 在此添加额外的变量。使用 vmselect-prod --help 可以找到更多选项

## vminsert 节点的变量
victoriametrics_vminsert_service_args: "" # 在此添加额外的变量。使用 vminsert-prod --help 可以找到更多选项
victoriametrics_vminsert_memory_allowed_percent: "60"

# 服务的监听地址变量
victoriametrics_vmstorage_listen_address: "{{ ansible_default_ipv4.address }}"
victoriametrics_vmselect_listen_address: "{{ ansible_default_ipv4.address }}"
victoriametrics_vminsert_listen_address: "{{ ansible_default_ipv4.address }}"

初始安装的示例剧本

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

  roles:
   - ansible-vicotriametrics-cluster-role

更新集群的示例剧本

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

  tasks:
    - name: 收集 Victoria 节点的信息
      setup:

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

  vars:
    - victoriametrics_version: "v1.40.0"

额外信息

为了使用 VictoriaMetrics,您需要一个 HTTP 负载均衡器 :-)

在我的情况下,我使用了 Haproxy。以下是 vminsert 和 vmselect 节点的简单配置。如果您添加更多 vmselect 或 vminsert 节点,请务必相应更新 Haproxy 配置。

#---------------------------------------------------------------------
# 全局设置
#---------------------------------------------------------------------
global
    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

    stats socket /run/haproxy.sock mode 666 level admin
    ssl-default-bind-ciphers PROFILE=SYSTEM
    ssl-default-server-ciphers PROFILE=SYSTEM

#---------------------------------------------------------------------
# 所有 'listen''backend' 部分将使用的默认设置
#---------------------------------------------------------------------
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
#---------------------------------------------------------------------
# 主要前端 vminsert 和 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
#---------------------------------------------------------------------
# 在 vminsert 和 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

待办事项

在角色中添加 Haproxy 的安装和配置功能。

许可证

BSD

作者信息

@Mtsa miltsatsakis@gmail.com

关于项目

Role for installing VictoriaMetrics Cluster

安装
ansible-galaxy install slapper.ansible_victoriametrics_cluster_role
许可证
Unknown
下载
10.5k
拥有者