Руководство администратора

Руководство администратора модуля управления Скала^р Геном версия 1.18.2#

1 Установка программы#

Для установки и работы модуля управления ПО «Скала^р Геном» требуется операционная система Altlinux Server 8 СП p10 (c10f1), Altlinux Server 8 СП p10/2 (c10f2), Astra Linux Special Edition 1.7.5, RedOS 7.3, RedOS 7.3 сертифицированный.

1.1 Минимальные требования к устройству (виртуальной машине):#

  • CPU: от 4 ядер;
  • RAM: от 16 Гб;
  • ROM: от 40 Гб SSD;
  • NET: от 1 Гбит/с Ethernet.

1.2 Состав дистрибутива#

Дистрибутив содержит скрипт установки genome-installer.run.

1.3 Используемые сетевые порты#

Порты, необходимы для нормальной работы:

ПОРТ ПРОТОКОЛ НАПРАВЛЕНИЕ НАЗНАЧЕНИЕ
22 SSH I/O SSH-подключение к модулю управления Геном
5432 TCP I/O PostgreSQL БД модуля управления Геном
48800 TCP I/O REST API модуля управления Геном
50888 TCP I/O Web-интерфейс модуля управления Геном
15000-16000 HTTP I/O IPMI proxies для управления серверами

Дополнительные порты:

ПОРТ ПРОТОКОЛ НАПРАВЛЕНИЕ НАЗНАЧЕНИЕ
443 HTTPS I/O Web-интерфейс с подключённым SSL-сертификатом

1.4 Ход развёртывания#

1.4.1 Открыть терминал.

1.4.2 Проверить тип и версию установленной ОС:

1.4.3 Проверить наличие свободного места для установки модуля управления ПО «Скала^р Геном»:

1.4.4 Перейти в корневой каталог:

1.4.5 Загрузить файл дистрибутива модуля управления ПО «Скала^р Геном» из репозитория.

Дождаться окончания загрузки:

1.4.6 Вывести список файлов в директории и проконтролировать наличие файла genome-installer.run и прав доступа к нему:

1.4.7 Разрешить выполнение файла genome-installer.run:

1.4.8 Запустить выполнение файла genome-installer.run:

Начнётся процесс распаковки и установки модулей:

1.4.9 По завершении выполнения скрипта появится окно выбора версии Postgres (здесь и далее, в случае необходимости, выбор подтверждается нажатием клавиши ПРОБЕЛ с последующим появлением символа «*» в соответствующем столбце):

1.4.10 Выбрать ПО Геном для установки:

GENOME_MGMT - установка модуля управления ПО “Скала^р Геном”;

GENOME_BR - установка ПО “Скала^р Геном”.

1.4.11 Выбрать параметры установки:

CHANGE_PG_SETTINGS – настройка параметров PostgreSQL (если опция отключена, будут использованы параметры по умолчанию.

1.4.12 Выбрать сетевой интерфейс модуля управления ПО “Скала^р Геном”:

1.4.13 Выполнить ввод параметров развёртывания:

GNM_MGMT_ADDRESS – IP-адрес модуля управления ПО «Скала^р Геном»;

PGHOST – IP-адрес Postgres;

PGUSER – имя пользователя Postgres;

PGDATABASE – имя базы данных Postgres;

PGPORT – порт для подключения к Postgres;

PG_TRUSTED_NETWORK – доверенная сеть Postgres (значение поля должно быть записано в формате CIDR, с указанием маски, например 127.0.0.1/32);

PG_LISTEN_ADDR - в настройках Postgres в файле postgresql.conf параметр listen_addresses принимает значение PG_LISTEN_ADDR.

Значение localhost означает, что доступ к БД будет только с локальной машины, в случае установки конкретной подсети – из указанной подсети.

Если данному параметру указать значение “*”, тогда доступ к БД будет возможен из любой сети;

HTML_NGINX_ROOT – путь до корневого каталога html, в котором находятся бинарные артефакты;

POSTGRES_VER – определяет, будет ли установлена Postgres и какой версии;

GENOME_MANAGEMENT_ONLY – признак установки только модуля управления ПО «Скала^р Геном»;

GENOME_MANAGEMENT_USER – пользователь, из-под которого работает модуль управления ПО «Скала^р Геном».

1.4.14 После ввода всех необходимых данных нажать кнопку <ОК>.

Должен начаться процесс настройки:

Дождаться завершения процесса настройки:

1.4.15 Перейти в браузер и ввести IP-адрес, установленный в поле GNM_MFMT_ADDRESS п. 1.4.13 (порт 50888).

Должен открыться интерфейс модуля управления ПО «Скала^р Геном»:

Модуль управления “Скала^р Геном” считается успешно установленным, если после отображения интерфейса нет уведомлений об ошибках.

2 Схема внутренних и внешних взаимодействий#

Назначение внутренних и внешних взаимодействий, используемые порты:

№ на схеме Тип интерфейса Назначение интерфейса
1 HTTPS, TCP/50888 Пользовательский интерфейс Геном-У, аутентификация средствами IAM
2 HTTP, TCP/48800 Передача управляющих команд из UI, без аутентификации
3 HTTP/HTTPS Аутентификация и авторизация пользователей
4 TCP/5432 Взаимодействие с БД, аутентификация средствами СУБД.
5 HTTPS, TCP/15000-65535; HTTPS, TCP/443 Доступ к Web UI контроллера BMC узлов ПАКа через SSH-туннель, аутентификация на BMC
6 HTTPS, TCP/7550; gRPC, TCP/7551 Взаимодействие с Агентом Генома (plagent), доступ по токену

3 Конфигурация#

Конфигурирование модуля управления ПО «Скала^р Геном» производится посредством редактирования файла genome.json.

Назначение полей файла конфигурации genome.json следующее:

Поле Значение
mp_chroot Путь для монтирования устройства, куда будет устанавливаться ОС на этапе LiveCD
genome_ip Текущий IP-адрес Геном в сети Управления
chroot_env Строка chroot с установкой необходимых переменных
genome_nginx_path Путь до каталога html, в котором находятся бинарные артефакты
mbd_data_request_limit Лимит запросов (для МБД.П)
genome_env Раздел настройки установки Геном
GNM_PXE_ADDRESS Текущий IP в сети PXE
GNM_MGMT_ADDRESS Текущий IP в сети Управления
CHANGE_PG_SETTINGS Изменение параметров Postgres по умолчанию (true/false)
PGHOST IP-адрес подключения к Postgres Геном
PGUSER Имя пользователя Postgres
PGDATABASE Имя БД Postgres
PGPORT Порт Postgres
PGPASSWORD Пароль пользователя Postgres
PATH_PG Путь к каталогу данных Postgres
PATH_PGSQL_CONF Путь к файлу postgresql.conf
PATH_PGHBA_CONF Путь к файлу pg_hba.conf
PG_TRUSTED_NETWORK Доверенная подсеть Postgres, из которой не требуется ввод пароля
POSTGRES_VER Определяет, будет ли установлена Postgres и какой версии
DNSMASQ_PXE_INTERFACE Интерфейс, на котором запущены DHCP и tftp сервисы, предоставляемые DNSMasq
DNSMASQ_MGMT_INTERFACE Интерфейс, на котором запущен DNS сервис, предоставляемый DNSMasq
USE_DNSMASQ Включение и настройка DNSMasq при установке Геном (true/false)
DNSMASQ_FIRST_IP Начальный IP-адрес DHCP пула адресов
DNSMASQ_LAST_IP Конечный IP-адрес DHCP пула адресов
CREATE_PXE Создание образа и настройка PXE (true/false)
HTML_NGINX_ROOT Путь до каталога html, в котором находятся бинарные артефакты
PXE_TFTP_ROOT Путь до каталога tftp
GENOME_MANAGEMENT_ONLY Признак установки только модуля управления ПО “Скала^р Геном”
auth Наименование блока, отвечающего за авторизацию
enabled Включение авторизации в модуле управления ПО “Скала^р Геном” (true / false)
client_id ПИдентификатор клиента из системы управления доступом
auth_server Ссылка на систему управления доступом
realm Область, которая включает в себя учётные записи пользователей, роли, группы и настройки авторизации
cert Использование сертификата (true / false)

4 Журналирование#

4.1 Виды журналов#

В текущей версии реализованы два вида журналов: journal (Лог) и audit (Аудит). На данный момент все записи заносятся в оба журнала.

4.1.1 Лог#

Записи журнала располагаются в директории /opt/skala-r/var/log/genome_mgmt/journal.

Формат журнала – произвольный.

Пример записи:

2024-09-13T18:37:02+0300 user-genome-test INFO Приложение запущено

4.1.2 Аудит#

Записи журнала располагаются в директории /opt/skala-r/var/log/genome_mgmt/audit.

Аудит представлен в форматах CEF и JSON.

4.1.2.1 Формат CEF

Записи в формате CEF располагаются в директории /opt/skala-r/var/log/genome_mgmt/audit/cef.

Пример записи:

CEF:0|Skala-r|genome_mgmt|1.13|10000040|Запуск: версия Геном.У|3|externalId=2 msg=Приложение запущено deviceProcessName=genome_core outcome=success start=1726241821961 dhost=user-genome-test

Формат CEF имеет обязательные и необязательные поля.

Подстрока с обязательными полями:

CEF:0|Skala-r|genome_mgmt|1.13|20000040|Запуск: версия Геном.У|3|, где

Поле Описание
CEF:0 Версия формата CEF
Skala-r Название производителя
genome_mgmt Название продукта
1.13 Версия продукта
20000040 Уникальный идентификатор категории события. ID event в таблице ресурсов
Запуск: версия Геном.У Имя события
3 Важность события

Подстрока с расширенными полями:

externalId=2 msg=Приложение запущено deviceProcessName=genome_core outcome=success start=1726241821961 dhost=user-genome-test

Из записей в формате CEF на данный момент выводятся следующие параметры:

Поле Описание
externalId Идентификатор события
msg Подробная информация о событии
deviceProcessName Имя процесса, ассоциированного с событием
outcome Результат события
start Время возникновения события
dhost FQDN или имя хоста получателя

4.1.2.2 Формат JSON

Записи в формате JSON располагаются в директории /opt/skala-r/var/log/genome_mgmt/audit/json.

Пример записи:

{“createdAt”: “1726241825430”, “userNode”: “user-genome-test”, “metamodelVersion”: “1”, “module”: “genome_mgmt”, “name”: “Авторизация: Неизвестно (доступ запрещен)”, “params”: [{“name”: “message”, “value”: “Ошибка доступа: 401 url /api/datasheet”}, {“name”: “serviceVersion”, “value”: “1.13”}]}

Требования к формату не указаны.

На данный момент из записей в формате json выводятся следующие параметры:

Поле Описание
createdAt Время записи в журнал
userNode Имя узла
metamodelVersion Версия модели, на данный момент выставлена в “1”
module Название приложения
name Строка с событием
params Структуры с версией приложения и текстовым сообщением

4.2 Конфигурационный файл#

Управление записями журналов производится с помощью конфигурационного файла logging_mgmt_conf.yml, расположенного в директории /opt/skala-r/genome/python-modules/lib/python3/site-packages/genome_ng/logging_mgmt_conf.yml.

Пример:

 # Все ключи являются необязательными
  
 version: 1
  
 # Аудит
 audit:
   # Уровень сообщений, которые логируются DEBUG|INFO|WARNING|ERROR|CRITICAL
   level: INFO
  
   # Параметры форматов записи логов
   formatters:
  
     # Формат CEF
     cef:
       # Вкл/выкл запись логов в формате CEF
       enable: true
  
       # Управление ротированием файлов логов
       rotate:
         filepath: "/opt/skala-r/var/log/genome_mgmt/audit/cef/genome_mgmt_audit.log"
         maxBytes: 104857600  # максимальный размер файла логов
         backupCount: 5       # количество сохраненных логов "<filepath>.<n>" по maxBytes
  
     # Формат JSON (ГосТех)
     json:
       enable: true
       rotate:
         filepath: "/opt/skala-r/var/log/genome_mgmt/audit/json/genome_mgmt_audit.log"
         maxBytes: 104857600
         backupCount: 5
  
   # Фильтрация записей по группам/действиям/статусам событий
   # Например, ["11-15", "2"] — исключить с 11 по 15 включительно и 2 ID
   # Перечень срезов genome-core/docs/events
   filters:
     groups: []
     actions: []
     status: []
  
 # Журналирование, аналогично параметрам аудита
 journal:
   level: INFO
   formatters:
     text:
       enable: true
       rotate:
         filepath: "/opt/skala-r/var/log/genome_mgmt/journal/genome_mgmt_journal.log"
         maxBytes: 104857600
         backupCount: 5
   filters:
     groups: []
     actions: []
     status: []

Для включения / выключения какого-либо вида журналов используется параметр enable.

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

Размер файлов и их количество можно указать параметрами maxBytes и backupCount.

Параметром filters производится фильтрация записей в журналах.

Для применения новых настроек после изменения конфигурационного файла необходимо перезапустить приложение.

4.3 Фильтрация записей#

Как было указано, фильтрация записей в журналы осуществляется при помощи параметра filters в конфигурационном файле.

Фильтровать записи возможно по трём параметрам: groups, actions и status.

В коде находится скрипт, генерирующий документацию с описанием этих параметров.

4.3.1 Фильтрация по группам#

Все потенциальные записи разделены на группы в зависимости от типа. У каждой группы есть имя, описание и идентификатор, по которому можно производить фильтрацию.

Описание параметра groups:

Атрибут GroupEnum Имя группы Текст подгруппы ID подгруппы
unknown Неизвестно Неизвестно 0
app Приложение Приложение genome_mgmt 10
auth_login Авторизация Вход пользователя в систему 21
auth_logout Авторизация Выход пользователя из системы 22
updates_mgmt Обновления Добавление и удаление обновлений в Геном.У 31
updates_apply Обновления Применение обновлений 32
updates_info Обновления Получение информации об обновлениях 33
updates_internal Обновления Внутренняя логика работы с обновлениями 34
passport_generate Паспорта Генерация паспортов 41
passport_internal Паспорта Внутренняя логика работы 42
node_replace_hw Замена узла Регистрация hardware 51
node_replace_sw Замена узла Регистрация software 52
node_replace_bm Замена узла Регистрация benchmark 53
ipmi_create IPMI Создание IPMI 61
ipmi_check IPMI Проверка доступа IPMI 62
ipmi_info IPMI Получение IPMI данных 63
node_info Узлы Получение информации об узлах 71
node_update Узлы Изменение статуса и серийного номера узла 72
pak_mgmt ПАК Регистрация и удаление 81
pak_info ПАК Получение информации об ПАК 82
cluster_decommissioning Кластер Вывод из эксплуатации 91
cluster_info Кластер Получение информации о кластере 92
cluster_service Кластер Работа с сервисами 93
cluster_pgbouncer Кластер Работа с pgbouncer 94
cluster_uuid Кластер Работа с uuid 95
version Версия Геном.У Версия Геном.У 200

4.3.2 Фильтрация по действиям#

Каждой записи соответствует действие, которое зависит от того, что нужно сделать с объектом. У действий также есть имя и идентификатор, по которому можно фильтровать записи.

Описание параметра actions:

Атрибут ActionEnum Имя действия ID действия
read Чтение 1
update Редактирование 2
auth Авторизация 3
start Запуск 4
stop Остановка 5
log_rotate Ротация логов 6

4.3.3 Фильтрация по статусам#

Каждой записи соответствует статус, обозначающий результат выполнения действия над объектом. У статусов также есть имя и идентификатор, по которому можно фильтровать записи.

Описание параметра status:

Атрибут StatusEnum Текст статуса ID статуса
success Успешно 0
failed Неуспешно 1
forbidden Доступ запрещен 2

Таким образом, если необходимо, например, исключить все неуспешно завершённые события, в параметр status нужно добавить “1” и перезапустить приложение.

Если необходимо исключить все записи, связанные с заменой узла, в параметр groups нужно добавить “51-53” и перезапустить приложение.

4.4 Передача файлов журнала во внешние системы#

Передача журналов во внешние системы осуществляется с помощью ПО rsyslog. Перед настройкой необходимо установить пакет rsyslog.

Типовой набор конфигурационных файлов для настройки rsyslog находится в директории

/opt/skala-r/genome/python-modules/lib/python/site-packages/genome_ng/settings/rsyslog.

Для настройки необходимо скопировать указанный набор файлов в директорию /etc/rsyslog.d и указать адрес сервера во внешней SIEM-системе (АС СВОИ) в параметре Target в файла 10_genome.conf.

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

systemctl start rsyslog

Убедиться, что сервис успешно запущен, можно с помощью команды:

systemctl status rsyslog

Статус должен быть active (running).

5 Проверка статуса SSH туннеля#

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

systemctl status tunnel_<ip>.service

где ip - IP-адрес BMC узлов ПАК из инсталляционной карты.

Статус должен быть active (running).