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. Изменение имени сервера (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 sudo 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 sudo systemctl restart coturn fi
Вместо
local_BoroServer_ip_or_hostname
следует указать новое имя сервера. В результате будут изменены адрес сервера в конфигурационном файле зонда и адрес STUN/TURN сервера.Ранее скачанные зонды не смогут подключиться к серверу, для возобновления их работы следует обновить значение поля
server
в файле monitor.cfg. После редактирования конфигурации зонда запустите его и убедитесь, что зонд отображается на сервере Solution.
2.2.3. Изменение расположения файлов БД¶
Чтобы изменить директорию, в которой должны храниться файлы базы данных, выполните следующие команды от суперпользователя:
# 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.4. Организация доступа к веб-интерфейсу по 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.5. Разрешение 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.6. Изменение сроков хранения статистики¶
По умолчанию срок хранения данных составляет 14 дней. Таким образом, вы сможете обратиться к истории мониторинга (журналы, статистика, графики, алармы и пр.) запущенных ранее задач. Ротация статистики происходит во время ежедневной очистки данных, в результате чего удаляются данные старше установленного срока хранения.
Если необходимо изменить срок хранения, перейдите к файлу /opt/elecard/boro-rails-server/config/.env.yml
и добавьте следующие строки:
db:
keep_rotation_tables_days: xx
Вместо xx
укажите нужный срок хранения в сутках. Далее примените изменения:
systemctl restart boro_sidekiq.default
2.2.7. Сброс пароля администратора¶
Если пароль администратора был скомпрометирован, то его можно изменить в Панели администрирования сервера.
Найдите пользователя 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)
\"
"