Ядро мониторинга
В этой инструкции рассматривается развёртывание ядра мониторинга в отказоустойчивой конфигурации.
Предполагается, что:
-
Кластеры VictoriaLogs и VictoriaMetrics средствами платформы развёрнуты на одних и тех же узлах и доступны через VIP.
-
Секреты для доступа к VictoriaMetrics и VictoriaLogs хранятся в директории
/victoria/playbooks/tmp/secrets/. -
Кластер PostgreSQL развёрнут средствами платформы и доступен через VIP.
В качестве примера далее используются следующие IP-адреса:
| IP-адрес | Описание |
|---|---|
192.168.0.14 |
VIP, указывающий на мастеры VictoriaMetrics и VictoriaLogs |
192.168.0.24 |
VIP, указывающий на мастер PostgreSQL |
192.168.0.31 |
Узлы для развёртывания ядра мониторинга |
192.168.0.32 |
|
192.168.0.33 |
|
192.168.0.40 |
Управляющий узел Визион |
Виртуальное окружение
Для установки некоторых компонентов необходимы коллекции Ansible.
Они входят в состав виртуального окружения, включённого в архив ansible-ha-victoria-cluster-<version>.tar.gz.
Если виртуальное окружение /opt/skala-r/vision/server/vision_venv/ не существует:
-
Распакуйте архив:
tar -xf ansible-ha-victoria-cluster-<version>.tar.gz -
Запустите скрипт создания и активации виртуального окружения:
sh ansible-ha-victoria-cluster-<version>/venv/activate_venv.shЭтот скрипт создаст виртуальное окружение
/opt/skala-r/vision/server/vision_venv/и активирует его, о чём свидетельствует изменившееся приглашение интерпретатора командной строки, например:(vision_venv) [root@server /tmp]#
Подготовка к работе
Подготовьте управляющий узел к работе:
-
Активируйте виртуальное окружение:
source /opt/skala-r/vision/server/vision_venv/bin/activate -
Распакуйте архив с дистрибутивом:
tar -xvf vision-distrib-1.11-<build>.tar.gz -
Перейдите в директорию с файлами дистрибутива. Далее имена файлов и директорий указываются относительно неё.
-
Запустите скрипт
setup.shи выберите пункт Установить пакет из репозитория дистрибутива. -
В хранилище секретов укажите значение параметра
vault.database.dsn, например:vault.database.dsn: "postgres//<username>:<password>@<VIP>:5432/vision_db"Здесь
<VIP>— VIP, который указывает на мастер PostgreSQL.Пример заполненияvault.database.dsn: "postgresql://vision:vision@192.168.0.24:5432/vision_db"
Установка
Для запуска развёртывания:
-
Перейдите в директорию
ha/. -
Создайте файл инвентаря, например:
all: hosts: core-1.example.com: ansible_host: 192.168.0.31 core-2.example.com: ansible_host: 192.168.0.32 core-3.example.com: ansible_host: 192.168.0.33 vars: ansible_user: root ansible_ssh_pass: "<password>" ansible_become_user: "<become_user>" ansible_become_password: "<become_password>"Пример заполнения доступен в директории inventories/example/. -
Заполните конфигурационный файл
playbooks/ha-core/group_vars/all/external_services.yml.Рассмотрим заполнение этого файла на примере.
Для защиты подключений используются корневые сертификаты, сертификаты и ключи, созданные во время развёртывания кластеров VictoriaMetrics и VictoriaLogs и хранящиеся в директории
/victoria/playbooks/tmp/secrets/.-
Чтобы включить защиту подключений с помощью TLS, присвойте параметру
common_ca_enabledзначениеtrue:common_ca_enabled: true -
Добавьте пути к файлу корневого сертификата и его ключа:
common_ca_cert_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.crt" common_ca_key_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.key" -
Проверьте содержимое файла
/victoria/playbooks/tmp/secrets/192.169.0.14_vmauth_external_user_password. Он содержит пароль авторизации BasicAuth. -
Добавьте имена пользователей и пароли для подключения к vlagent и vmagent с авторизацией BasicAuth. В этом примере в обоих случаях используется имя пользователя
visionи пароль, полученный на предыдущем шаге.victorialogs_basic_auth_username: "vision" victoriametrics_basic_auth_username: "vision" victorialogs_basic_auth_password: "IbnxwZ2p3WeNioDM" victoriametrics_basic_auth_password: "IbnxwZ2p3WeNioDM" -
Добавьте пути к файлам корневого сертификата, сертификата и приватного ключа VictoriaLogs и VictoriaMetrics:
victorialogs_tls_ca_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.crt" victorialogs_tls_cert_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.crt" victorialogs_tls_key_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.key" victoriametrics_tls_ca_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.crt" victoriametrics_tls_cert_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.crt" victoriametrics_tls_key_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.key" -
Укажите URL, по которым доступны VictoriaMetrics и VictoriaLogs:
victorialogs_url: "https://192.168.0.14:9427" victoriametrics_url: "https://192.168.0.14:8427" -
Добавьте параметры подключения к служебной БД:
vision_db_dsn: "postgres://vision:vision@192.168.0.24:5432/vision_db" -
Укажите URL управляющего узла Визион:
vision_ui_url: https://192.168.0.40
Финальный вид файлаexternal_services.yml--- common_ca_enabled: true common_ca_cert_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.crt" common_ca_key_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.key" victorialogs_basic_auth_username: "vision" victoriametrics_basic_auth_username: "vision" victorialogs_basic_auth_password: "IbnxwZ2p3WeNioDM" victoriametrics_basic_auth_password: "IbnxwZ2p3WeNioDM" victorialogs_tls_ca_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.crt" victorialogs_tls_cert_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.crt" victorialogs_tls_key_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.key" victoriametrics_tls_ca_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.crt" victoriametrics_tls_cert_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.crt" victoriametrics_tls_key_src_path: "/victoria/playbooks/tmp/secrets/192.168.0.14_external_client.key" victorialogs_url: "https://192.168.0.14:9427" victoriametrics_url: "https://192.168.0.14:8427" vision_db_dsn: "postgres://vision:vision@192.168.0.24:5432/vision_db" vision_ui_url: https://192.168.0.40 -
-
Запустите плейбук:
ansible-playbook \ -i /path/to/inventory \ playbooks/ha-core/deploy.yml -
Деактивируйте виртуальное окружение:
deactivate
Переустановка etcd
Развёртывание etcd не поддерживает повторного запуска. Чтобы избежать ошибок при выполнении плейбука:
-
Активируйте виртуальное окружение:
source /opt/skala-r/vision/server/vision_venv/bin/activate -
Добавьте в параметры запуска переменную
skip_etcdсо значениемextrue:ansible-playbook \ -i /path/to/inventory \ playbooks/ha-core/deploy.yml \ -e "skip_etcd=true" -
Деактивируйте виртуальное окружение:
deactivate