Инструкция по обновлению Визиона до версии 1.4.x

1. Подготовка к обновлению#

При обновлении Визиона будут перегенерированы файлы конфигурации всех компонентов Визиона (Сервер, Прокси, Агенты), поэтому необходимо осуществить резервное копирование файлов конфигурации, которые могут располагаться в следующих директориях.

Для версии 1.2 и ниже

  • /opt/skala-r/vision/agent/<имя-компонента>/etc
  • /opt/skala-r/vision/proxy/<имя-компонента>/etc
  • /opt/skala-r/vision/server/<имя-компонента>/etc

Для версии 1.3 и выше

  • /opt/skala-r/etc

Для всех версий

  • /etc/nginx
  • Altlinux, RedOS:
    • /var/lib/pgsql/data/postgresql.conf
    • /var/lib/pgsql/data/pg_hba.conf
  • Astra:
    • /etc/postgresql/11/main/postgresql.conf
    • /etc/postgresql/11/main/pg_hba.conf

Важно перед обновлением убедиться, что следующие данные присутствуют для восстановления, если они необходимы:

  • Банковский сертификат для Nginx.
  • Параметры интеграций со сторонними системами. Например, vmagent_proxy может быть настроен на отправку метрик в сторонний Prometheus.
  • Параметры авторизации стороннего провайдера OAuth.
  • Параметры почтового шлюза SMTP.
  • Параметры отправки SNMP-трапов.
  • Другие ручные изменения выполненные в файлах конфигурации Визиона.

При обновлении с версии 1.2 и ниже для создания ПАКа в интерфейсе Визиона будут необходимы следующие данные:

  • Имена объектов: ПАК, модули, сервера, виртуальные машины, коммутаторы согласно инсталляционным картам
  • Учетные записи для авторизации экспортеров в сторонних сервисах в зависимости от типа ПАК могут быть необходимы для
    • доступа к BMC по IPMI (все типы ПАКов, если допустимо)
    • инстансов кластера Postgresql (МБД.П)
    • OpenNebula (МВ.ВК)
    • Базис СУПВ (МВ.С/ВРМ)
  • Учетные записи для отправки уведомлений о срабатывании правил оповещения для SMTP и SNMP шлюзов (по необходимости).

Загрузите архив с дистрибутивом новой версии Визиона на узел Визион.Сервера и распакуйте его командой tar -xzf <имя архива>.

2. Удаление предыдущих версий компонентов#

2.1. Версия до обновления 1.2 и ниже#

С помощью дистрибутива предыдущей версии и инвентори файла для него деинсталлируйте все Агенты и Прокси с узлов

  • Удаление Агентов: из директории с дистрибутивом выполнить команду ansible-playbook -i /<путь-до-инвентори-файла>.yml agent_remove.yml.
  • Удаление Прокси: из директории с дистрибутивом выполнить команду ansible-playbook -i /<путь-до-инвентори-файла>.yml proxy_remove.yml.

При недоступности дистрибутива предыдущей версии используйте плейбук playbooks/agent_delete.yml дистрибутива новой версии Визиона (1.3 и выше). Для этого после обновления Визиона и создания ПАКа (3.1, 3.2, 3.3), но до установки Агентов и Плагинов (3.4, 3.5, 3.6):

  • Выберите необходимый ПАК, нажав ⠇, пункт “Инвентори”. Файл-инвентори скачается и так же будет доступен в директории /opt/skala-r/vision/server/inventory/.
  • Укажите в инвентори файле актуальные данные для доступа к узлам по SSH.
  • Выполните команду ansible-playbook -i /<путь-до-инвентори-файла>.yml ./playbooks/agent_delete.yml из директории дистрибутива.

2.2. Версия до обновления 1.3 и выше#

Деинсталлируйте все Агенты и Плагины всех ПАКов в интерфейсе Визиона.

  1. В интерфейсе Визиона в разделе “Объекты” выберите ПАК.
  2. Деинсталлируйте все Агенты и Прокси во вкладке “Агенты”. Дождитесь статуса “Не установлен” всех элементов.
  3. Убедитесь, что во во вкладке “Плагины” были деинсталлированы все элементы. Если нет, деинсталлируйте их.
  4. После выполнения обновления (п.3.1) проведите установку повторно во вкладках “Агенты” и “Плагины”.

3. Обновление до новой версии 1.4 и выше#

3.1. Процедура обновления Визион.Сервера#

В случае установки новой версии 1.4.0 и ниже необходимо выполнить команду rm -rf /opt/skala-r/vision/server/vision_venv

Для обновления Визиона установкой поверх старой версии выполните следующее:

  1. Запустите скрипт ./setup.sh из директории дистрибутива.
  2. Выберите опцию “Установить пакеты зависимостей из репозитория дистрибутива” или “Установить пакеты зависимостей из репозитория OC”.
  3. Дождитесь окончания установки пакетов.
  4. Запустите скрипт ./setup.sh из директории дистрибутива.
  5. Выберите опцию “Установить Сервер Визиона”.
  6. Выберите из списка или укажите IP адрес Сервера Визиона в подсети, которая предназначена для отправки данных в Визион с других узлов.
  7. После успешной установки запустите скрипт ./check_service.sh из директории /opt/skala-r/vision. Критерием корректности развертывания является значение active для всех сервисов, приведенных в таблице в выводе скрипта. В веб-интерфейсе Визиона в разделе “Настройки” в пункте “О программе” убедитесь, что указана необходимая версия Визиона.

3.1.1. Решение известных проблем после обновления до новой версии 1.4.0 и выше#

3.1.1.1. Ошибка при запуске setup.sh во время импорта метрик.#

Проблема: При запуске setup.sh во время выполнения установки Визион.Сервера отображается текст ошибки “Произошла ошибка импорта метрик!”.

  1. Убедитесь, что vision_core запущен и работает с помощью запуска скрипта ./check_service.sh из директории /opt/skala-r/vision.

  2. Вручную на ВМ Визиона выполните следующую команду для импорта метрик.

curl -kX POST -F "file=@./metrics/main.yml" "https://127.0.0.1:8088/vision/api/v1/data_import/?pak_type=all"

2.1. Если вы в json теле ответа видите ошибку авторизации, необходимо отключить авторизацию, обратитесь к руководству администратора.

2.2. Если вы в json теле ответа видите ошибку неуникальности метрик, необходимо удалить все метрики, которые в поле metric_src_type имеют значение VSN. Обратите внимание, что связанные с этими метриками правила оповещения потеряют условия их выполнения.

Для этого на ВМ Визиона выполните

psql -U postgres -d vision_db

и удалите из служебной БД Визиона все метрики, где поле metric_src_type имеет значение VSN

DELETE FROM metric WHERE metric_src_type = 'RAW';
  1. После устранения неисправности повторно запустите setup.sh и выполните установку Визион.Сервера.
3.1.1.2. Службы vision_core и vision_taskdaemon не запустились.#

Проблема: При запуске скрипта ./check_service.sh из директории /opt/skala-r/vision сервисы vision_core и vision_taskdaemon имеют статус failed, а в логах присутствует ошибка Permission denied.

Проверьте, что директории /opt/skala-r/var и /opt/skala-r/var/log принадлежат root и имеют права 755 и установите целевые права:

chmod 755 \
/opt/skala-r/var \
/opt/skala-r/var/log
systemctl restart vision_core vision_taskdaemon
systemctl status vision_core vision_taskdaemon

Если в логах присутствуют ошибки доступа к другим директориям, исправьте согласно примеру выше.

3.1.1.3. Не запускаются сервисы systemd Визион.Прокси или Визион.Агент#

Уточните причины невозможности запуска компонента в логах компонента. Описание расположения логов компонентов уточняйте в документе Компоненты Визиона: файлы конфигурации, описание параметров .

Вероятной причиной данной проблемы при обновлении является попытка вызова управляющих воздействий (установка, деинсталляция) плагинов из интерфейса Визиона со старой версией Агента Платформы, что приводит к неверным назначениям прав на директории. Перед устранением проблем убедитесь, что вы обновили Агент Платформы на всех узлах ПАКов.

Убедитесь, что общие директории продуктов skala-r имеют права 755 (rwxr-xr-x).

/opt/skala-r
/opt/skala-r/etc
/opt/skala-r/var
/opt/skala-r/var/log

Убедитесь, что директории компонентов Визиона имеют права 755 (rwxr-xr-x) и принадлежат пользователю и группе vision, включая все внутренние директории.

/opt/skala-r/vision/*
/opt/skala-r/etc/vision/*
/opt/skala-r/var/log/vision/*

Права на файлы компонентов Визион.Прокси и Визион.Агент

  • создаваемые Агентом Платформы
    • файлы конфигурации /opt/skala-r/etc/vision/<agent|proxy>/<service>/*.<env|yml|...> - vision 400 (r-------).
    • бинарные файлы /opt/skala-r/vision/<agent|proxy>/<service>/* - vision 500 (r-x------)
    • сервисы systemd /etc/systemd/system/vision_*.service - 644 (rw-r--r--).
  • логи аудита компонентов /opt/skala-r/var/log/vision/audit/<component>/<service>/audit.log - 600 (rw------).

3.2. Удалите старый ПАК (при версиях до обновления 1.1.x и 1.2.x)#

Только в случае обновления версий 1.1.x и 1.2.x до новой необходимо удалить существующие ПАКи в интерфейсе Визиона.

3.3. Добавить ПАК (при версии до обновления 1.2 и ниже)#

В веб-интерфейсе Визиона добавьте необходимые ПАКи

  1. Во вновь добавленном ПАК имена объектов (ПАК, Модулей, Серверов, ВМ, Коммутаторов) должны быть такими же как и в предыдущей версии.
  2. При добавлении ПАК добавить объект (сервер или ВМ) который будет использован в качестве Прокси, IP адрес этого объекта указать таким же как и в версии 1.1.1, либо назначить другой
  3. Выгрузить инвентори файл вновь добавленного ПАК

3.4. Установите/обновите агент Платформы#

Установить Плагент: 

  1. Отредактируйте выгруженный инвентори файл, указав значения ключей ansible_user, ansible_ssh_pass, ansible_become_password для доступа к узлам по SSH или используйте существующий инвентори файл (убедитесь в его актуальности).
  2. Из директории с дистрибутивом Визиона версии 1.3 запустите команду ansible-playbook -i /opt/skala-r/vision/server/inventory/<название_инвентори_файла>.yml ./plagent/install.yml.

3.5. Настройка параметров агентов и плагинов для нового ПАКа (при версии до обновления 1.2 и ниже)#

  1. В интерфейсе Визиона в разделе “Объекты” выберите ПАК.
  2. Перейдите во вкладку “Агенты” и нажмите кнопку “Сконфигурировать агенты”.
  3. В поле “Расположение Визион.Прокси” укажите ВМ Визиона.
  4. Для всех серверов и виртуальных машин выберите необходимые плагины и нажмите кнопку “Сохранить”. Обратитесь к Руководству Администратора при необходимости донастройки параметров плагинов.

3.6. Восстановите параметры Визиона#

При необходимости после обновления восстановите следующие параметры Визиона.

Параметры шлюзов для отправки уведомлений о срабатывании правил оповещения

  • SMTP-шлюз: в интерфейсе Визиона в разделе “Настройки SMTP”.
  • SNMP-шлюз: через API как указано в п. 9 Руководства Администратора Визион

Все ранее вручную настроенные параметры в файлах конфигурации (например, grafana.ini, config.yml, nginx.conf и прочие) необходимости заново внести.

При изменении конфигурационных файлов перезапустите затронутые сервисы.

4. Дополнительные действия после обновления до новой версии 1.4.0 и ниже#

4.1. Закрыть служебную БД на loopback#

Рекомендуется после завершения всех работ закрыть доступ к служебной базе данных Визион.Сервера со сторонних узлов. Для этого в конце файла конфигурации postgresql.conf замените listen_addresses = ‘*’ на listen_addresses = ‘127.0.0.1’. Пути до файла отличаются в зависимости от ОС:

  • Altlinux, RedOS: /var/lib/pgsql/data/postgresql.conf
  • Astra: /etc/postgresql/11/main/postgresql.conf

Перезапустите PostgreSQL командой systemctl restart postgresql.service

4.2. Проверить пользователя ОС vision#

Проверьте, что пользователь ОС vision в /etc/passwd имеет следующие параметры и измените при необходимости

  • Домашний каталог: /dev/null
  • Команда для входа (shell): /sbin/nologin