"Element Management System" ("Система управления объектами инфраструктуры") (далее – Система, EMS) – геораспределенная система мониторинга и управления объектами инфраструктуры.
Документ содержит информацию, необходимую для администрирования ПО EMS версии 4.2.2
Настоящий документ является составной частью комплекта технической документации на систему EMS и разработан в соответствии с требованиями ГОСТ 2.105-95 «Единая система конструкторской документации. Общие требования к текстовым документам».
Система EMS предназначена для решения следующих бизнес-задач в IT-инфраструктуре компании:
- Снижение расходов на использование нескольких систем, за счет централизованного мониторинга аппаратных и программных (виртуальные машины, гипервизоры, сервисы) ОМиУ (объектов мониторинга и управления) в системе;
- Снижение времени на выполнение задач по обновлению и установке операционных систем и прошивок, за счет централизованной панели управления и возможности массового запуска операций на ОМиУ;
- Снижение времени реагирования на инциденты, за счет формирования необходимого представления инфраструктуры, выделения ОМиУ, требующих более пристального внимания и возможности настройки разных способов оповещения о событиях.
Система EMS предназначена для:
- Автоматизации задач управления серверным оборудованием;
- Автоматизации задач управления сетевым оборудованием;
- Мониторинга в режиме реального времени доступности серверов, устройств хранения и сетевых коммутаторов;
- Мониторинга виртуальных машин, гипервизоров, систем и сервисов;
- SMART мониторинга дисков;
- Автоматизации развертывания операционных систем и программного обеспечения;
- Предоставления информации для планирования модернизации оборудования ИТ-инфраструктуры.
Система представляет собой композицию docker-контейнеров. В качестве оркестратора контейнеров используется docker-compose
.
Bergen EMS
Наименование | Описание |
---|---|
EMS, Система | Element Management System (EMS) - система управления и мониторинга оборудования |
Docker | Программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации, контейнеризатор приложений |
Docker compose | Средство для определения и запуска приложений Docker с несколькими контейнерами |
single-node | ВМ для размещения EMS |
master_cluster | Группа сервисов EMS уровней middle и frontend |
tool_cluster | Группа сервисов EMS уровня бэк-энд |
transport_cluster | Группа инфраструктурных сервисов. (До EMS 3.3.0 storage_cluster ) |
Общие термины и определения
Наименование | Описание |
---|---|
bash | (англ. Bourne again shell) - усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки. |
firewall | (англ. firewall «брандмауэр») Персональный межсетевой экран — программное обеспечение, осуществляющее контроль сетевой активности компьютера, на котором он установлен, а также фильтрацию трафика в соответствии с заданными правилами. |
FirewallD | Инструмент управления брандмауэром для операционных систем Linux. Он предоставляет функции брандмауэра, выступая в качестве интерфейса для сетевой фильтрации ядра Linux. |
hostname | (англ. hostname - имя хоста) - метка, которая присваивается устройству, подключенному к компьютерной сети, и используется для идентификации устройства в различных формах электронной связи. |
HTTPS | (англ. HyperText Transfer Protocol Secure) - расширение протокола HTTP, для поддержки шифрования в целях повышения безопасности. Данные в протоколе HTTPS передаются поверх криптографических протоколов SSL или TLS. |
IPMI | Интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. |
ISO | (англ. International Organization for Standardization) Термин для обозначения образа оптического диска, содержащего файловую систему стандарта ISO 9660. |
LDAP | (англ. Lightweight Directory Access Protocol) - протокол прикладного уровня для доступа к службе каталогов. |
localhost | Стандартное, официально зарезервированное доменное имя для частных IP-адресов. |
MinIO | Серверное программное хранилище, совместимый с Amazon S3, он может обрабатывать неструктурированные данные, такие как фотографии, видео, файлы журналов, резервные копии и образы контейнеров с максимальным поддерживаемым размером объекта 5 ТБ. |
NATS.io | Система обмена сообщениями с открытым исходным кодом. |
OpenSearch | Распределённый, управляемый сообществом, лицензированный Apache 2.0, со 100 % открытым исходным кодом комплект поисковых и аналитических ресурсов для различных примеров использования, таких как мониторинг приложений в режиме реального времени, анализ журналов и поиск по веб-сайтам. |
PostgreSQL | Свободная объектно-реляционная система управления базами данных (СУБД). |
RPM-based | (рекурсивный акроним RPM Package Manager — RPM — менеджер пакетов; ранее раскрывался как Red Hat Package Manager — менеджер пакетов Red Hat) — формат пакетов программного обеспечения, а также программа, созданная для управления этими пакетами, используемые в ряде Linux-дистрибутивов; является основным форматом пакетов в LSB. |
sh | (англ. Shell script) Сценарий командной строки, или сценарий командной оболочки, — программа, выполняемая командной оболочкой операционной системы. Наиболее часто термин применяется к скриптам, написанным для Bourne shell — программной оболочки систем UNIX. |
SMTP | (англ. Simple Mail Transfer Protocol) - сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP. |
SNMP | (англ. Simple Network Management Protocol) - протокол, который используется для управления сетевыми устройствами. С помощью протокола SNMP, программное обеспечение для управления сетевыми устройствами может получать доступ к информации, которая хранится на управляемых устройствах. |
SSH | (англ. Secure Shell ) - сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений. |
SWAP | Механизм виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (отдельный раздел или файл), освобождая ОЗУ для загрузки других активных фрагментов памяти. |
TCP/IP | (англ. Transmission Control Protocol и Internet Protocol) — сетевая модель передачи данных, представленных в цифровом виде. Модель описывает способ передачи данных от источника информации к получателю |
Telegram | Кроссплатформенная система мгновенного обмена сообщениями с функциями обмениваться текстовыми, голосовыми и видеосообщениями, стикерами и фотографиями, файлами многих форматов. |
TLS | (англ. Transport Layer Security-защищённый транспортный узел) - протокол безопасности, обеспечивающий защищённую передачу данных между узлами в сети Интернет. |
UFW | Uncomplicated Firewall — это утилита для конфигурирования межсетевого экрана Netfilter. Она использует интерфейс командной строки, состоящий из небольшого числа простых команд. |
UEFI | (англ. Unified Extensible Firmware Interface - единый интерфейс расширяемой прошивки) - интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику или непосредственно ядру операционной системы. |
volume | В терминологии docker - хранилище данных, используемое контейнером в процессе работы. |
АРМ | Автоматизированное рабочее место - рабочее место специалиста, оснащенное персональным компьютером, программным обеспечением и совокупностью информационных ресурсов индивидуального или коллективного пользования. |
Бакет | Чтобы разместить файл в объектном хранилище S3, его необходимо поместить в бакет, сущность для организации хранения в хранилище. |
ВМ | Виртуальная машина - абстрактный вычислительный экземпляр, созданные программой, работающей на другой машине (физической), и который физически не существует, но работает, как настоящий компьютер. |
Гипервизор | Программа или аппаратная схема, обеспечивающая или позволяющая одновременное, параллельное выполнение нескольких операционных систем на одном и том же хост-компьютере. Гипервизор также обеспечивает изоляцию операционных систем друг от друга, защиту и безопасность, разделение ресурсов между различными запущенными ОС и управление ресурсами |
ИС | Информационная система |
ОМиУ | Оборудование мониторинга и управления |
ОС | Операционная система |
ЦОД | Центр обработки данных |
Действия по администрированию Системы выполняет эксплуатационный персонал заказчика в соответствии с ролью:
- Системный администратор - отвечает за следующие процессы:
- Подготовка инфраструктуры для установки Системы;
- Установка Системы;
- Первичное конфигурирование Системы;
- Установка первой лицензии на Систему;
- Эксплуатационное сопровождение и конфигурирование Системы;
- Эксплуатационная установка лицензий на Систему;
- Подготовка инфраструктуры для обновления Системы;
- Обновление Системы.
Для функционирования Системы, необходимо выполнение следующих общих требований:
- Протокол канала связи - IPv4;
- Пропускная способность каналов связи между серверами в пределах ЦОД - 1 Гбит/сек;
- Целевые ОМиУ должны находиться в одной сети с развернутым tool-кластером;
- Должна быть обеспечена сетевая доступность между transport-кластером и tool-кластером;
- Должна быть обеспечена сетевая доступность между АРМ оператора и master-кластером;
- Для выполнения процесса установки необходимо подключиться к ВМ, на которой производится установка по протоколу SSH;
- Все команды выполняются в консоли от имени пользователя root;
- Система может функционировать как в открытом, так и закрытом контуре.
Внимание: развертывание EMS в режиме HA возможно только на ОС Oracle Linux
В режиме HA EMS требует шесть нод с идентичной конфигурацией. Рекомендованные системные требования к аппаратному обеспечению приведены ниже.
В виду того, что EMS использует высокопроизводительные системы хранения данных, к дисковой подсистеме предъявляются строгие требования:
- Дисковая подсистема должна обеспечивать производительность не менее 15000 IOPS (количество операций ввода-вывода в секунду);
- Для обеспечения оптимальной производительности и стабильности Системы, настоятельно рекомендуется избегать использования сетевых файловых систем в качестве основного хранилища узлов. Применение сетевых файловых систем может привести к снижению производительности кластера, вплоть до потери функциональности;
- Для хранения узлов рекомендуется использовать локальные твердотельные накопители (SSD), установленные непосредственно на физический хост. Это гарантирует повышение эффективности работы Системы и уменьшение вероятности возникновения технических проблем, связанных с хранением данных;
- Рекомендованный необходимый объем дискового пространства для Системы, без учета пространства занимаемого ОС и прикладным ПО составляет не менее 300 GB;
- Для корректной работы Системы рекомендуется использовать разметку, при которой все пространство выделено под корневой раздел
/
; - При наличии особой разметки дисков следует удостовериться что:
- В каталоге установки Системы
/opt
доступно не менее 15 GB. Docker
для хранения данных, по умолчанию/var/lib/docker
доступно не менее 275 GB.- В каталоге первоначального размещения инсталляционного пакета
/root
доступно не менее 10 GB.
- В каталоге установки Системы
К CPU предъявляются строгие требования:
- На каждой ноде должно быть не менее 20 vCPU;
- 64-разрядный процессор с тактовой частотой не менее 2000 Hz.
К RAM предъявляются строгие требования:
- На каждой ноде должно быть доступно не менее 24 Gb;
- Версия - не ниже DDR4;
- Тип ECC (код исправления ошибок) или аналогичная технология.
Между нодами кластера должно быть обеспечено сетевое соединение со скоростью не менее 1 гигабит в секунду.
Рекомендованные системные требования к аппаратному обеспечению приведены ниже.
Рекомендованные системные требования к аппаратному обеспечению приведены ниже.
В виду того, что EMS использует высокопроизводительные системы хранения данных, к дисковой подсистеме предъявляются строгие требования:
- Дисковая подсистема должна обеспечивать производительность не менее 15000 IOPS (количество операций ввода-вывода в секунду);
- Для обеспечения оптимальной производительности и стабильности Системы, настоятельно рекомендуется избегать использования сетевых файловых систем в качестве основного хранилища узлов. Применение сетевых файловых систем может привести к снижению производительности кластера, вплоть до потери функциональности;
- Для хранения узлов рекомендуется использовать локальные твердотельные накопители (SSD), установленные непосредственно на физический хост. Это гарантирует повышение эффективности работы Системы и уменьшение вероятности возникновения технических проблем, связанных с хранением данных;
- Рекомендованный необходимый объем дискового пространства для Системы, без учета пространства занимаемого ОС и прикладным ПО составляет не менее 200 GB;
- Для корректной работы Системы рекомендуется использовать разметку, при которой все пространство выделено под корневой раздел
/
; - При наличии особой разметки дисков следует удостовериться что:
- В каталоге установки Системы
/opt
доступно не менее 15 GB. Docker
для хранения данных, по умолчанию/var/lib/docker
доступно не менее 175 GB.- В каталоге первоначального размещения инсталляционного пакета
/root
доступно не менее 10 GB.
- В каталоге установки Системы
К CPU предъявляются строгие требования:
- На каждой ноде должно быть не менее 20 vCPU;
- 64-разрядный процессор с тактовой частотой не менее 2000 Hz.
К RAM предъявляются строгие требования:
- На каждой ноде должно быть доступно не менее 20 Gb;
- Версия - не ниже DDR4;
- Тип ECC (код исправления ошибок) или аналогичная технология.
Между нодами кластера должно быть обеспечено сетевое соединение со скоростью не менее 1 гигабит в секунду.
В виду того, что EMS использует высокопроизводительные системы хранения данных, к дисковой подсистеме предъявляются строгие требования:
- Дисковая подсистема должна обеспечивать производительность не менее 15000 IOPS (количество операций ввода-вывода в секунду);
- Для обеспечения оптимальной производительности и стабильности Системы, настоятельно рекомендуется избегать использования сетевых файловых систем в качестве основного хранилища узлов. Применение сетевых файловых систем может привести к снижению производительности кластера, вплоть до потери функциональности;
- Для хранения узлов рекомендуется использовать локальные твердотельные накопители (SSD), установленные непосредственно на физический хост. Это гарантирует повышение эффективности работы Системы и уменьшение вероятности возникновения технических проблем, связанных с хранением данных;
- Рекомендованный необходимый объем дискового пространства для Системы, без учета пространства занимаемого ОС и прикладным ПО составляет не менее 200 GB;
- Для корректной работы Системы рекомендуется использовать разметку, при которой все пространство выделено под корневой раздел
/
; - При наличии особой разметки дисков следует удостовериться что:
- В каталоге установки Системы
/opt
доступно не менее 15 GB. Docker
для хранения данных, по умолчанию/var/lib/docker
доступно не менее 175 GB.- В каталоге первоначального размещения инсталляционного пакета
/root
доступно не менее 10 GB.
- В каталоге установки Системы
К CPU предъявляются строгие требования:
- На каждой ноде должно быть не менее 20 vCPU;
- 64-разрядный процессор с тактовой частотой не менее 2000 Hz.
К RAM предъявляются строгие требования:
- На каждой ноде должно быть доступно не менее 20 Gb;
- Версия - не ниже DDR4;
- Тип ECC (код исправления ошибок) или аналогичная технология.
Между нодами кластера должно быть обеспечено сетевое соединение со скоростью не менее 1 гигабит в секунду.
Поддерживаемые ОС для функционирования серверной части Системы EMS:
- Oracle 8.9 Server Minimal;
- Ubuntu 22.04.1 LTS Server;
- Astra Linux Common Edition 1.7_x86-64;
- RedOS 7.3.
При этом, необходимо обеспечить:
- Строгое соответствие по версиям ОС.
Версии инфраструктурных компонентов входящих в инсталляционный пакет (строгое соответствие по версиям) (Таблица 3):
Таблица 3. Версии инфраструктурных компонентов
№ | Сервис | Версия |
---|---|---|
1 | Nats | 2.10.14-alpine3.19 |
2 | PostgreSQL | 14.6 |
3 | Opensearch | 2.8.0 |
4 | Opensearch Dashboards | 2.6.0 |
5 | Minio | RELEASE.2021-04-22T15-44-28Z.hotfix.8c654a725 |
6 | smallstep/step-ca | 0.25.2 |
7 | opentelemetry-collector-contrib | 0.88.0 |
8 | sftp | 5.1.5 |
9 | data-prepper | 2.5.0 |
Внимание: Обязательно использование инфраструктурных компонентов из состава инсталляционного пакета.
На ВМ кластера должно быть развернуто прикладное ПО (строгое соответствие по версии):
- docker 26.1.3
Внимание: Функционирование гарантировано при использовании конфигурации docker по умолчанию. Если в компании приняты какие-либо стандарты конфигурирования ПО docker, в случае возникновения проблем с запуском EMS, исправьте настройки docker для обеспечения работоспособности EMS или верните настройки docker по умолчанию. В случае наличия корпоративных политик по обновлению используемых программных продуктов и их компонентов, необходимо поставить данное ПО как исключение для ограничения обновлений
Нестандартная конфигурация Docker должна удовлетворять следующим требованиям:
- Запуск и работа 52 контейнеров EMS.
Внимание: Настройки docker должны позволять выделить IP-адреса по количеству контейнеров внутри docker-сети.
Вспомогательное ПО представляет из себя утилиты в GNU/Linux (версии соответствуют доступным ОС):
vi
- текстовый редактор (можно использовать любой доступный в системе, напримерnano
илиvim
).tar
- архиватор для файлов формата .tar;
Под АРМ оператора в текущем документе подразумевается рабочее место администратора, выполняющего установку, настройку, обновление и сопровождение Системы EMS.
Общие требования к АРМ оператора:
- Для обеспечения функционирования клиентской части ПО EMS, рабочий компьютер пользователя должен удовлетворять следующим минимальным требованиям:
- Процессор производительностью не ниже i5 9400+;
- Минимум 8 Гб памяти;
- Минимум 20 Гб свободного места на HDD или SSD;
- Минимальное разрешение экрана пользователя не менее 1920x1080 пикселей;
- Пропускная способность сетевого канала связи между компьютером пользователя и сервером должно составлять не менее 20 Мбит/сек, время прохождения пакетов не более 100 мс.
-
Операционная система должна обладать GUI.
-
Для обеспечения корректного функционирования ПО EMS, программное обеспечение АРМ должно использовать следующие настройки по умолчанию:
- Масштаб в web-браузере 100%;
- Размер шрифтов в ОС без масштабирования (100%).
- ПО для взаимодействия с интерфейсом системы:
- SSH клиент;
- Яндекс Браузер 22.9.5.
Для выполнения шагов, описанных в документе, пользователь должен обладать практическими знаниями в области администрирования ОС Linux.
Для правильной работы Системы, настройки сети должны быть удовлетворены следующие требования (Таблица 4):
Внимание: Для правильной работы EMS на ВМ должен быть отключен системный firewall. Для ОС Ubuntu
ufw disable
. Для ОС Oraclesystemctl disable --now firewalld
.
После выключения файервола требуется перезапустить службу Docker командой systemctl restart docker
Таблица 4. Настройки сети
№ | Роль кластера | Открытые сетевые соединения для работы сервиса | Разрешение на доступ EMS к ИС заказчика | Требования к firewalld/ufw |
---|---|---|---|---|
1 | Single-node | 443/tcp, 52004/tcp, 21890/tcp, 389/tcp, 636/tcp, 514/udp, 601/tcp, 6514/udp, 6514/tcp, 80/tcp, 80/udp, 67/udp, 69/udp, 5101/tcp, 9000/tcp, 2222/tcp, 9333/tcp, 5333/tcp, 44222/tcp, 7071/tcp, 4317/tcp, 52003/tcp, 52002/tcp, 52005/tcp, 7091/tcp, 25/tcp, 22/tcp, 53/tcp, необходимо обеспечить доступ от BMC сервера до ВМ по портам | AD/LDAP, SMTP, DNS, DHCP, Docker Registry (в случае установки docker и docker compose из корпоративного реестра), SMPP, IPMI, Redfish, SSH | Отключены |
Выполнить проверку системы на соответствие требованиям можно с помощью пакета emsinstaller, автоматически установленным при инсталляции Системы.
Для того, чтобы выполнить проверку ВМ single-node
выполните команды:
gzip -d ~/ems-4.2.2.tar.gz
mkdir -p ~/ems-4.2.2
tar -xvf ~/ems-4.2.2.tar -C ~/ems-4.2.2
mv -f ~/license.json ~/ems-4.2.2/master/config/license.json
cd ~/ems-4.2.2
chmod +x -R bin/* executable/*
chmod 0700 ~/ems-4.2.2/emsinstaller
rm -f /opt/config/emssyscheck/* || true
rm -f /opt/ems/config/emssyscheck/* || true
~/ems-4.2.2/emsinstaller --mode check
Пример рабочего вывода в процессе выполнения:
~/ems-4.2.2/emsinstaller --mode check
Выполняется проверка системы.
/root/ems-4.2.2/bin/emssyscheck --config /root/ems-4.2.2/config/emssyscheck/requirements.json --cluster single
✅ Файл лицензий (Доступно: license.json) обнаружен
✅ Операционная система (Доступно: Oracle Linux Server 8.8) соответствует требованиям
✅ Количество доступных CPU (Доступно: 20; требуется: 20) соответствует требованиям
⚡ Количество RAM (Доступно: 19.24 Gb; требуется: 20.00 Gb) не соответствует требованиям, но находится в допустимых пределах
⚡ Доступное дисковое пространство (Доступно: bdev: /dev/mapper/ol-root; mp: /; 187.00 Gb; требуется: 200.00 Gb) не соответствует требованиям, но находится в допустимых пределах
✅ Версия Docker (Доступно: 26.1.3) соответствует требованиям
✅ Версия Docker-compose (Доступно: 2.27) соответствует требованиям
✅ Система соответствует требованиям /root/ems-4.2.2/config/emssyscheck/requirements.json, для установки EMS!
Предполагается, что внутри сети, в которой разворачивается EMS имя заданное в переменной
TRANSPORT_HOSTNAME
разрешается (resolve) вTRANSPORT_IP
, например:
$ ping ems.transport.bergen.tech
PING ems.transport.bergen.tech (192.168.1.123) 56(84) bytes of data.
64 bytes from ems.transport.bergen.tech (192.168.1.123): icmp_seq=1 ttl=61 time=115 ms
64 bytes from ems.transport.bergen.tech (192.168.1.123): icmp_seq=2 ttl=61 time=154 ms
^C
Где ems.transport.bergen.tech
это TRANSPORT_HOSTNAME
, а 192.168.1.123
это TRANSPORT_IP
.
Чтобы определить значение переменной CLIENT_NAME
требуемой для установки EMS
, следует открыть полученный файл лицензий любым удобным способом(в инсталляционном пакете master_cluster/config/license.json
), и найти значение ключа "client_name"
:
Например, с использованием cat
:
cat master_cluster/config/license.json
В выводе будет примерно следующее:
{"license_id":"EMS:0000000-000-0000-0008-0000000000","client_name":"EMS","soft_name":"EMS"...
В разделе "client_name":"EMS"
значение CLIENT_NAME
находится в кавычках после знака (:
).
В конфигурации инсталлятора значение переменной необходимо указывать в кавычках.
Для определения значения ACME_FINGERPRINT
необходимо выполнить:
docker exec -it transport-acme-1 cat /home/step/config/defaults.json | grep "fingerprint"
В выводе должно отобразиться следующее:
"fingerprint": "ab81afd5a7acc6d65ffd3cb7bcc46764665505d82545facb98267ae3b3cdf1e6",
Значение в кавычках после знака :
и есть ACME_FINGERPRINT
.
Сгенерируйте сертификат, который будет будет корневым для EMS, необходимы файлы ca.crt
и ca.key
.
Замените им стандартные сертификаты /opt/ems/transport/config/acme_config/ca.crt
, /opt/ems/transport/config/acme_config/ca.key
.
Для получения fingerprint вашего сертификата выполните команду:
docker run \
-v /opt/ems/transport/config/acme_config/ca.crt:/home/certs/ca.crt \
-v /opt/ems/transport/config/acme_config/ca.key:/home/certs/ca.key \
-v /opt/ems/transport/config/step_password:/home/step/secrets/password \
registry.bergen.tech/ems/deploy/step-ca:4.0.0-803f5368 \
step certificate fingerprint /home/certs/ca.crt
Последняя строка вывода - ваш fingerprint.
Полученное значение нужно установить переменной ACME_FINGERPRINT
в файлах .env
во всех директориях master
, tool
, transport
.
Также вы можете изменить перед созданием новой конфигурации пароль для подключения к центру сертификации, используя файл - /opt/ems/transport/config/password
.
При его изменении не забудьте изменить пароль в файлах:
opt/ems/master/config/step_password
opt/ems/tool/config/step_password
А также переменную ACME_PROVISIONER_PASSWORD
в файлах .env
во всех директориях master
, tool
, transport
.
Система способна отправлять уведомления пользователям в Telegram.
Для настройки отправки уведомлений в мессенджер Telegram необходимо выполнить следующие шаги:
- Перейдите по ссылке
https://t.me/BotFather
. В мессенджере откроется специальный пользователь для создания бота; - Отправьте команду:
/newbot
, для создания нового бота; - Отправьте имя бота:
ems-bot-${MY_NAME}
, ${MY_NAME} необходимо заменить на название компании; - При необходимости установите аватар бота
/setuserpic
,ems-bot-${MY_NAME}
; - В ответ будет отправлен токен доступа бота. Необходимо его скопировать.
- Подключитесь к
master-node
с помощью ssh-клиента:
Замените {{ MASTER_NODE_IP }} на IP адрес ВМ
master-node
.
ssh root@{{ MASTER_NODE_IP }}
- Измените конфигурацию EMS в файле
/opt/ems/master/.env
Файл .env
расположен в каталоге /opt/ems/master/
на ВМ Системы EMS.
Файл может быть отредактирован любым текстовым редактором. Пример с использованием текстового редактора vi
:
vi /opt/ems/master/.env
-
В значение переменной
TELEGRAM_KEY
введите токен доступа бота полученный на шаге 5; -
Для сохранения изменений и выхода из редактора нажмите
<ESC>
; редактор переведется в режим команд, после чего введите:wq
, и нажмите<Enter>
(для редакторовvi
иvim
).
Настройка EMS для использования бота описана в Руководстве пользователя.
- После внесения изменений необходимо удалить контейнер
user-service
, для этого выполнить команду:
docker rm -f master-user-service-1
- Необходимо выполнить запуск контейнера с внесенными изменениями, для этого выполнить команду:
/opt/ems/bin/emsinstaller --mode install-only
Для настройки отправки sms уведомлений необходимо выполнить следующие шаги:
- Получить услугу у провайдера sms-рассылки. Провайдер должен предоставить следующие данные:
№ | Параметр конфигурации | Описание |
---|---|---|
1 | SMPP_HOST | URL для подключения к сервису sms рассылки |
2 | SMPP_PORT | Порт для подключения к сервису sms рассылки |
3 | SMPP_TIMEOUT | Таймаут получения ответа от сервиса sms рассылки |
4 | SMPP_SYSTEM_ID | ID аккаунта для подключения к сервису sms рассылки |
5 | SMPP_PASSWORD | Пароль аккаунта для подключения к сервису sms рассылки |
6 | SMPP_PHONE_NUMBER | Номер телефона, от которого будут приходить оповещения |
- Подключитесь к с помощью ssh-клиента:
Замените {{ EMS_NODE_IP }} на IP адрес ВМ на которой размещен EMS.
ssh root@{{ EMS_NODE_IP }}
- Измените конфигурацию EMS в файле
/opt/ems/master/.env
Файл .env
расположен в каталоге /opt/ems/master/
на ВМ Системы EMS.
Файл может быть отредактирован любым текстовым редактором. Пример с использованием текстового редактора vi
:
vi /opt/ems/master/.env
- Найдите и укажите значения следующих переменных:
SMPP_HOST=<Задайте_значение_выданное_провайдером>
SMPP_PORT=<Задайте_значение_выданное_провайдером>
SMPP_TIMEOUT=<Задайте_значение_выданное_провайдером>
SMPP_SYSTEM_ID=<Задайте_значение_выданное_провайдером>
SMPP_PASSWORD=<Задайте_значение_выданное_провайдером>
SMPP_PHONE_NUMBER=<Задайте_значение_выданное_провайдером>
-
Для сохранения изменений и выхода из редактора нажмите
<ESC>
; редактор переведется в режим команд, после чего введите:wq
, и нажмите<Enter>
(для редакторовvi
иvim
). -
После внесения изменений необходимо удалить контейнер
user-service
, для этого выполнить команду:
docker rm -f master-user-service-1
- Необходимо выполнить запуск контейнера с внесенными изменениями, для этого выполнить команду:
/opt/ems/bin/emsinstaller --mode install-only
Для обеспечения работоспособности функционала по выполнению операции по установке ОС необходимо выполнить подготовительные работы на ВМ single-node
.
Внимание: Данный шаг актуален только для tool-кластеров под управлением ОС Oracle Linux.
На ВМ single-node
необходимо выполнить следующие команды:
mknod /dev/loop0 b 7 0
Для того, чтобы изменения сохранялись после перезагрузки ВМ необходимо выполнить следующие команды:
- Создать и открыть следующий файл:
vi /etc/tmpfiles.d/loop.conf
- Добавить в файл такое содержимое:
b! /dev/loop0 0660 root disk - 7:0
- Для сохранения изменений и выхода из редактора нажмите
<ESC>
; редактор переведется в режим команд, после чего введите:wq
, и нажмите<Enter>
(для редакторовvi
иvim
).
Для успешной установки ОС по сети должны выполняться следующие условия:
-
PXE сервер должен находиться в той же подсети, что и целевое оборудование (машина, на которую требуется установить ОС, физическая или виртуальная)
-
DHCP сервер должен быть настроен для работы с сетевой установкой ОС. Для этого в его настройках должны быть указаны значения для опций filename (опция 67) и next-server (опция 66).
Ниже приведен пример установки этих опций для работы c PXE сервером в составе EMS:
cat dhcpd.conf
Содержимое файла:
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.170;
option domain-name-servers 10.1.15.10, 46.8.32.254;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.5;
}
option client-architecture code 93 = unsigned integer 16;
if exists user-class and option user-class = "iPXE" {
filename "install.ipxe";
} elsif option client-architecture = 00:00 {
filename "undionly.kpxe";
} else {
filename "ipxe.efi";
}
В вышеописанном случае в качестве адреса PXE сервера указан адрес 192.168.1.5. В других окружениях он будет отличаться. Также, в этом примере используется гибкая установка опции filename, которая зависит от архитектуры целевого оборудования, которое может не поддерживать iPXE. Эту конфигурацию следует копировать без изменений.
- Заходим в контейнер opensearch следующей командой:
docker exec -it master-psql-1 /bin/bash
Чтобы изменить пароль администратора, необходимо выполнить следующие команды:
psql -U postgres
\password
После чего необходимо ввести новый пароль.
- Открываем compose.env на master ноде следующее командой:
vi /opt/ems/master/.env
Заменяем значение OPENSEARCH_BASIC_TOKEN
новым токеном.
- Выполняем применение настроек ЕМС путём перезапуска проекта docker-compose
/opt/ems/bin/emsinstaller --mode install-only
- Заходим в контейнер opensearch следующей командой:
docker exec -it ems-opensearch-1 /bin/bash
Чтобы изменить пароль администратора, сначала нужно сгенерировать новый хешированный пароль.
- Для этого нужно запустить скрипт генерации пароля следующей командой:
./plugins/opensearch-security/tools/hash.sh -p <new password>
Пример вывода команды:
**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755 **
**************************************************************************
$2y$12$GDeJzkhnvJhpp6qXOnhjm.AkOGeAvuTdYbMRcCIorNrBwmSiGKAam
-
Сохраняем сгенерированный хэш
-
Открываем файл с базой данных внутренних пользователей следующей командой:
vi config/opensearch-security/internal_users.yml
-
В записи пользователя "admin". Замените существующий хешированный пароль на новый, сгенерированный в шаге 2
-
Добавляем пользователя opensearch в группу пользователей admin.
Откройте файл конфигурации opensearch следующей командой: vi config/opensearch.yml Добавить в конец файла следующие строки:
plugins.security.authcz.admin_dn:
- "CN=opensearch"
- Выходим из контейнера и перезапускаем контейнер opensearch.
docker restart ems-opensearch-1
- После перезапуска контейнера снова заходим в контейнер.
docker exec -it ems-opensearch-1 /bin/bash
И выполняем следующую команду:
plugins/opensearch-security/tools/securityadmin.sh -cd config/opensearch-security/ -icl -nhnv -cacert ./config/root-ca.pem -cert ./config/opensearch.pem -key ./config/opensearch-key.pem
Пример вывода команды:
**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755 **
**************************************************************************
Security Admin v7
Will connect to localhost:9200 ... done
Connected as "CN=opensearch"
OpenSearch Version: 2.8.0
Contacting opensearch cluster 'opensearch' and wait for YELLOW clusterstate ...
Clustername: opensearch-cluster
Clusterstate: YELLOW
Number of nodes: 1
Number of data nodes: 1
.opendistro_security index already exists, so we do not need to create one.
Populate config from /usr/share/opensearch/config/opensearch-security
Will update '/config' with config/opensearch-security/config.yml
SUCC: Configuration for 'config' created or updated
Will update '/roles' with config/opensearch-security/roles.yml
SUCC: Configuration for 'roles' created or updated
Will update '/rolesmapping' with config/opensearch-security/roles_mapping.yml
SUCC: Configuration for 'rolesmapping' created or updated
Will update '/internalusers' with config/opensearch-security/internal_users.yml
SUCC: Configuration for 'internalusers' created or updated
Will update '/actiongroups' with config/opensearch-security/action_groups.yml
SUCC: Configuration for 'actiongroups' created or updated
Will update '/tenants' with config/opensearch-security/tenants.yml
SUCC: Configuration for 'tenants' created or updated
Will update '/nodesdn' with config/opensearch-security/nodes_dn.yml
SUCC: Configuration for 'nodesdn' created or updated
Will update '/whitelist' with config/opensearch-security/whitelist.yml
SUCC: Configuration for 'whitelist' created or updated
Will update '/audit' with config/opensearch-security/audit.yml
SUCC: Configuration for 'audit' created or updated
Will update '/allowlist' with config/opensearch-security/allowlist.yml
SUCC: Configuration for 'allowlist' created or updated
SUCC: Expected 10 config types for node {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} is 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) due to: null
Done with success
Данный вывод показывает, что пароль пользователя admin изменён.
Для проверки успешного изменения пароля необходимо перейти в дашборд Opensearch по адресу : https://:52003/
- Получение токена
На странице дашборда OpenSearch нажмите F12.
Откроется панель разработчика, в которой необходимо перейти во вкладку Network и обновить страницу.
Появится информация с запросами на странице.
Нажимаем на строке с адресом.
Справа во вкладке Headers нужно найти строку Authorization и скопировать токен.
- Открываем compose.env на master ноде следующее командой:
vi /opt/ems/master/.env
Заменяем значение OPENSEARCH_BASIC_TOKEN
новым токеном.
- Выполняем применение настроек ЕМС путём перезапуска проекта docker-compose
/opt/ems/bin/emsinstaller --mode install-only
Для того, чтобы изменить пароль minio, необходимо изменить значения переменных в следующих файлах:
- Файл master/.env, строка 56:
MINIO_ROOT_PASSWORD=minio_key
- Файл tool/.env, строка 58:
MINIO_PASSWORD=minio_key
- Файл tool/compose.yaml, строка 113:
AWS_SECRET_ACCESS_KEY: minio_key
- Файл tool/compose.yaml, строка 181:
Minio__Local__Password: minio_key
- Файл tool/compose.yaml, строка 504:
MINIO_ROOT_PASSWORD: minio_key
- Файл transport/compose.yaml, строка 71:
MINIO_ROOT_PASSWORD: minio_key
После изменения параметров переменных необходимо перезапустить композ проекты:
/opt/ems/bin/emsinstaller --mode install-only
В Системе предусмотрена возможность настройки политик хранения данных с указанием срока их хранения. По истечении срока данные, соответствующие политкам, будут автоматически удаляться.
По умолчанию, после инсталляции Системы, политики сроков хранения отключены. При этом заранее предустановлено значение срока хранения равное 90 дней, оно будет применено при включении политик. В случае необходимости срок хранения можно изменить отдельно для каждой политики.
Для того, чтобы включить политику очистки по умолчанию необходимо выполнить следующие шаги:
- Перейти в инструмент Opensearch Dashboards, доступный по адресу
http://<ems-ip>:52004/
(где - соответствует текущему URL фронта ПО EMS) и авторизоваться. По умолчанию, пользовательadmin
, парольadmin
(инструкцию по смене дефолтного пароля - см в разделе 4.1.9.2 текущего документа):
- Перейти в компонент Index Management -> Policy managed indices:
- Для политик в статусе Failed убедиться, что сообщение в столбце info содержит текст «Missing rollover_alias index setting»:
-
Для таких индексов необходимо выполнить следующие настройки:
4.1. Выделить и скопировать в буфер обмена название индекса без числового значения, как на рисунке ниже:
4.2. Закрыть окно сообщения.
4.3. Выделить (установить переключатель «галочка» слева) проблемную политику и нажать кнопку «Edit rollover alias»
4.4. Вставить скопированное ранее значение в поле в открывшемся окне и нажать кнопку «Edit»:
4.5. Убедиться, что выделение с политики не снято, нажать кнопку «Retry policy»:
4.6. В появившемся окне установить переключатель на значение «Retry policy from selected state» и нажать кнопку «Retry»:
Изменение политики очистки для индексов.
-
Перейти в инструмент OpenSearch Dashboards, доступный по адресу
http://ems-ip:52004/
и авторизоваться. По умолчанию пользовательadmin
, парольadmin
-
Перейти в компонент Index Management -> State management policies
-
Выбрать нужную политику и нажать кнопку «Edit»:
-
В появившемся окне выбрать «JSON editor» и нажать кнопку «Continue»
-
В окне редактора кода найти раздел «transitions» и исправить значение параметра «min_index_age» на требуемое (в формате количества дней хранения). После чего нажать кнопку «Update»:
Корректная работа master_cluster
и tool_cluster
зависит от состояния transport_cluster
, поэтому в первую очередь следует убедиться в работоспособности ноды transport_cluster
.
Для того, чтобы убедиться в работоспособности transport_cluster
, необходимо подключиться к ВМ с ролью transport
по протоколу ssh
и выполнить:
watch docker ps -a
В выводе контейнеры должны быть в состоянии Up
.
Выход из команды осуществляется нажатием сочетания клавиш <CTRL> + C
.
Пример рабочего вывода:
$ watch docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
... localhost:5000/library/step-ca:0.24.2 ... 3 minutes ago Up 3 minutes ... ems-acme-1
... localhost:5000/ems/deploy/nats:2.9.18 ... 3 minutes ago Up 3 minutes ... ems-leaf-nats-1
... localhost:5000/ems/deploy/system-minio:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-minio-1
... localhost:5000/ems/middle/socket-hub:3.3.0 ... 3 minutes ago Up 3 minutes ... ems-socket-hub-1
... localhost:5000/library/traefik:v2.9.8 ... 3 minutes ago Up 3 minutes ... ems-traefik-1
... registry:2 ... 3 minutes ago Up 3 minutes ... registry
... localhost:5000/ems/back/watchdog:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-watchdog-transport-1
Для того, чтобы убедиться в работоспособности master_cluster
, необходимо подключиться к ВМ с ролью master
по протоколу ssh
и выполнить:
watch docker ps -a
В выводе контейнеры должны быть в состоянии Up
.
Выход из команды осуществляется нажатием сочетания клавиш <CTRL> + C
.
Пример рабочего вывода:
$ watch docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
... localhost:5000/ems/middle/proto-gateway:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-api-gw-1
... localhost:5000/ems/back/glauth:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-device-authory-center-master-1
... localhost:5000/ems/middle/device-metric-manager:4.2.2-presenter ... 3 minutes ago Up 3 minutes ... ems-device-metric-presenter-1
... localhost:5000/ems/middle/device-metric-manager:4.2.2-writer ... 3 minutes ago Up 3 minutes ... ems-device-metric-writer-1
... localhost:5000/ems/middle/device-metric-manager:4.2.2-writer ... 3 minutes ago Up 3 minutes ... ems-device-metric-writer-2
... localhost:5000/ems/middle/device-store:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-device-store-1
... localhost:5000/ems/middle/docs:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-docs-1
... localhost:5000/ems/middle/explorer:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-explorer-1
... localhost:5000/ems/deploy/nats:2.9.18 ... 3 minutes ago Up 3 minutes ... ems-kv-nats-1
... localhost:5000/lic/license-server:1.0.9 ... 3 minutes ago Up 3 minutes ... ems-license-server-1
... localhost:5000/ems/middle/master-network-watcher:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-network-watcher-1
... localhost:5000/ems/deploy/opensearch:2.8.0-acme-1.0 ... 3 minutes ago Up 3 minutes ... ems-opensearch-1
... localhost:5000/library/opensearch-dashboards:2.6.0-openssl ... 3 minutes ago Up 3 minutes ... ems-opensearch-dashboards-1
... localhost:5000/library/postgres:14.6-alpine3.17 ... 3 minutes ago Up 3 minutes ... ems-psql-1
... localhost:5000/library/redis:7.0.7-alpine3.17 ... 3 minutes ago Up 3 minutes ... ems-redis-1
... localhost:5000/ems/middle/report-scripts:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-report-service-1
... localhost:5000/ems/middle/repository-service:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-repository-service-1
... localhost:5000/ems/middle/system-metric-manager:4.2.2-presenter ... 3 minutes ago Up 3 minutes ... ems-system-metric-presenter-1
... localhost:5000/ems/middle/system-metric-manager:4.2.2-writer ... 3 minutes ago Up 3 minutes ... ems-system-metric-writer-1
... localhost:5000/ems/middle/system-service:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-system-service-1
... localhost:5000/ems/middle/task-service.config:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-task-service-1
... localhost:5000/ems/front:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-ui-1
... localhost:5000/ems/middle/user-service.config:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-user-service-1
... localhost:5000/ems/back/watchdog:4.2.2 ... 3 minutes ago Up 3 minutes ... ems-watchdog-master-1
... registry:2 ... 3 minutes ago Up 3 minutes ... registry
Для того, чтобы убедиться в работоспособности tool_cluster
, необходимо подключиться к ВМ с ролью tool
по протоколу ssh
и выполнить:
watch docker ps -a
В выводе контейнеры должны быть в состоянии Up
.
Выход из команды осуществляется нажатием сочетания клавиш <CTRL> + C
.
Пример рабочего вывода:
$ watch docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
... localhost:5000/ems/deploy/nats:2.9.18 ... 3 minutes ago UP 3 minutes ... ems-agent-nats-1
... localhost:5000/ems/back/backup-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-backup-handler-1
... localhost:5000/ems/back/bmcbios-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-bmcbios-handler-1
... localhost:5000/ems/back/cacher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-cacher-1
... localhost:5000/ems/back/cacher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-cacher-2
... localhost:5000/ems/back/glauth:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-device-authory-center-1
... localhost:5000/ems/back/dhcp-heathchecker:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-dhcp-healthchecker-1
... localhost:5000/ems/back/dispatcher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-dispatcher-1
... localhost:5000/ems/back/dispatcher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-dispatcher-2
... localhost:5000/ems/back/dispatcher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-dispatcher-3
... localhost:5000/ems/back/dispatcher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-dispatcher-4
... localhost:5000/ems/back/dispatcher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-dispatcher-5
... localhost:5000/ems/back/dispatcher:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-dispatcher-host-1
... localhost:5000/ems/deploy/nats:2.9.18 ... 3 minutes ago UP 3 minutes ... ems-event-nats-1
... localhost:5000/ems/back/fping-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-fping-handler-1
... localhost:5000/ems/back/fping-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-fping-handler-2
... localhost:5000/ems/back/hypervisor-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-hypervisor-handler-1
... localhost:5000/ems/back/ipmi-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-ipmi-handler-1
... localhost:5000/ems/back/netboot-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-netboot-handler-1
... localhost:5000/ems/back/os-manager-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-os-manager-1
... localhost:5000/ems/back/redfish-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-redfish-handler-1
... localhost:5000/library/redis:7.0.7-alpine3.17 ... 3 minutes ago UP 3 minutes ... ems-redis-1
... localhost:5000/ems/back/service-monitoring:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-service-monitoring-1
... localhost:5000/library/sftp:5.1.5 ... 3 minutes ago UP 3 minutes ... ems-sftp-proxy-1
... localhost:5000/library/minio:v0.3.3 ... 3 minutes ago UP 3 minutes ... ems-slave-minio-1
... localhost:5000/ems/back/smart-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-smart-handler-1
... localhost:5000/ems/back/snmp-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-snmp-handler-1
... localhost:5000/ems/middle/socket-hub:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-socket-proxy-1
... localhost:5000/ems/back/ssh-checker:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-ssh-checker-1
... localhost:5000/ems/back/ssh-web-console-upgraded:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-ssh-web-console-1
... localhost:5000/ems/back/syslog-getter:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-syslog-getter-1
... localhost:5000/ems/back/syslog-handler:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-syslog-handler-1
... localhost:5000/ems/back/watchdog:4.2.2 ... 3 minutes ago UP 3 minutes ... ems-watchdog-1
... registry:2 ... 3 minutes ago Up 3 minutes ... registry
Проверить доступность кластера можно выполнив команду:
curl https://{{ MASTER_HOSTNAME }}:52003 -u 'login:password'
Замените {{ MASTER_HOSTNAME }} на hostname адрес ВМ
master-node
.
По умолчанию для login:password используется пара admin:admin
Вывод будет представлен в формате JSON и будет отражать базовые метрики кластера OpenSearch.
PostgreSQL должен принимать подключения на ВМ master_cluster
, на порту 52005.
telnet {{ MASTER_HOSTNAME }} 52003
Замените {{ MASTER_HOSTNAME }} на hostname адрес ВМ
master-node
.
Проверить версию PostgreSQL можно выполнив команду в консоли psql:
SELECT version();
Версия должна быть не ниже требований.
Для просмотра состояния TLS-подключения необходимо выполнить команду в консоли psql SELECT * FROM pg_stat_ssl;
:
postgres=# SELECT * FROM pg_stat_ssl;
Пример рабочего вывода в процессе выполнения:
pid | ssl | version | cipher | bits | client_dn | client_serial | issuer_dn
-------+-----+---------+------------------------+------+-----------+---------------+-----------
35156 | t | TLSv1.3 | TLS_AES_256_GCM_SHA384 | 256 | | |
(1 row)
Проверить доступность сервиса выполнив запрос в браузере «https://<STORAGE_HOSTNAME>/minio». Ввести логин и пароль, заданные при конфигурации, и зайти на сервер.
В случае если Minio работает корректно откроется интерфейс Minio Dashboard, в котором отобразятся существующие buckets и их содержимое.
Если интерфейс недоступен, необходимо проверить состояние контейнера minio
на ноде transport_cluster
.
Для проверки работы Minio можно использовать клиент mc.
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
./mc alias set myminio/ https://<STORAGE_HOSTNAME> MYUSER MYPASSWORD
./mc admin info myminio
Пример рабочего вывода в процессе выполнения:
● 10.7.10.216:9000
Uptime: 2 hours
Version: 2022-11-08T05:27:07Z
Network: 1/1 OK
Drives: 1/1 OK
Pool: 1
Pools:
1st, Erasure sets: 1, Drives per erasure set: 1
1 drive online, 0 drives offline
В случае возникновения проблем, для обращения за помощью в тех. поддержку, рекомендуется собрать логи микросервисов. В комплект с ПО включены скрипты сбора логов EMS.
collect.ps1
- для запуска на windowscollect.bash
- для запуска на linux
Для запуска выполните команду из директории расположения скриптов, с параметрами подключения к сервису opensearch
, где первый параметр - это адрес opensearch
с логами (совпадает с адресом EMS), второй параметр - это логин для доступа к opensearch
, третий параметр - это пароль для доступа к opensearch
.
По умолчанию логин и пароль opensearch - admin
admin
Внимание: В случае если в ОС не разрешено выполнение скриптов выполните:
Set-ExecutionPolicy remotesigned
.
Пример:
.\collect.ps1 10.1.18.14 admin admin
Будет создан архив logs.zip
, который содержит файлы с логами EMS.
Полученный архив следует прикрепить к обращению.
Для запуска перейдите в директорию где расположен скрипт и добавьте права на выполнения скрипта следующей командой:
chmod +x ./collect.sh
Затем выполните команду запуска скрипта с параметрами подключения к сервису opensearch
, где первый параметр - это адрес opensearch
с логами (совпадает с адресом EMS), второй параметр - это логин для доступа к opensearch
, третий параметр - это пароль для доступа к opensearch
.
По умолчанию логин и пароль opensearch - admin
admin
Пример:
.\collect.sh 10.1.18.14 admin admin
Будет создан архив logs.tar.gz
, который содержит файлы с логами EMS.
Полученный архив следует прикрепить к обращению.
Информация об активных лицензиях и управление ими расположены в интерфейсе Системы EMS, в разделе "Лицензии". В меню лицензий отображен перечень и реквизиты используемых лицензий.
Более подробно ознакомиться с функционалом работы с лицензиями можно в руководстве пользователя.
Совет: Полномочия для управления лицензиями из интерфейса Системы EMS должны быть назначены только на роль Системного администратора.
Для активации новой лицензии:
- Нажмите кнопку "Импорт лицензии".
- Укажите в проводнике путь к файлу лицензии и нажмите кнопку "Открыть". Окно проводника закроется и новая лицензия загрузится в Систему.
- Добавленная лицензия будет отображена на экране.
Для удаления старой лицензии:
- Выберите необходимые лицензии и нажмите кнопку "Удалить".
- Подтвердите удаление.
- Удаленные лицензии исчезнут с экрана.
Внимание: При удалении последней лицензии, система утратит работоспособность. Не удаляйте лицензию, если она является последней.
Внимание: При возникновении проблем с лицензией, система утратит работоспособность, часть контейнеров master-кластера и tool-кластера буду постоянно перезапускаться. Узнать о проблеме с лицензией можно из логов сервиса license-server на master-кластере.
Для восстановления работоспособности Системы EMS:
-
Через консоль разместить файл актуальной лицензии в
master_cluster
в каталоге /opt/ems/config/lics. -
Спустя некоторое время Система автоматически найдет файл лицензии и активирует его.
4.3.4 Восстановление работоспособности Системы при изменении client_name в лицензии(EMS в режиме одной ноды)
Для восстановления работоспособности Системы EMS:
- Остановить EMS, для этого:
На ноде single выполнить:
docker stop $(docker ps -aq)
После чего выполнить:
docker rm -f ems-leaf-nats-1
docker volume rm ems_leaf-nats
- Через консоль разместить файл актуальной лицензии в каталоге /opt/ems/master/config/license.json. Старые файлы лицнзий необходимо удалить.
- Открыть предпочитаемым редактором файл настроек EMS, расположенный в
/opt/ems/master/.env
и отредактировать значение переменной CLIENT_NAME. - Выполнить запуск проекта EMS.
На ноде single выполнить:
/opt/ems/emsinstaller --mode install-only
Список часто используемых команд для диагностики состояния Docker:
- Проверить состояние контейнеров можно выполнив команду:
docker ps -a
Внимание: Из вывода команды требуются поля
CONTAINER_ID
иCONTAINER_NAME
, для использования в прочих командах диагностики.
- Посмотреть логи контейнера можно выполнив команду:
docker logs <CONTAINER_ID>
Внимание: В выводе может содержаться информация, которая поможет в решении возникшей проблемы.
- Посмотреть свойства контейнера можно выполнив команду:
docker inspect <CONTAINER_ID>
Внимание: Требуется ознакомиться с выводом и убедиться, что все переменные окружения, порты и volumes корректно настроены.
- Остановить контейнер можно выполнив команду:
docker stop <CONTAINER_ID>
- Запустить контейнер можно выполнив команду:
docker start <CONTAINER_ID>
- Перезапустить контейнер можно выполнив команду:
docker restart <CONTAINER_ID>
В случае возникновения аварийных ситуаций, для их расследования, необходимо воспользоваться следующими инструментами:
-
Для выявления проблемных сервисов, необходимо воспользоваться функцией Системы - разделом интерфейса "Карта кластера". На вкладке "Карта кластера" показаны общий статус состояния кластера и состояния каждого сервиса кластера системы.
-
Для подтверждения проблем, можно воспользоваться функцией "Журнал событий" в карточке нужного устройства.
-
В случае критичных ошибок, Система выдает уведомления пользователю.
-
В случае наличия проблем и отсутствия возможности их идентификации с помощью пунктов 1-3 текущего раздела, необходимо обратиться в службу поддержки.
Подробнее с описанным выше функционалом можно ознакомиться в руководстве пользователя.
При включенной функции бэкапирования, в удаленном NFS хранилище будут сохранены снапшоты состояния системы. При возникновении проблем можно восстановить состояние EMS из снапшота.
Восстановление EMS осуществляется в несколько этапов.
Этап 1. Необходимо выполнить полную остановку EMS
- Подключиться к ноде single:
Подключитесь к single-node
с помощью SSH-клиента:
Замените {{ SINGLE_NODE_IP }} на IP адрес ВМ
single_node
:
ssh root@{{ SINGLE_NODE_IP }}
- Остановить EMS:
docker stop $(docker ps -aq)
Этап 2. Восстановление EMS из бэкапа
- Подключиться к ноде single:
Подключитесь к single-node
с помощью SSH-клиента:
Замените {{ SINGLE_NODE_IP }} на IP адрес ВМ
single_node
:
ssh root@{{ SINGLE_NODE_IP }}
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore
cp /nfs/backup_< date >/* /opt/ems/restore
cd /opt/ems/restore
tar xzf backup_tool.tar.gz -C /opt/ems/restore
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/tmp/:/tmp \
-v ems_minio:/backup/minio \
-v ems_event-nats:/backup/event-nats \
-v ems_agent-nats:/backup/agent-nats \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore
cp /nfs/backup_< date >/* /opt/ems/restore
cd /opt/ems/restore
tar xzf backup_master.tar.gz -C /opt/ems/restore
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/tmp/:/tmp \
-v ems_opensearch:/backup/opensearch \
-v ems_kv:/backup/kv \
-v ems_psql:/backup/psql \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore
cp /nfs/backup_< date >/* /opt/ems/restore
cd /opt/ems/restore
tar xzf backup_transport.tar.gz -C /opt/ems/restore
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/tmp/:/tmp \
-v ems_minio:/backup/minio \
-v ems_leaf-nats:/backup/leaf-nats \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
Этап 3. Выполнить запуск EMS
- Подключиться к ноде single:
Подключитесь к single-node
с помощью SSH-клиента:
Замените {{ SINGLE_NODE_IP }} на IP адрес ВМ
single_node
:
ssh root@{{ SINGLE_NODE_IP }}
- Запустить EMS:
docker start $(docker ps -aq)
Восстановление EMS осуществляется в несколько этапов.
Этап 1. Необходимо выполнить полную остановку EMS
Необходимо полностью отановить систему. Для этого необходимо выполнить следующие действия, указанные в документе Руководство по инсталляции EMS в режиме HA на 3 дата-центра.
Этап 2. Восстановление EMS из бэкапа
- Подключиться к ноде swarm-node-1:
Подключитесь к swarm-node-1
с помощью SSH-клиента:
Замените {{ SWARM_NODE_1_IP }} на IP адрес ВМ
swarm-node-1
:
ssh root@{{ SWARM_NODE_1_IP }}
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_1_master
cp /nfs/backup_< date >/backup_master_swarm-node-1.tar.gz /opt/ems/restore/node_1_master
cd /opt/ems/restore/node_1_master
tar xzf backup_master_swarm-node-1.tar.gz -C /opt/ems/restore/node_1_master
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_1_master/tmp/:/tmp \
-v etcd-1:/backup/etcd-1 \
-v etcd-2:/backup/etcd-2 \
-v etcd-3:/backup/etcd-3 \
-v etcd-4:/backup/etcd-4 \
-v etcd-5:/backup/etcd-5 \
-v kv-1:/backup/kv-1 \
-v kv-2:/backup/kv-2 \
-v kv-3:/backup/kv-3 \
-v kv-4:/backup/kv-4 \
-v kv-5:/backup/kv-5 \
-v logs:/backup/logs \
-v opensearch-1:/backup/opensearch-1 \
-v opensearch-2:/backup/opensearch-2 \
-v opensearch-3:/backup/opensearch-3 \
-v opensearch-4:/backup/opensearch-4 \
-v opensearch-5:/backup/opensearch-5 \
-v patroni-1:/backup/patroni-1 \
-v patroni-2:/backup/patroni-2 \
-v patroni-3:/backup/patroni-3 \
-v patroni-4:/backup/patroni-4 \
-v patroni-5:/backup/patroni-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_1_transport
cp /nfs/backup_< date >/backup_transport_swarm-node-1.tar.gz /opt/ems/restore/node_1_transport
cd /opt/ems/restore/node_1_transport
tar xzf backup_transport_swarm-node-1.tar.gz -C /opt/ems/restore/node_1_transport
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_1_transport/tmp/:/tmp \
-v block-1:/backup/block-1 \
-v block-2:/backup/block-2 \
-v block-3:/backup/block-3 \
-v block-4:/backup/block-4 \
-v block-5:/backup/block-5 \
-v block-6:/backup/block-6 \
-v leaf-nats-1:/backup/leaf-nats-1 \
-v leaf-nats-2:/backup/leaf-nats-2 \
-v leaf-nats-3:/backup/leaf-nats-3 \
-v leaf-nats-4:/backup/leaf-nats-4 \
-v leaf-nats-5:/backup/leaf-nats-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_1_tool
cp /nfs/backup_< date >/backup_tool_swarm-node-1.tar.gz /opt/ems/restore/node_1_tool
cd /opt/ems/restore/node_1_tool
tar xzf backup_tool_swarm-node-1.tar.gz -C /opt/ems/restore/node_1_tool
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_1_tool/tmp/:/tmp \
-v agent-nats:/backup/agent-nats \
-v event-nats:/backup/event-nats \
-v minio:/backup/minio \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Подключиться к ноде swarm-node-2:
Подключитесь к swarm-node-2
с помощью SSH-клиента:
Замените {{ SWARM_NODE_2_IP }} на IP адрес ВМ
swarm-node-2
:
ssh root@{{ SWARM_NODE_2_IP }}
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_2_master
cp /nfs/backup_< date >/backup_master_swarm-node-2.tar.gz /opt/ems/restore/node_2_master
cd /opt/ems/restore/node_2_master
tar xzf backup_master_swarm-node-2.tar.gz -C /opt/ems/restore/node_2_master
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_2_master/tmp/:/tmp \
-v etcd-1:/backup/etcd-1 \
-v etcd-2:/backup/etcd-2 \
-v etcd-3:/backup/etcd-3 \
-v etcd-4:/backup/etcd-4 \
-v etcd-5:/backup/etcd-5 \
-v kv-1:/backup/kv-1 \
-v kv-2:/backup/kv-2 \
-v kv-3:/backup/kv-3 \
-v kv-4:/backup/kv-4 \
-v kv-5:/backup/kv-5 \
-v logs:/backup/logs \
-v opensearch-1:/backup/opensearch-1 \
-v opensearch-2:/backup/opensearch-2 \
-v opensearch-3:/backup/opensearch-3 \
-v opensearch-4:/backup/opensearch-4 \
-v opensearch-5:/backup/opensearch-5 \
-v patroni-1:/backup/patroni-1 \
-v patroni-2:/backup/patroni-2 \
-v patroni-3:/backup/patroni-3 \
-v patroni-4:/backup/patroni-4 \
-v patroni-5:/backup/patroni-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_2_transport
cp /nfs/backup_< date >/backup_transport_swarm-node-2.tar.gz /opt/ems/restore/node_2_transport
cd /opt/ems/restore/node_2_transport
tar xzf backup_transport_swarm-node-2.tar.gz -C /opt/ems/restore/node_2_transport
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_2_transport/tmp/:/tmp \
-v block-1:/backup/block-1 \
-v block-2:/backup/block-2 \
-v block-3:/backup/block-3 \
-v block-4:/backup/block-4 \
-v block-5:/backup/block-5 \
-v block-6:/backup/block-6 \
-v leaf-nats-1:/backup/leaf-nats-1 \
-v leaf-nats-2:/backup/leaf-nats-2 \
-v leaf-nats-3:/backup/leaf-nats-3 \
-v leaf-nats-4:/backup/leaf-nats-4 \
-v leaf-nats-5:/backup/leaf-nats-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Подключиться к ноде swarm-node-3:
Подключитесь к swarm-node-3
с помощью SSH-клиента:
Замените {{ SWARM_NODE_3_IP }} на IP адрес ВМ
swarm-node-3
:
ssh root@{{ SWARM_NODE_3_IP }}
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_3_master
cp /nfs/backup_< date >/backup_master_swarm-node-3.tar.gz /opt/ems/restore/node_3_master
cd /opt/ems/restore/node_3_master
tar xzf backup_master_swarm-node-3.tar.gz -C /opt/ems/restore/node_3_master
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_3_master/tmp/:/tmp \
-v etcd-1:/backup/etcd-1 \
-v etcd-2:/backup/etcd-2 \
-v etcd-3:/backup/etcd-3 \
-v etcd-4:/backup/etcd-4 \
-v etcd-5:/backup/etcd-5 \
-v kv-1:/backup/kv-1 \
-v kv-2:/backup/kv-2 \
-v kv-3:/backup/kv-3 \
-v kv-4:/backup/kv-4 \
-v kv-5:/backup/kv-5 \
-v logs:/backup/logs \
-v opensearch-1:/backup/opensearch-1 \
-v opensearch-2:/backup/opensearch-2 \
-v opensearch-3:/backup/opensearch-3 \
-v opensearch-4:/backup/opensearch-4 \
-v opensearch-5:/backup/opensearch-5 \
-v patroni-1:/backup/patroni-1 \
-v patroni-2:/backup/patroni-2 \
-v patroni-3:/backup/patroni-3 \
-v patroni-4:/backup/patroni-4 \
-v patroni-5:/backup/patroni-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_3_transport
cp /nfs/backup_< date >/backup_transport_swarm-node-3.tar.gz /opt/ems/restore/node_3_transport
cd /opt/ems/restore/node_3_transport
tar xzf backup_transport_swarm-node-3.tar.gz -C /opt/ems/restore/node_3_transport
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_3_transport/tmp/:/tmp \
-v block-1:/backup/block-1 \
-v block-2:/backup/block-2 \
-v block-3:/backup/block-3 \
-v block-4:/backup/block-4 \
-v block-5:/backup/block-5 \
-v block-6:/backup/block-6 \
-v leaf-nats-1:/backup/leaf-nats-1 \
-v leaf-nats-2:/backup/leaf-nats-2 \
-v leaf-nats-3:/backup/leaf-nats-3 \
-v leaf-nats-4:/backup/leaf-nats-4 \
-v leaf-nats-5:/backup/leaf-nats-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Подключиться к ноде swarm-node-4:
Подключитесь к swarm-node-4
с помощью SSH-клиента:
Замените {{ SWARM_NODE_4_IP }} на IP адрес ВМ
swarm-node-4
:
ssh root@{{ SWARM_NODE_4_IP }}
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_4_master
cp /nfs/backup_< date >/backup_master_swarm-node-4.tar.gz /opt/ems/restore/node_4_master
cd /opt/ems/restore/node_4_master
tar xzf backup_master_swarm-node-4.tar.gz -C /opt/ems/restore/node_4_master
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_4_master/tmp/:/tmp \
-v etcd-1:/backup/etcd-1 \
-v etcd-2:/backup/etcd-2 \
-v etcd-3:/backup/etcd-3 \
-v etcd-4:/backup/etcd-4 \
-v etcd-5:/backup/etcd-5 \
-v kv-1:/backup/kv-1 \
-v kv-2:/backup/kv-2 \
-v kv-3:/backup/kv-3 \
-v kv-4:/backup/kv-4 \
-v kv-5:/backup/kv-5 \
-v logs:/backup/logs \
-v opensearch-1:/backup/opensearch-1 \
-v opensearch-2:/backup/opensearch-2 \
-v opensearch-3:/backup/opensearch-3 \
-v opensearch-4:/backup/opensearch-4 \
-v opensearch-5:/backup/opensearch-5 \
-v patroni-1:/backup/patroni-1 \
-v patroni-2:/backup/patroni-2 \
-v patroni-3:/backup/patroni-3 \
-v patroni-4:/backup/patroni-4 \
-v patroni-5:/backup/patroni-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/node_4_transport
cp /nfs/backup_< date >/backup_transport_swarm-node-4.tar.gz /opt/ems/restore/node_4_transport
cd /opt/ems/restore/node_4_transport
tar xzf backup_transport_swarm-node-4.tar.gz -C /opt/ems/restore/node_4_transport
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/node_4_transport/tmp/:/tmp \
-v block-1:/backup/block-1 \
-v block-2:/backup/block-2 \
-v block-3:/backup/block-3 \
-v block-4:/backup/block-4 \
-v block-5:/backup/block-5 \
-v block-6:/backup/block-6 \
-v leaf-nats-1:/backup/leaf-nats-1 \
-v leaf-nats-2:/backup/leaf-nats-2 \
-v leaf-nats-3:/backup/leaf-nats-3 \
-v leaf-nats-4:/backup/leaf-nats-4 \
-v leaf-nats-5:/backup/leaf-nats-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Подключиться к ноде swarm-minio-1:
Подключитесь к swarm-minio-1
с помощью SSH-клиента:
Замените {{ SWARM_MINIO_1_IP }} на IP адрес ВМ
swarm-minio-1
:
ssh root@{{ SWARM_MINIO_1_IP }}
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/minio_1_master
cp /nfs/backup_< date >/backup_master_swarm-minio-1.tar.gz /opt/ems/restore/minio_1_master
cd /opt/ems/restore/minio_1_master
tar xzf backup_master_swarm-minio-1.tar.gz -C /opt/ems/restore/minio_1_master
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/minio_1_master/tmp/:/tmp \
-v etcd-1:/backup/etcd-1 \
-v etcd-2:/backup/etcd-2 \
-v etcd-3:/backup/etcd-3 \
-v etcd-4:/backup/etcd-4 \
-v etcd-5:/backup/etcd-5 \
-v kv-1:/backup/kv-1 \
-v kv-2:/backup/kv-2 \
-v kv-3:/backup/kv-3 \
-v kv-4:/backup/kv-4 \
-v kv-5:/backup/kv-5 \
-v logs:/backup/logs \
-v opensearch-1:/backup/opensearch-1 \
-v opensearch-2:/backup/opensearch-2 \
-v opensearch-3:/backup/opensearch-3 \
-v opensearch-4:/backup/opensearch-4 \
-v opensearch-5:/backup/opensearch-5 \
-v patroni-1:/backup/patroni-1 \
-v patroni-2:/backup/patroni-2 \
-v patroni-3:/backup/patroni-3 \
-v patroni-4:/backup/patroni-4 \
-v patroni-5:/backup/patroni-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/minio_1_transport
cp /nfs/backup_< date >/backup_transport_swarm-minio-1.tar.gz /opt/ems/restore/minio_1_transport
cd /opt/ems/restore/minio_1_transport
tar xzf backup_transport_swarm-minio-1.tar.gz -C /opt/ems/restore/minio_1_transport
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/minio_1_transport/tmp/:/tmp \
-v block-1:/backup/block-1 \
-v block-2:/backup/block-2 \
-v block-3:/backup/block-3 \
-v block-4:/backup/block-4 \
-v block-5:/backup/block-5 \
-v block-6:/backup/block-6 \
-v leaf-nats-1:/backup/leaf-nats-1 \
-v leaf-nats-2:/backup/leaf-nats-2 \
-v leaf-nats-3:/backup/leaf-nats-3 \
-v leaf-nats-4:/backup/leaf-nats-4 \
-v leaf-nats-5:/backup/leaf-nats-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Подключиться к ноде swarm-minio-2:
Подключитесь к swarm-minio-2
с помощью SSH-клиента:
Замените {{ SWARM_MINIO_2_IP }} на IP адрес ВМ
swarm-minio-2
:
ssh root@{{ SWARM_MINIO_2_IP }}
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/minio_2_master
cp /nfs/backup_< date >/backup_master_swarm-minio-2.tar.gz /opt/ems/restore/minio_2_master
cd /opt/ems/restore/minio_2_master
tar xzf backup_master_swarm-minio-2.tar.gz -C /opt/ems/restore/minio_2_master
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/minio_2_master/tmp/:/tmp \
-v etcd-1:/backup/etcd-1 \
-v etcd-2:/backup/etcd-2 \
-v etcd-3:/backup/etcd-3 \
-v etcd-4:/backup/etcd-4 \
-v etcd-5:/backup/etcd-5 \
-v kv-1:/backup/kv-1 \
-v kv-2:/backup/kv-2 \
-v kv-3:/backup/kv-3 \
-v kv-4:/backup/kv-4 \
-v kv-5:/backup/kv-5 \
-v logs:/backup/logs \
-v opensearch-1:/backup/opensearch-1 \
-v opensearch-2:/backup/opensearch-2 \
-v opensearch-3:/backup/opensearch-3 \
-v opensearch-4:/backup/opensearch-4 \
-v opensearch-5:/backup/opensearch-5 \
-v patroni-1:/backup/patroni-1 \
-v patroni-2:/backup/patroni-2 \
-v patroni-3:/backup/patroni-3 \
-v patroni-4:/backup/patroni-4 \
-v patroni-5:/backup/patroni-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
- Cкопировать бэкап на ноду и распаковать архив:
Внимание: Вместо
< date >
необходимо указать требуемую дату.
Внимание: имя архива может отличаться от указанного в команде ниже.
mkdir -p /opt/ems/restore/minio_2_transport
cp /nfs/backup_< date >/backup_transport_swarm-minio-2.tar.gz /opt/ems/restore/minio_2_transport
cd /opt/ems/restore/minio_2_transport
tar xzf backup_transport_swarm-minio-2.tar.gz -C /opt/ems/restore/minio_2_transport
- Восстановить состояние EMS:
docker run --rm -it -v /opt/ems/bin/restic:/bin/restic \
-v /opt/ems/config/pwd:/opt/pwd \
-v /opt/ems/restore/minio_2_transport/tmp/:/tmp \
-v block-1:/backup/block-1 \
-v block-2:/backup/block-2 \
-v block-3:/backup/block-3 \
-v block-4:/backup/block-4 \
-v block-5:/backup/block-5 \
-v block-6:/backup/block-6 \
-v leaf-nats-1:/backup/leaf-nats-1 \
-v leaf-nats-2:/backup/leaf-nats-2 \
-v leaf-nats-3:/backup/leaf-nats-3 \
-v leaf-nats-4:/backup/leaf-nats-4 \
-v leaf-nats-5:/backup/leaf-nats-5 \
-v /opt/ems/config:/backup/config \
alpine restic restore latest -r /tmp/backup -p /opt/pwd --target /backup
Этап 3. Выполнить запуск EMS
Для выполнения запуска EMS, необходимо выполнить следующие действия, указанные в документе Руководство по инсталляции EMS в режиме HA на 3 дата-центра.
В некоторых ситуациях возможно возникновение проблемы с запуском Системы EMS в ОС Astra Linux сразу после установки.
Симптомы:
- Большая часть контейнеров кластера
master
иtool
постоянно перезапускаются - В логах контейнера
ems-api-gw-1
наmaster
кластере можно обнаружить ошибкуSocketException (13): Permission denied
Решение:
Для следующих сервисов необходимо исправить определение в файле compose.yaml
tool
кластер- backup-handler
- os-manager
- fping-handler
- netboot-handler
- redfish-handler
- device-authory-center
- ssh-checker
- wmi-handler
- snmp-handler
- dhcp-healthchecker
- ipmi-handler
- hypervisor-handler
- syslog-handler
- smart-handler
- bmcbios-handler
- cacher
- service-monitoring
master
кластер- api-gw
- device-metric-writer
- system-metric-writer
- device-metric-writer-2
- opensearch-dashboards
- task-service
- device-store
- explorer
- device-metric-presenter
- license-server
- report-service
- user-service
- redis
- device-authory-center-master
- opensearch
- kv-nats
- system-metric-presenter
- docs
- repository-service
- system-service
- ui
- watchdog-master
- ems-network-watcher
- ems-psql
transport
кластер- socket-hub
Необходимо на перечисленных кластерах отредактировать файл /opt/ems/{CLUSTER_NAME}/compose/compose.yaml
. Для этого необходимо:
- Выполнить остановку Системы EMS командой:
/opt/ems/{CLUSTER_NAME}/bin/docker-compose --env-file /opt/ems/{CLUSTER_NAME}/compose/compose.env -f /opt/ems/{CLUSTER_NAME}/compose/compose.yaml down
- Добавить к перечисленным сервисам настройку
user: "0:0"
, как показано ниже (для примера приведена только часть конфигурации):
services:
api-gw:
<<: *common
user: "0:0"
image: ${API_GW_DOCKER_IMAGE}
- После того, как файл отредактирован необходимо выполнить перезапуск Системы EMS, выполнив команду:
/opt/ems/{CLUSTER_NAME}/bin/docker-compose --env-file /opt/ems/{CLUSTER_NAME}/compose/compose.env -f /opt/ems/{CLUSTER_NAME}/compose/compose.yaml up -d
При возникновении вопросов администрирования Системы обратитесь в техническую поддержку.
Техническая поддержка осуществляется в стандартные рабочие дни с 09:00 до 18:00 по московскому времени:
- Обращения через электронную почту
sd@bergen.tech
- Телефоны: +7 (925) 007-38-52; +7 (495) 664-37-83.
- Руководство пользователя EMS v4.2.2;
- Руководство администратора Системы EMS v4.2.2;
- Руководство по инсталляции Системы EMS v4.2.2 в режиме одной ноды;
- Руководство по обновлению Системы EMS с версии 3.5.3 до версии 4.2.2 в режиме одной ноды;
- Программа и методика испытаний системы EMS v4.2.2.
Список часто используемых команд Linux:
- Проверить наличие свободного дискового пространства можно выполнив команду:
df -h
- Проверить загруженность CPU можно выполнив команду:
top
Либо
htop
- Проверить загруженность RAM можно выполнив команду:
free -mh
- Проверить порты, открытые для внешнего доступа можно выполнив команду:
netstat -tulpn
master-node
:
Порты открытые на master-node
Протокол | Адрес | Порт | Сервис | Примечание |
---|---|---|---|---|
tcp | 0.0.0.0 | 22 | SSH | Администрирование ОС |
tcp | 0.0.0.0 | 80 | service access | |
tcp | 0.0.0.0 | 443 | UI(HTTPS) | Доступ в пользовательский интерфейс |
tcp | 0.0.0.0 | 53 | service access | |
udp | 0.0.0.0 | 53 | service access | |
tcp | 0.0.0.0 | 32123 | service access | |
tcp | 0.0.0.0 | 5254 | service access | |
tcp | 0.0.0.0 | 5277 | service access | |
tcp | 0.0.0.0 | 5279 | service access | |
tcp | 0.0.0.0 | 5275 | service access | |
tcp | 0.0.0.0 | 5289 | service access | |
tcp | 0.0.0.0 | 5288 | service access | |
tcp | 0.0.0.0 | 5290 | service access | |
tcp | 0.0.0.0 | 5287 | service access | |
tcp | 0.0.0.0 | 5297 | service access | |
tcp | 0.0.0.0 | 5296 | service access | |
tcp | 0.0.0.0 | 5299 | service access | |
tcp | 0.0.0.0 | 5298 | service access | |
tcp | 0.0.0.0 | 5201 | service access | |
tcp | 0.0.0.0 | 5200 | service access | |
tcp | 0.0.0.0 | 5229 | service access | |
tcp | 0.0.0.0 | 5247 | service access | |
tcp | 0.0.0.0 | 3031 | service access | |
tcp | 0.0.0.0 | 52005 | postgresql | |
tcp | 0.0.0.0 | 52004 | opensearch | |
tcp | 0.0.0.0 | 52001 | redis | |
tcp | 0.0.0.0 | 52003 | opensearch | |
tcp | 0.0.0.0 | 52002 | nats |
transport-node
:
Порты открытые на transport-node
Протокол | Адрес | Порт | Сервис | Примечание |
---|---|---|---|---|
tcp | 0.0.0.0 | 22 | SSH | Администрирование ОС |
tcp | 0.0.0.0 | 7071 | ACME(HTTPS) | Необходим для установки защищенного соединения между нодами Системы |
tcp | 0.0.0.0 | 7072 | NATS | |
tcp | 0.0.0.0 | 53 | service access | |
tcp | 0.0.0.0 | 53 | service access |
tool-node
:
Порты открытые на tool-node
Протокол | Адрес | Порт | Сервис | Примечание |
---|---|---|---|---|
tcp | 0.0.0.0 | 22 | SSH | Администрирование ОС |
tcp | 0.0.0.0 | 389 | service access | |
tcp | 0.0.0.0 | 514 | service access | |
tcp | 0.0.0.0 | 636 | service access | |
tcp | 0.0.0.0 | 9000 | service access | |
tcp | 0.0.0.0 | 5333 | service access | |
tcp | 0.0.0.0 | 2222 | NATS | |
tcp | 127.0.0.53 | 53 | Netbootd | Требуется для установки ОС |
udp | 127.0.0.53 | 53 | Netbootd | Требуется для установки ОС |
udp | 0.0.0.0 | 67 | Netbootd | Требуется для установки ОС |
tcp | 0.0.0.0 | 62000 | service access | |
tcp | 0.0.0.0 | 62001 | service access | |
tcp | 0.0.0.0 | 62002 | service access | |
tcp | 0.0.0.0 | 62003 | service access | |
tcp | 0.0.0.0 | 62004 | service access | |
tcp | 0.0.0.0 | 62005 | service access | |
tcp | 0.0.0.0 | 62006 | service access | |
tcp | 0.0.0.0 | 62007 | service access | |
tcp | 0.0.0.0 | 8190 | service access |
Для добавления образа Alpine
необходимо выполнить следующую последовательность действий:
- Скопировать
tar
-архив из поставки на ВМ с ролямиtransport
иmaster
:
- ВМ
transport
:
scp ./alpine.tar root@{{TRANSPORT NODE IP}}:/root/
- ВМ
master
:
scp ./alpine.tar root@{{MASTER NODE IP}}:/root/
- После копирования
tar
-архива, на ВМ с ролямиtransport
иmaster
необходимо выполнить команду:
cd /root/
docker load -i alpine.tar
Для формирования tar
-архива образа Alpine
необходимо выполнить следующую последовательность действий:
- В ОС, в которой установлен
docker
и есть доступ в сетьInternet
выполнить команду:
docker pull alpine
- Выполнить сохранение скачанного образа в
tar
-архив:
docker save -o ./alpine.tar alpine