2.2. Настройка Boro Solution¶
Примечание
Разделы данной главы являются инструкциями по настройке приложения Boro Solution после его успешной установки и запуска. Таким образом, инструкции применимы к серверу, который уже находится в эксплуатации, если это не оговаривается отдельно.
2.2.1. Миграция проектов с сервиса Boro¶
Архитектурой Boro предусмотрена возможность переноса проектов с сервиса Boro на локальный сервер Boro Solution. Миграция выполняется в несколько этапов:
Экспорт проекта с сервиса Boro (выполняется по запросу инженером технической поддержки)
Импорт полученного проекта администратором Boro Solution
Запуск зонда
Применение конфигурации зонда
Перенос проекта¶
Перенос проектов осуществляется по одному за счет экспорта и дальнейшего импорта файла проекта в формате JSON. В экспортируемый файл попадают следующие настройки:
Общие настройки проекта: название проекта, параметры доступа к FTP/SFTP серверам, настройки SAML-аутентификации и пр.
Ключ подключения зонда к проекту.
Полные настройки профилей: записи, пороговых значений, KPI и всех типов оповещений.
Сохранённые конфигурации всех зондов. Включая конфигурации для каждого активного зонда, которые создаются автоматически при экспорте проекта.
Записи о всех зондах, которые были запущены в проекте с информацией об истории их обновлений.
Важно
Отсутствует возможность переноса для статистики задач, журналов событий и аларм-журналов.
Чтобы получить экспортированный файл проекта, обратитесь в отдел технической поддержки компании Elecard.
Для переноса проекта на сервер необходимо заранее создать проект с произвольным названием, в который будет импортироваться другой проект. Далее войдите под учетной записью администратора сервера (роль Суперадмин) и перейдите на вкладку пользователей Admin ➝ Users. Кликните на имя пользователя, который создал новый проект, и на вкладке User info в разделе Проекты найдите созданный проект. Загрузите полученный файл кнопкой Choose File и запустите процесс переноса кнопкой Import.
Запуск и настройка зондов¶
Зонды на новом сервере могут быть запущены несколькими способами:
Запуск новых зондов
Данный способ является самым простым. Скачайте архив с зондом на сервере Boro Solution, распакуйте его и запустите зонд. Таким образом можно запустить необходимое количество зондов. В случае если ранее зонд запускался как сервис, требуется произвести настройку заново. Подробные инструкции даны в разделе Запуск зонда как службы. В Web-интерфейсе переименуйте зонды (можно использовать новые имена).
Изменение конфигурационного файла зондов, работавших с сервисом
Можно сохранить зонды, которые вы использовали ранее, но для этого необходимо указать в конфигурации адрес нового сервера. При таком способе все задачи зонда будут запущены, однако профили настроек и нотификации не применятся. В разделе ниже описано, как применить конфигурацию зонда для восстановления всех настроек. Остановите зонд, откройте его конфигурационный файл monitor.cfg и внесите следующее изменение:
В строке
server
укажите адрес сервера в формате"https://ip_or_hostname:8443"
.В ОС Linux можно использовать следующий скрипт
Скрипт позволяет автоматизировать процесс замены адреса сервера при работе в консоли. Это удобно, если замена необходима на большом числе зондов.
SERVER_PUBLIC_NAME="ip_or_hostname" sed -i "s#\"server\": \"[^\"]*\"#\"server\": \"https://${SERVER_PUBLIC_NAME}:8443\"#" /PATH/TO/BORO/PROBE/monitor.cfg
После редактирования конфигурации запустите зонд и убедитесь, что зонд отображается в веб-интерфейсе сервера Solution.
Применение конфигурации зонда¶
При любом из методов восстановления зондов необходимо применить конфигурацию из сохранений на сервере. Перейдите на страницу зонда и нажмите кнопку Применить конфигурацию зонда. Из списка выберите конфигурацию import live tasks (import) для необходимого зонда и нажмите Просмотреть. Если потребуется, обновите IP адреса интерфейсов и примените конфигурацию. В результате список задач будет восстановлен со всеми профилями настроек и оповещений. Обратите внимание, что импортированные профили будут содержать слово «(import)» в названии. Вы можете изменить имя профилей, это действие не потребует перенастройки задач.
2.2.2. Ручная установка драйверов HASP¶
По умолчанию функция установки драйверов HASP отключена при установке приложения Boro Solution. Если необходимо установить поддержку дополнительной защиты HASP, выполните команды ниже:
Перейдите во временную директорию с распакованным архивом установки:
cd $TMP_DIR/packs
Если временная директория была удалена, распакуйте архив с приложением Boro Solution, как указано в шаге 2 раздела Установка Boro Solution Server. Запускать скрипт установки не требуется!
Установите драйверы защиты HASP:
rpm -ivh aksusbd.x86_64.rpm
Перезапустите все сервисы Boro Solution:
systemctl restart boro_*
2.2.3. Изменение имени сервера (Hostname)¶
Чтобы изменить имя сервера, заданное в переменной SERVER_PUBLIC_NAME, уже после установки Boro Solution необходимо выполнить следующие шаги:
Запросить у инженера технической поддержки сертификат для нового имени или IP-адреса сервера.
Под учетной записью администратора сервера (роль Суперадмин), загрузить полученный сертификат во вкладке Admin ➝ Certificates.
При необходимости обновить имя сервера (
Host name
) во вкладке Admin ➝ Email.В консоли сервера, на котором установлен Boro Solution, запустить от суперпользователя следующую команду:
NEW_SERVER_PUBLIC_NAME="local_BoroServer_ip_or_hostname" #set new IP address or hostname of the BoroServer sed -i "s#client_api_base_url: .*#client_api_base_url: \"https://${NEW_SERVER_PUBLIC_NAME}:8443\"#; s#turn:turn:[^:]*:3478#turn:turn:${NEW_SERVER_PUBLIC_NAME}:3478#" \ /opt/elecard/boro-rails-server/config/.env.yml systemctl reload boro_puma.default if [ -e /etc/coturn/turnserver.conf ]; then sed -i "s/^realm=.*/realm=${NEW_SERVER_PUBLIC_NAME}/" /etc/coturn/turnserver.conf systemctl restart coturn fi find /opt/elecard/boro-rails-server/tmp/archive/ -type f -name 'Boro.proj*.zip' -del
Вместо
local_BoroServer_ip_or_hostname
следует указать новое имя сервера. В результате будут изменены адрес сервера в конфигурационном файле зонда и адрес STUN/TURN сервера.Ранее скачанные зонды не смогут подключиться к серверу, для возобновления их работы следует обновить значение поля
server
в файле monitor.cfg. После редактирования конфигурации зонда запустите его и убедитесь, что зонд отображается на сервере Solution.
2.2.4. Изменение расположения файлов БД¶
Чтобы изменить директорию, в которой должны храниться файлы базы данных, выполните следующие команды от суперпользователя:
# Step #0: setup environment:
NEW_DB_LOCATION="/PATH/TO/NEW/DB/LOCATION" # set path to new location of DB files
# Step #1: check available space:
CUR_DB_DIR=$(realpath /var/lib/pgsql);
NEW_DB_LOCATION="$NEW_DB_LOCATION/pgsql";
mkdir -p "$NEW_DB_LOCATION";
if [ "$(findmnt -o TARGET -nT "$CUR_DB_DIR")" != "$(findmnt -o TARGET -nT "$NEW_DB_LOCATION")" ]; then
DB_SIZE=$(du -s -B1M "$CUR_DB_DIR" | cut -f1)
TARGET_FS_AVAIL=$(df -B1M --output=avail "$NEW_DB_LOCATION" | tail -1)
if [ "$DB_SIZE" -gt "$TARGET_FS_AVAIL" ]; then
echo "No sufficient space on destination FS:"
printf "%22s - %9d MB\n" \
"DB size" "$DB_SIZE" "target FS available" "$TARGET_FS_AVAIL"
fi
fi
# Step #2: stop PostgreSQL:
PG_VER=$(psql -V | sed 's/psql (PostgreSQL) \([0-9]\+\)\.[0-9]\+.*/\1/');
systemctl stop postgresql-${PG_VER}.service;
# Step #3: move files:
echo "Start copying: \"$CUR_DB_DIR\" -> \"$NEW_DB_LOCATION\" ...";
time mv -Tf "$CUR_DB_DIR" "$NEW_DB_LOCATION";
# Step #4: update link and SELinux rules:
ln -Tfs "$NEW_DB_LOCATION" /var/lib/pgsql;
semanage fcontext --add --equal /var/lib/pgsql "$NEW_DB_LOCATION";
restorecon -R "$NEW_DB_LOCATION";
# Step #5: restore services:
systemctl restart postgresql-${PG_VER}.service \
boro_sidekiq.default boro_puma.{web_api,default} \
boro_golang.{worker,server};
# Step #6: check Solution status:
/opt/elecard/bin/status.sh
Примечания:
Вместо
/PATH/TO/NEW/DB/LOCATION
следует указать директорию для хранения файлов базы данных. Дополнительная поддиректорияpgsql
создастся в указанном месте назначения;Из-за потенциально опасных операций следует выполнять скрипт по частям, проверяя ошибки после каждого шага;
Операция перемещения может занять некоторое время, которое зависит от размера БД и скоростей устройств хранения данных;
После выполнения переноса проверьте веб-интерфейс Solution.
2.2.5. Организация доступа к веб-интерфейсу по HTTPS¶
Чтобы настроить доступ к веб-интерфейсу по защищенному протоколу, необходимо выполнить следующее:
Добавить правило в Firewall:
firewall-cmd --state && (firewall-cmd --permanent --add-service=https; firewall-cmd --reload);
Далее следует настроить пути до сертификата и ключа, которые должны использоваться для установки HTTPS-соединения. Для этого в файле
/etc/nginx/sites-available/boro.https.conf
укажите пути до сертификатаssl_certificate
и ключаssl_certificate_key
. Рекомендуемым вариантом размещения сертификата и ключа являются пути, предуказанные в файлеboro.https.conf
Однако, если вы хотите использовать собственные пути размещения, требуется учесть следующие ограничения:файлы должны иметь одинаковый контекст безопасности SELinux
httpd_config_t
;не стоит размещать сертификат и ключ в домашних директориях каких-либо пользователей.
Для добавления конфигурационного файла с использованием HTTPS порта в nginx введите следующую команду:
ln -fs ../sites-available/boro.https.conf /etc/nginx/sites-enabled/boro.https.conf;
Чтобы проверить конфигурацию и перезапустить nginx:
nginx -t && (restorecon /var/run/nginx.pid; systemctl restart nginx)
2.2.6. Разрешение ControlAPI в Nginx¶
По умолчанию, доступ к API заблокирован для всех IP-адресов в настройках Nginx сервера.
Чтобы настроить доступ, необходимо отредактировать файл /etc/nginx/sites-include/boro.conf
на сервере Boro Solution.
Найдите в файле следующий блок:
location /ctrl_api {
# allow 10.1.1.0/16;
# allow 2001:0db8::/32;
deny all;
try_files /dev/null @default;
}
Чтобы предоставить доступ, раскомментируйте строку
allow
и укажите IP-адрес или пул IP-адресов. Вы можете указать список правил, указывая несколько директивallow
с новой строки.Для разрешения доступа с любого IP-адреса закомментируйте строку
deny all
, чтобы она выглядела следующим образом:# deny all;
Чтобы проверить конфигурацию и применить настройки, перезапустите nginx:
nginx -t && (restorecon /var/run/nginx.pid; systemctl restart nginx)
При возникновении ошибок устраните их и попытайтесь повторно применить конфигурацию.
Полезные ссылки: How To Whitelist IP in Nginx
2.2.7. Изменение сроков хранения статистики¶
По умолчанию срок хранения данных составляет 14 дней. Таким образом, вы сможете обратиться к истории мониторинга (журналы, статистика, графики, алармы и пр.) запущенных ранее задач. Ротация статистики происходит во время ежедневной очистки данных, в результате чего удаляются данные старше установленного срока хранения.
Если необходимо изменить срок хранения, перейдите к файлу /opt/elecard/boro-rails-server/config/.env.yml
и добавьте следующие строки:
db:
keep_rotation_tables_days: xx
Вместо xx
укажите нужный срок хранения в сутках. Далее примените изменения:
systemctl restart boro_sidekiq.default
2.2.8. Сброс пароля администратора¶
Если пароль администратора был скомпрометирован, то его можно изменить в Панели администрирования сервера.
Найдите пользователя admin@admin.com
, перейдите на вкладку редактирования информации и обновите его пароль.
Если пароль был забыт, единственный способ входа в аккаунт администратора — это сброс пароля.
Зайдите в консоль сервера, на котором установлен Boro Solution и от суперпользователя выполните следующий скрипт.
Где в качестве значения переменной USER_PASSWORD
необходимо указать новый пароль:
USER_EMAIL='admin@admin.com'
USER_PASSWORD='adm1n678'
su boro -c "
cd /opt/elecard/boro-rails-server;
source setup_env.sh;
bin/rails r \"
u = User.find_by!(email: '$USER_EMAIL');
u.password = '$USER_PASSWORD';
u.save(validate: false)
\"
"