Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Установка Wimark One - HA

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

Для установки платформы Wimark One необходимо два сервера с предустановленной ОС на базе Linux.
В случае L2 связности - схема Intra DC, в случае L3 связности - Inter DC.

Для корректной работы ПО и для подключения ТД в Firewall необходимо открыть следующие порты:

  • TCP: 80 / 443 (DST) - для управления через WEB-интерфейс;

  • UDP: 500 / 4500 (DST) - для туннеля IPSec между ТД и платформой (ТД подключается по ipsec);

  • TCP: 8080 / 8443 (DST) - для портала авторизации пользователей (для Portal модуля);

  • TCP: 1883 (DST) - для подключения ТД без туннеля (MQTT);

  • Убедиться, что открыт TCP: 27017 -  (MongoDB).

Настройка беспарольного доступа между серверами


Предупреждение

ВАЖНО! Это необходимо выполнить на двух машинах!

  1. Необходимо создать нового пользователя - one:

Блок кода
linenumberstrue
adduser one


       2. Добавить пользователя one в суперпользователи:

Блок кода
linenumberstrue
sudo usermod -aG sudo one

       3. Войти в систему под этим пользователем :

Блок кода
linenumberstrue
su one

       4. Сгенерировать ssh ключ:

Блок кода
linenumberstrue
ssh-keygen -t rsa

После ввода данной команды, следует указать место хранения ключей или нажать Enter для того, чтобы принять путь по умолчанию.

Информация

Запрос о введении кодовой фразы следует пропустить, т.к. может помешать автоматизации некоторых процессов.

Далее указать место, где хранятся ID и открытый ключ.


Рисунок 1 - Пример вывода команды ssh-keygen

       5. Скопировать ssh-ключ на указанный сервер:

Блок кода
linenumberstrue
ssh-copy-id one@{IP}


Информация

{IP} - IP сервера, куда будет скопирован ключ.

После завершения, следует убедиться, что действительно получилось сделать беспарольный доступ между двумя серверами.
Для этого необходимо под пользователем one с одного сервера подключиться ко второму.
Тоже самое выполнить со второго сервера на первый.
ssh one@{IP}

Если при подключении запрос пароля не поступил, то всё работает правильно.

Установка Wimark One

Предупреждение

При установке HA необходимы два сервера. Каждый шаг в данном разделе необходимо выполнять одновременно на обоих серверах, сначала на одном сервере, затем на другом.

Пример: выполнить установку Docker (п. 3) на первом сервере, после окончания выполнения данного пункта выполнить тоже самое на втором сервере.

Необходимо загрузить дистрибутив Wimark One на тот сервер, где планируется установка ПО (при наличии доступа в интернет):

Блок кода
linenumberstrue
wget <URL> \
 -O /tmp/<название файла>

Формат названия файла установщика: продукт - версия - дата сборки - лицензия* - брендирование - формат установки - формат инсталлятора - installer run.

* Лицензия:

  • base - NMS;

  • portal - NMS + портал;

  • anl - NMS + аналитика;

  • pro - NMS + портал + аналитика.


Для запуска установки необходимо выполнить:

  1. Сделать загруженный ранее дистрибутив Wimark One исполняемым:

Блок кода
linenumberstrue
sudo chmod +x /tmp/<название файла>

       2. Запустить установку на первом сервере:

Блок кода
linenumberstrue
sudo /tmp/<название файла>

Начиная с версии Wimark One 1.12, в дистрибутиве содержится интерактивный “установщик”, который поможет заполнить необходимые параметры для установки платформы.

Предупреждение

На момент установки платформы на двух серверах рекомендуется иметь доступ в Интернет, в противном случает подразумевается, что все перечисленные пакеты уже имеются на сервере.

       3. Установка Docker:


Рисунок 2 - Установка Docker

       4. Установка следующих пакетов: tcpdump, keepalived и rsync.

Для корректной работы платформы и установщика, необходимы установленные пакеты: tcpdump, keepalived и rsync. Если во время установки данные пакеты не будут обнаружены, то установщик самостоятельно скачает и установит их.



Рисунок 3 - Проверка и установка необходимых пакетов

       5. Указать параметры Management IP, Neighbor IP и VIP:



Рисунок 4 - Management IP, Neighbor IP и VIP


Информация

Management IP - IP-адрес управления.

Neighbor IP - IP-адрес соседнего сервера.

VIP - виртуальный IP используемый сервисом keepalived, который будет одинаковым, независимо от сервера.


       6. Во время установки будет предложено заполнить FQDN:

Предупреждение

Данный пункт необходимо выполнить только на первом сервере! Следуйте инструкциям в пункте 7.



Рисунок 5 - FQDN

Если пользователь не собирается использовать FQDN, то следует указать любое доменное имя, например: one.mydomain.com


Информация

FQDN (Fully Qualified Domain Name) полное доменное имя определяющее узел в сети Интернет (имя домена, на которое будет реагировать веб-сервер).

FQDN должен быть одинаковым, что на первом сервере, что на втором сервере.


       7. После установки основных компонентов будет предложено установить SMTP (рисунок 6).


Рисунок 6 - Установка SMTP


Информация

SMTP_HOST - имя хоста или IP-адрес SMTP-сервера, который будет отправлять сообщения;

SMTP_PORT - номер порта для подключения к SMTP-серверу, по умолчанию 25;

SMTP_USER - логин учетной записи (УЗ) для SMTP;

SMTP_PASS - пароль УЗ для SMTP.


       8. Дальше выполняется создание, запуск платформы и инициализация БД (рисунок 7).


Рисунок 7 - Ожидание ответа от второго сервера

       9. После завершения установки отобразится запись:

Блок кода
linenumberstrue
-- УСТАНОВЩИК -- Процесс установки окончен

Необходимо добавить выполнение скрипта start.sh в cron:

Блок кода
linenumberstrue
sudo crontab -u root -e


Блок кода
linenumberstrue
* * * * * bash /opt/wimark/one/start.sh
* * * * * sleep 10 && bash /opt/wimark/one/start.sh
* * * * * sleep 20 && bash /opt/wimark/one/start.sh
* * * * * sleep 30 && bash /opt/wimark/one/start.sh
* * * * * sleep 40 && bash /opt/wimark/one/start.sh
* * * * * sleep 50 && bash /opt/wimark/one/start.sh


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

Для контроля работоспособности Wimark One пользователю следует перейти на web интерфейс платформы. При успешном завершении установки отобразится форма авторизации в соответствии с рисунком 8.

Подсказка

Логин/пароль по умолчанию: wimark/wimark




Рисунок 8 - Форма авторизации

Создание резервных копий (версия 1.11.8 и выше)

Перед созданием резервной копии БД необходимо убедиться в том, что на сервере достаточно свободного места.
Для создания резервной копии платформы Wimark One рекомендуется иметь от 6 до 10 ГБ свободного места.

Есть два варианта создания резервной копии БД: полное и частичное.
При создании частичной резервной копии копируется только конфигурация (локации, настройки), лицензионный ключ и static файлы. Использование данного метода значительно ускоряет сам процесс восстановления БД и уменьшает размер резервной копии БД.

При создании полной резервной копии БД копируются все данные, т.е. статистика, конфигурация, static, ключ и т.д. Использование данного метода гарантирует полное копирование данных, но значительно замедляет процесс восстановление БД, и сама резервная копия БД занимает довольно много места.

Предупреждение

При создании резервной копии платформы Wimark One версии 1.12 в команды не нужно добавлять:  --port 30001 --host rs0/mongo-rs-1

Создание полной резервной копии

Предупреждение

Достаточно выполнить только на одной машине!

Если имя контейнера с MongoDB отличается от того, что указано в команде, то можно использовать docker ps для поиска нужного контейнера.


  1. Создать резервную копию БД:

Блок кода
linenumberstrue
docker exec -it  $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}') mongodump --port 30001 --host rs0/mongo-rs-1 --db=test --gzip --archive=/tmp/backup_wimark.gz


Информация

rs0/mongo-rs-1 зависит от доступности серверов.

Если первый сервер недоступен, то следует заменить его на второй сервер.

127.0.0.1 localhost mongo-rs-1
1.1.1.1 mongo-rs-2

При недоступности второго сервера, заменить его на первый.

       2. Подготовить папку на сервере для резервной копии:

Блок кода
linenumberstrue
sudo mkdir /opt/wimark_backup/

       3. Копировать архив с резервной копией БД из контейнера в систему:

Блок кода
linenumberstrue
docker cp $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}'):/tmp/backup_wimark.gz /opt/wimark_backup/

       4. Создать резервную копию static файлов, которые находятся в папке /opt/wimark/static:

Блок кода
linenumberstrue
cp -r /opt/wimark/static /opt/wimark_backup/static

Создание частичной резервной копии

  1. Подготовить папку на сервере для резервной копии:

Блок кода
linenumberstrue
sudo mkdir /opt/wimark_backup/

       2. Зайти в контейнер с MongoDB:

Блок кода
linenumberstrue
docker exec -it $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}') bash

       3. Создать резервную копию БД:

Блок кода
linenumberstrue
mongodump --port 30001 --host rs0/mongo-rs-1 --db=test \
--excludeCollection=radar_probes_real --excludeCollection=radar_probes_raw \
--excludeCollection=client_addr --excludeCollection=cpe_scan_data \
--excludeCollection=cpe_stat_info --excludeCollection=client_stats \
--excludeCollection=client_rf --excludeCollection=events \
--excludeCollection=client_session_info --excludeCollection=bss_stat_info \
--excludeCollection=client_stat_info --excludeCollection=stats \
--excludeCollection=lbs_client_data --excludeCollection=lbs_client_coords \
--excludeCollection=lbs_cpe_info --excludeCollection=lbs_client_probes_testing \
--excludeCollection=lbs_client_probes --gzip --archive=/tmp/backup_wimark.gz; exit


Информация

rs0/mongo-rs-1 зависит от доступности серверов.

Если первый сервер недоступен, то следует заменить его на второй сервер.

127.0.0.1 localhost mongo-rs-1
1.1.1.1 mongo-rs-2

При недоступности второго сервера, заменить его на первый.


Предупреждение

Данная команда для создания резервной копии указана в качестве примера!

Если какая-нибудь из коллекций необходима, то следует убрать её из исключений.
Пример:
--excludeCollection=client_rf - убрав данный параметр из команды, новосозданный бэкап БД будет содержать в себе коллекцию client_rf.

       4. Копировать архив с резервной копией БД из контейнера в систему:

Блок кода
linenumberstrue
docker cp $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}'):/tmp/backup_wimark.gz /opt/wimark_backup/

       5. Создать резервную копию static файлов, которые находятся в папке /opt/wimark/static:

Блок кода
linenumberstrue
cp -r /opt/wimark/static /opt/wimark_backup/static

Обновление Wimark One (HA) до версии 1.12.1

Информация

При обновлении Wimark One с более ранних версий (до 1.11.8), необходимо сначала выполнить обновление на версию 1.11.8 в соответствии с документацией “Wimark One: установка и обновление на свои сервера (HA)_1.11”.

  1. Подготовить резервную копию БД.

  2. Определить сервер, на котором БД является PRIMARY:

Блок кода
linenumberstrue
docker exec -it $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | awk '{ print $1;}') \
 mongo --port 30001 --eval "printjson(db.runCommand('ismaster'))" | grep ismaster


Информация

Если в выводе "ismaster" : false , то перейти на другой сервер и повторить.

Если "ismaster" : true, то следует оставаться на этом сервере.

       3. Остановить сервис - keepalived:

Блок кода
linenumberstrue
service keepalived stop

       4. Удалить из cron задачи связанные со скриптом checker.sh:

Блок кода
linenumberstrue
sudo crontab -u root -e


Блок кода
linenumberstrue
* * * * * bash /opt/wimark/checker.sh
* * * * * sleep 10 && bash /opt/wimark/checker.sh
* * * * * sleep 20 && bash /opt/wimark/checker.sh
* * * * * sleep 30 && bash /opt/wimark/checker.sh
* * * * * sleep 40 && bash /opt/wimark/checker.sh
* * * * * sleep 50 && bash /opt/wimark/checker.sh

       5. Удалить старую платформу (необходимо выполнить из под root - sudo su):

Предупреждение

При обновлении с версии 1.12 на версию 1.12.1 на обоих серверах удалить каталог /opt/mongodb/ при его наличии.


Блок кода
linenumberstrue
rm -r /opt/wimark; docker rm -f $(docker ps -qaf "name=one-|master|backup|one_")

       6. Удалить все остановленные контейнеры, образы, сети и тома из Docker:

Блок кода
linenumberstrue
docker system prune --all --volumes


Предупреждение

Данная команда удалит все остановленные контейнеры, “висящие” (неиспользуемые) Docker-образы, неиспользуемые сети и тома.

Если вы дополнительно установили контейнеры поверх Wimark One, то следует создать резервные копии для них/их настроек и установить после завершения обновления.

       7. Удалить упоминания о mongo-rs-1, mongo-rs-2 и mongo-rs-3 из /etc/hosts:

Блок кода
linenumberstrue
sudo nano /etc/hosts


Блок кода
linenumberstrue
127.0.0.1 localhost mongo-rs-2
{IP-1} mongo-rs-1
{VIP} mongo-rs-3

       8. Проверить, что всё отработало корректно, т.е. второй сервер должен быть в состоянии Master.
Для этого может понадобиться несколько минут с момента отключения keepalived.

Информация

Более подробный процесс описан в разделе по установке Wimark One.

       9. Необходимо загрузить дистрибутив Wimark One на оба сервера, затем запустить установку на первом сервере (при наличии доступа в интернет).

Информация
wget <URL> \
 -O /tmp/<название файла>

       10. Сделать загруженный ранее дистрибутив Wimark One исполняемым:

Блок кода
linenumberstrue
sudo chmod +x /tmp/<название файла>

       11. Запустить установку на первом сервере:

Блок кода
linenumberstrue
sudo /tmp/<название файла>

Начиная с версии Wimark One 1.12, в дистрибутиве содержится интерактивный “установщик”, который поможет заполнить необходимые параметры для установки платформы.

Предупреждение

На момент установки платформы на двух сервера рекомендуется иметь доступ в Интернет, в противном случает подразумевается, что все перечисленные пакеты уже имеются на сервере.

       12. Заполнить настройки и согласиться удалить старые настройки keepalived.


Рисунок 9 - Обновление платформы

Информация

Это связанно с тем, что начиная с версии 1.12 Wimark One используется третья версия VRRP и изменён стандартный конфигурационный файл keepalived.

       13. Указать данный сервер как Master, т.е. создать новый мастер-сервер (ввести значение “0):


Рисунок 10 - Новый мастер-сервер

       14. На рисунке 11 отображается ожидание окончания инициализации, настройка SMTP, затем ожидание сообщения о том, что данный сервер ждёт ответа от MongoDB со второго сервера.


Рисунок 11 - Ожидание обновления второго сервера

       15. Перейти на второй сервер.

       16. Остановить сервис - keepalived:

Блок кода
linenumberstrue
service keepalived stop

       17. Удалить из cron задачи связанные со скриптом checker.sh:

Блок кода
linenumberstrue
sudo crontab -u root -e


Блок кода
linenumberstrue
* * * * * bash /opt/wimark/checker.sh
* * * * * sleep 10 && bash /opt/wimark/checker.sh
* * * * * sleep 20 && bash /opt/wimark/checker.sh
* * * * * sleep 30 && bash /opt/wimark/checker.sh
* * * * * sleep 40 && bash /opt/wimark/checker.sh
* * * * * sleep 50 && bash /opt/wimark/checker.sh

       18. Удалить старую платформу (необходимо выполнить из под root - sudo su):

Блок кода
linenumberstrue
rm -r /opt/wimark; docker rm -f $(docker ps -qaf "name=one-|master|backup|one_")

       19. Удалить все остановленные контейнеры, образы, сети и тома из Docker:

Блок кода
linenumberstrue
docker system prune --all --volumes


Предупреждение

Данная команда удалит все остановленные контейнеры, “висящие” (неиспользуемые) Docker-образы, неиспользуемые сети и тома.

Если вы дополнительно установили контейнеры поверх Wimark One, то следует создать резервные копии для них/их настроек и установить после завершения обновления.

       20. Удалить упоминания о mongo-rs-1, mongo-rs-2 и mongo-rs-3 из /etc/hosts:

Блок кода
linenumberstrue
sudo nano /etc/hosts


Блок кода
linenumberstrue
127.0.0.1 localhost mongo-rs-2
{IP-1} mongo-rs-1
{VIP} mongo-rs-3

       21. Сделать загруженный ранее дистрибутив Wimark One исполняемым:

Блок кода
linenumberstrue
sudo chmod +x /tmp/WiMark-one-installer.run

       22. Запустить установку на втором сервере:

Блок кода
linenumberstrue
sudo /tmp/WiMark-one-installer.run

       23. Заполнить настройки и согласиться удалить старые настройки keepalived.


Рисунок 12 - Обновление второго сервера

При выборе мастер-сервера, выбираем тот, который сейчас активен на первом сервере.

       24. После завершения установки проверить, что на первом сервере тоже закончилась установка. Для этого может понадобится несколько минут, пока БД и другие контейнеры на втором сервере будут запускаться (рисунок 13).


Рисунок 13 - Завершение установки на первом сервере

       25. Скопировать ранее созданную резервную копию БД в контейнер с новой БД:

Блок кода
linenumberstrue
docker cp /opt/wimark_backup/backup_wimark.gz $(docker ps | \
 grep 'one-mongo-1\|one-mongo-ha-1' | awk '{ print $1;}'):/tmp/

       26. Запустить процесс восстановления данных из резервной копии БД:

Блок кода
linenumberstrue
docker exec -it $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}') mongorestore --drop --nsInclude='test.*' \
 --gzip --archive=/tmp/backup_wimark.gz

       27. Копировать обратно static-файлы:

Блок кода
linenumberstrue
rm -r /opt/wimark/static
cp -r /opt/wimark_backup/static /opt/wimark/

       28. Добавить на двух серверах скрипт в cron:

Блок кода
linenumberstrue
sudo crontab -u root -e


Блок кода
linenumberstrue
* * * * * bash /opt/wimark/one/start.sh
* * * * * sleep 10 && bash /opt/wimark/one/start.sh
* * * * * sleep 20 && bash /opt/wimark/one/start.sh
* * * * * sleep 30 && bash /opt/wimark/one/start.sh
* * * * * sleep 40 && bash /opt/wimark/one/start.sh
* * * * * sleep 50 && bash /opt/wimark/one/start.sh


Предупреждение

После этого обязательно необходимо перезагрузить первый, а затем второй сервер!