victoriametrics_cluster

Ansible роль victoriametrics_cluster

Роль для установки кластера VictoriaMetrics

GitHub Версия Проблемы Запросы на изменение Скачивания
github Version Issues PullRequests Ansible Role

Пример плейбука

Этот пример взят из molecule/default/converge.yml и тестируется при каждом пуше, запросе на изменение и релизе.

---
- name: Converge
  hosts: all
  become: true

  pre_tasks:
    - name: Обновить кеш apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'
      changed_when: false

  roles:
    - role: buluma.victoriametrics_cluster

Машина должна быть подготовлена. В CI это делается с помощью molecule/default/prepare.yml:

---
- name: Prepare
  hosts: all
  gather_facts: true
  pre_tasks:
    - name: Обновить кеш apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'
      changed_when: false

Смотрите также полное объяснение и пример о том, как использовать эти роли.

Переменные роли

Значения по умолчанию для переменных установлены в defaults/main.yml:

---
# настройки по умолчанию для всех узлов VictoriaMetrics
victoriametrics_repo_url: "https://github.com/VictoriaMetrics/VictoriaMetrics"
victoriametrics_download_url: "{{ victoriametrics_repo_url }}/releases/download/{{ victoriametrics_version }}/victoria-metrics-amd64-{{ victoriametrics_version }}-cluster.tar.gz"
victoriametrics_version: "v1.58.0"
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"
victoriametrics_vmstorage_service_args: "-search.maxUniqueTimeseries=3000000"

# переменные для узлов vmselect
victoriametrics_vmselect_cache_dir: "/usr/local/bin/victoria-cache"
victoriametrics_vmselect_service_args: "-search.maxPointsPerTimeseries=1000000000 -search.maxQueryDuration=120s"
victoriametrics_vmselect_memory_allowed_percent: "60"

# переменные для узлов vminsert
victoriametrics_vminsert_service_args: ""
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 }}"

# переменные для включения сервисов
victoriametrics_vminsert_service_enabled: true
victoriametrics_vmselect_service_enabled: true
victoriametrics_vmstorage_service_enabled: true

# настройки sysctl. подробнее :
custom_sysctl:
# http://www.nateware.com/linux-network-tuning-for-2013.html
# Увеличение лимитов TCP-буферов для Linux
# Установите максимум на 16 МБ для 1GE и 32M (33554432) или 54M (56623104) для 10GE
# Не устанавливайте tcp_mem сами! Позвольте ядру масштабировать это на основе ОЗУ.
  - { name: net.core.rmem_max, value: 16777216 }
  - { name: net.core.wmem_max, value: 16777216 }
  - { name: net.core.rmem_default, value: 16777216 }
  - { name: net.core.wmem_default, value: 16777216 }
  - { name: net.core.optmem_max, value: 40960 }
# cloudflare использует это для балансировки задержки и пропускной способности
# https://blog.cloudflare.com/the-story-of-one-latency-spike/
  - { name: net.ipv4.tcp_rmem, value: 4096 1048576 2097152 }
# net.ipv4.tcp_rmem, value: 4096 87380 16777216 }
  - { name: net.ipv4.tcp_wmem, value: 4096 65536 16777216 }
# Также увеличьте максимальный пакет backlog
  - { name: net.core.netdev_budget, value: 50000 }
  - { name: net.core.netdev_max_backlog, value: 100000 }
# Освободите пространство для большего количества сокетов TIME_WAIT, поскольку клиентов больше,
# и разрешите их повторное использование, если у нас закончились сокеты
  - { name: net.ipv4.tcp_max_syn_backlog, value: 30000 }
  - { name: net.ipv4.tcp_max_tw_buckets, value: 2000000 }
  - { name: net.ipv4.tcp_tw_reuse, value: 1 }
  - { name: net.ipv4.tcp_fin_timeout, value: 10 }
# Отключить медленный старт TCP на неактивных соединениях
  - { name: net.ipv4.tcp_slow_start_after_idle, value: 0 }
# максимальное количество открытых файлов https://medium.com/@muhammadtriwibowo/set-permanently-ulimit-n-open-files-in-ubuntu-4d61064429a
  - { name: fs.file-max, value: 65535 }

Требования

Контекст

Эта роль является частью многих совместимых ролей. Ознакомьтесь с документацией этих ролей для получения дополнительной информации.

Вот краткий обзор связанных ролей:

dependencies

Совместимость

Эта роль тестировалась на следующих контейнерных образах:

контейнер теги
EL 7, 8

Минимальная версия Ansible, требуемая для работы, — это 2.4. Тесты проводились на:

  • Предыдущей версии.
  • Текущей версии.
  • Версии разработки.

Если вы обнаружите проблемы, пожалуйста, зарегистрируйте их в GitHub

Журнал изменений

История роли

Лицензия

Apache-2.0

Информация об авторе

Shadow Walker

О проекте

Role for installing VictoriaMetrics Cluster

Установить
ansible-galaxy install buluma/ansible-role-victoriametrics_cluster
Лицензия
apache-2.0
Загрузки
853
Владелец
DevOps Engineer