Ядро мониторинга

В этой инструкции рассматривается развёртывание ядра мониторинга в отказоустойчивой конфигурации.

Предполагается, что:

  • Кластеры 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/ не существует:

  1. Распакуйте архив:

    tar -xf ansible-ha-victoria-cluster-<version>.tar.gz
  2. Запустите скрипт создания и активации виртуального окружения:

    sh ansible-ha-victoria-cluster-<version>/venv/activate_venv.sh

    Этот скрипт создаст виртуальное окружение /opt/skala-r/vision/server/vision_venv/ и активирует его, о чём свидетельствует изменившееся приглашение интерпретатора командной строки, например:

    (vision_venv) [root@server /tmp]#

Подготовка к работе

Подготовьте управляющий узел к работе:

  1. Активируйте виртуальное окружение:

    source /opt/skala-r/vision/server/vision_venv/bin/activate
  2. Распакуйте архив с дистрибутивом:

    tar -xvf vision-distrib-1.11-<build>.tar.gz
  3. Перейдите в директорию с файлами дистрибутива. Далее имена файлов и директорий указываются относительно неё.

  4. Запустите скрипт setup.sh и выберите пункт Установить пакет из репозитория дистрибутива.

  5. В хранилище секретов укажите значение параметра 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"

Установка

Для запуска развёртывания:

  1. Перейдите в директорию ha/.

  2. Создайте файл инвентаря, например:

    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/.
  3. Заполните конфигурационный файл playbooks/ha-core/group_vars/all/external_services.yml.

    Рассмотрим заполнение этого файла на примере.

    Для защиты подключений используются корневые сертификаты, сертификаты и ключи, созданные во время развёртывания кластеров VictoriaMetrics и VictoriaLogs и хранящиеся в директории /victoria/playbooks/tmp/secrets/.

    1. Чтобы включить защиту подключений с помощью TLS, присвойте параметру common_ca_enabled значение true:

      common_ca_enabled: true
    2. Добавьте пути к файлу корневого сертификата и его ключа:

      common_ca_cert_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.crt"
      common_ca_key_src_path: "/victoria/playbooks/tmp/secrets/CAVictoriaExternal.key"
    3. Проверьте содержимое файла /victoria/playbooks/tmp/secrets/192.169.0.14_vmauth_external_user_password. Он содержит пароль авторизации BasicAuth.

    4. Добавьте имена пользователей и пароли для подключения к vlagent и vmagent с авторизацией BasicAuth. В этом примере в обоих случаях используется имя пользователя vision и пароль, полученный на предыдущем шаге.

      victorialogs_basic_auth_username: "vision"
      victoriametrics_basic_auth_username: "vision"
      victorialogs_basic_auth_password: "IbnxwZ2p3WeNioDM"
      victoriametrics_basic_auth_password: "IbnxwZ2p3WeNioDM"
    5. Добавьте пути к файлам корневого сертификата, сертификата и приватного ключа 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"
    6. Укажите URL, по которым доступны VictoriaMetrics и VictoriaLogs:

      victorialogs_url: "https://192.168.0.14:9427"
      victoriametrics_url: "https://192.168.0.14:8427"
    7. Добавьте параметры подключения к служебной БД:

      vision_db_dsn: "postgres://vision:vision@192.168.0.24:5432/vision_db"
    8. Укажите 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
  4. Запустите плейбук:

    ansible-playbook \
       -i /path/to/inventory \
       playbooks/ha-core/deploy.yml
  5. Деактивируйте виртуальное окружение:

    deactivate

Переустановка etcd

Развёртывание etcd не поддерживает повторного запуска. Чтобы избежать ошибок при выполнении плейбука:

  1. Активируйте виртуальное окружение:

    source /opt/skala-r/vision/server/vision_venv/bin/activate
  2. Добавьте в параметры запуска переменную skip_etcd со значениемex true:

    ansible-playbook \
       -i /path/to/inventory \
       playbooks/ha-core/deploy.yml \
       -e "skip_etcd=true"
  3. Деактивируйте виртуальное окружение:

    deactivate