Миграция БД подсистемы мониторинга

При развёртывании сервера подсистемы мониторинга в одноузловой конфигурации СУБД PostgreSQL развёртывается на том же узле. Установщик создаёт в ней пользователя vision и служебные БД vision_db и grafana_db.

Эта инструкция описывает миграцию служебных БД vision_db и grafana_db с одноузлового сервера PostgreSQL на внешний сервер или в отказоустойчивый кластер, развёрнутый средствами дистрибутива.

Далее сервер PostgreSQL, развёрнутый на узле с сервером подсистемы мониторинга, называется сервером-источником, а сервер на который выполняется миграция — сервером-приёмником.

На период миграции работа Сервера подсистемы мониторинга будет приостановлена.

Перед началом работы

Чтобы сократить время миграции, подготовьте сервер-приёмник заранее:

  1. Убедитесь, что сервер имеет виртуальный IP-адрес или доменное имя, всегда указывающие на мастер.

  2. Убедитесь, что мастер доступен из сети подсистемы мониторинга по указанному виртуальному IP-адресу или доменному имени.

  3. Создайте в СУБД роль для пользователя, который будет владеть служебными БД подсистемы мониторинга. Рекомендуется использовать название vision:

    CREATE ROLE vision WITH LOGIN PASSWORD '<password>';
  4. Создайте две БД для хранения служебных данных подсистемы мониторинга.

    В качестве названий рекомендуется использовать vision_db и grafana_db. Владельцем обеих БД должен быть созданный ранее пользователь.

    CREATE DATABASE <db_name>
      OWNER vision
      ENCODING 'UTF8'
      LC_COLLATE 'ru_RU.UTF-8'
      LC_CTYPE 'ru_RU.UTF-8'
      TEMPLATE template0;

Миграция

На сервере подсистемы мониторинга выполните следующие действия:

  1. Остановите службы, использующие служебную БД:

    systemctl stop vision_core.service
    systemctl stop vision_alertcollector.service
    systemctl stop vision_taskdaemon.service
  2. Создайте дампы баз vision_db и grafana_db:

    pg_dump -h 127.0.0.1 -p 5432 -U vision vision_db  -F tar > vision_db.tar
    pg_dump -h 127.0.0.1 -p 5432 -U vision grafana_db -F tar > grafana_db.tar
  3. Остановите сервер-источник и отключите его запуск при загрузке ОС:

    systemctl stop    postgresql.service
    systemctl disable postgresql.service
  4. Восстановите данные из дампов на сервере-приёмнике:

    pg_restore -h <server> -p 5432 -U vision -d vision_db  -c vision_db.tar
    pg_restore -h <server> -p 5432 -U vision -d grafana_db -c grafana_db.tar

    Здесь: <server> — виртуальный IP-адрес или доменное имя, указывающие на мастер сервера-приёмника.

  5. В хранилище секретов в значениях ключей vault.database.dsn и vault.grafana.database.dsn укажите учётные данные для подключения к соответствующим базам:

    Пример заполнения
    vault.database.dsn: 'postgresql://vision:<password>@<host>:5432/vision_db'
    vault.grafana.database.dsn: 'postgresql://vision:<password>@<host>:5432/grafana_db'
  6. Обновите конфигурацию компонентов подсистемы мониторинга:

    /opt/skala-r/vision/tools/update_server_configs.sh
  7. Запустите службы подсистемы мониторинга:

    systemctl start vision_core.service
    systemctl start vision_alertcollector.service
    systemctl start vision_taskdaemon.service

Проверка корректности

Чтобы убедиться в правильности настроек и успешности миграции, проверьте состояние служб, использующих служебные БД:

systemctl status vision_core.service
systemctl status vision_alertcollector.service
systemctl status vision_taskdaemon.service