victoriametrics_cluster
Ansible роль victoriametrics_cluster
Роль для установки кластера VictoriaMetrics
GitHub | Версия | Проблемы | Запросы на изменение | Скачивания |
---|---|---|---|---|
Пример плейбука
Этот пример взят из 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 }
Требования
- пакеты pip, указанные в requirements.txt.
Контекст
Эта роль является частью многих совместимых ролей. Ознакомьтесь с документацией этих ролей для получения дополнительной информации.
Вот краткий обзор связанных ролей:
Совместимость
Эта роль тестировалась на следующих контейнерных образах:
контейнер | теги |
---|---|
EL | 7, 8 |
Минимальная версия Ansible, требуемая для работы, — это 2.4. Тесты проводились на:
- Предыдущей версии.
- Текущей версии.
- Версии разработки.
Если вы обнаружите проблемы, пожалуйста, зарегистрируйте их в GitHub
Журнал изменений
Лицензия
Информация об авторе
ansible-galaxy install buluma/ansible-role-victoriametrics_cluster