Автоматизированная система «Программное обеспечение контроля параметров устойчивого функционирования»

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


Аннотация


Настоящий документ является руководством Администратора автоматизированной системы «Программное обеспечение контроля параметров устойчивого функционирования» (далее АС или Автоматизированная Система).
В документе приведены сведения о назначении и условиях применения АС, действиях и операциях, которые выполняет Администратор (установка АС, взаимодействие АС с внешними системами) для поддержки рабочих процессов.
Документ разработан в соответствии с требованиями следующих документов:
·     ГОСТ Р 59795-2021 «Информационные технологии. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Требования к содержанию документов»;
·     ГОСТ Р 59853-2021 «Информационные технологии. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения»;
·     ГОСТ 19.503-79 «Руководство системного программиста. Требования к содержания и оформлению».
Исключительные права на АС принадлежат АО «НПО «КИС».


Определения, обозначения и сокращения


В настоящий документ введены следующие обозначения и сокращения

Обозначение или сокращение

Расшифровка

1

ТЗ

Техническое задание

2

АС

Автоматизированная система

3

БД

База данных

4

ОС

Операционная система

5

КИИ

Критические информационные системы

6

ПАК

Программно-аппаратный комплекс

7

ВКС

Видеоконференцсвязь

8

TCP

Transmission control protocol

9

UDP

User datagram protocol

10

SSH

Secure Shell

11

HTTP

Hypertext transfer protocol

12

HTTPS

Hypertext transfer protocol secure

13

АРМ

Автоматизированное рабочее место

14

SNMP

Simple network management protocol

15

API

Application programming interface

16

ICMP

Internet control message protocol

17

CPU

Central processing unit

18

RAM

Random access memory

19

СПО

Системное программное обеспечение

20

ППО

Прикладное программное обеспечение

21

JSON

JavaScript object notation

22

ID

Identifier



1. Общие сведения об автоматизированной системе

1.1. Назначение программы
Автоматизированная Система предназначена для автоматизации процессов управления надёжностью, технологической независимостью и функциональностью ПАК, входящих в состав КИИ.
АС может использоваться как самостоятельный, законченный продукт, так и встраиваться во внешние (существующие или разрабатываемые) информационные системы Заказчиков.

1.2. Функции и решаемы задачи автоматизированной системой
Основными целями создания Программного обеспечение контроля параметров устойчивого функционирования являются:
·     расчёт и контроль рисков снижения надёжности объекта КИИ на основании данных, формируемых разными модулями системы;
·     прогнозирование изменения показателей функциональности и надёжности при изменении структуры объекта КИИ;
·     формирование мероприятий по снижению количества негативных событий и степени влияния отдельного события на объекты контроля и систему КИИ в целом.
Для реализации поставленных целей Автоматизированная Система должна решать следующие задачи:
·     расчёт фактических показателей функциональной устойчивости объекта КИИ и его компонентов;
·     обнаружение, регистрация и анализ возникновения рисков нарушения устойчивого функционирования объекта КИИ;
·     регистрация в базе данных всех событий, связанных с риском нарушения функциональной устойчивости объекта КИИ;
·     оповещение администратора о всех событиях, связанных с риском нарушения функциональной устойчивости объекта КИИ;
·     моделирование изменений объекта КИИ и расчёт показателей функциональности и надёжности, с целью прогнозирования изменений системы КИИ и снижению рисков нарушений в её работе.

1.3. Требования к техническому обеспечению
1.3.1. Требования к аппаратному обеспечению серверной части
Минимальные требования к конфигурации аппаратного обеспечения серверной части представлены в таблице 1.1. Конфигурация продуктивных и тестовых серверов должна иметь или превосходить по параметрам характеристики, изложенные в ней.

Таблица 1.1– Минимальные требования к конфигурации аппаратного обеспечения серверной части

Компонент

Минимальная конфигурация

Процессор

Intel Xeon Silver 4310 (Ice Lake-SP)

Оперативная память

16 ГБ

Жесткий диск

HDD от 40 ГБ

Материнская плата

X11DPi-NT

Корпус

2U, 1PSU

Сетевая плата

Соединение от 1 Гбит/с


1.3.2. Требования к программному обеспечению серверной части
Для запуска АС к программному обеспечениюпредъявляются минимальные требования, перечисленные в таблице 1.2.

Таблица 1.2 – Требования к конфигурации программного обеспечения серверной части

Компонент

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

Операционная система

Дистрибутив Alt Linux или Astra Linux

Общесистемное ПО

 

docker, docker-ce, docker-ce-cli, containerd, docker-buildx-plugin, docker-compose-plugin



1.3.3. Требования к программному обеспечению клиентской части
Для запуска АС к программному обеспечениюпредъявляются минимальные требования, перечисленные в таблице 1.3.

Таблица 1.3 – Требования к конфигурации программного обеспечения клиентской части для сборки АС

Компонент

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

Операционная система

Любой дистрибутив Linux c графической оболочкой или MS Windows

Общесистемное ПО

Веб браузеры:

· Яндекс.Браузер 22 и выше;

· Google Chrome (актуальные версии);

· Firefox (актуальные версии);

· Microsoft Edge (Chromium) 112 и выше;

· Opera (актуальные версии);

· Safari (актуальные версии).


1.3.4. Требования к аппаратному обеспечению клиентской части
Для работы с АС АРМ пользователя должен удовлетворять минимальным требованиям к аппаратному обеспечению, перечисленным в таблице Таблица 1.4.

Таблица 1.4 – Требования к конфигурации аппаратного обеспечения клиентской части

Компонент

Минимальная конфигурация

Процессор

AM4, 4 x 3.5 ГГц, L2 - 2 МБ, 2 х DDR4-2400 МГц, TDP 65 Вт

Оперативная память

8 ГБ DDR3

Жесткий диск

64 ГБ HDD SATA Enterprise

Материнская плата

X11DPi-NT

Корпус

Tower

Сетевая плата

Соединение 1 Гбит/с


1.4. Сетевые доступы
Порты по умолчанию, необходимые для корректной работы, представлены в таблице Таблица 1.5.

Таблица 1.5 – Сетевые доступы

Порт

Протокол

Сервис

Инициатор соединения

Место назначения

Комментарий

22

TCP

SSH

Сотрудники технической поддержки

Все серверы платформы

Удалённый доступ к серверам для настройки и оказания технической поддержки.

5176

TCP

HTTP

Пользователи Центрального Пульта

Серверы с сервисами Центрального Пульта

Доступ к web-интерфейсу платформы.

Рекомендуется перенаправление на 443 порт.

162

UDP

SNMP Trap

Оборудование, отправляющее SNMP Trap

Серверы с агентами

Получение SNMP Trap от оборудования. По умолчанию на каждом сервере с сервисами Центрального Пульта установлен агент, который получает SNMP Trap'ы.

443

TCP

HTTPS

Пользователи Центрального Пульта

Серверы с сервисами Центрального Пульта

Доступ к web-интерфейсу Центрального Пульта с шифрованием трафика.

3000

TCP

HTTPS

Пользователи Центрального Пульта

Серверы с сервисами Центрального Пульта

Доступ к backend Центрального Пульта с шифрованием трафика


1.5. Требования администратору
1.5.1. Требования к квалификации администратора:
·     Опыт работы с операционной системой Astra Linux 1.7.
·     Знание протокола SNMP и работы с MIB-файлами.
·     Навыки работы с REST API и обработки данных в форматах JSON.
·     Понимание принципов работы систем видеоконференцсвязи.
·     Навыки работы с docker, docker-compose.

1.5.2. Обязанности администратора:
·     Установка, настройка и поддержка работоспособности АС.
·     Обеспечение корректной интеграции АС с компонентами системы ВКС (Astra Linux 1.7, SNMP, API).
·     Мониторинг и устранение неисправностей в работе АС.
·     Настройка уведомлений и оповещений о сбоях.

2. Структура программы
2.1. Перечень подсистем, их назначение и основные характеристики
В состав Автоматизированной Системы «Программное обеспечение контроля параметров устойчивого функционирования» входят следующие подсистемы и модули:
·     Подсистема получения данных, предназначенная для извлечения данных из источника хранения метрик, для их дальнейшего преобразования и передачи в смежные системы.
·     Подсистема преобразования данных, предназначенная для валидации и верификации полученных данных для обогащения или деградации в соответствии с таблицей маппинга.
·     Подсистема исполнения, предназначенная для расчёта устойчивости, надёжности и функциональности систем.
·     Подсистема архивации, предназначенная для хранения полученных данных на период глубиной N лет.
·      Подсистема отображения данных, предназначенная для визуализации результатов и их обработки, в соответствии с текущей конфигурацией.
·     Модуль работы с программными агентами, предназначенный для мониторинга состояния объектов контроля в части системного, прикладного и аппаратного обеспечения, контроля фактов нарушения нормального состояния.
·     Подсистема резервного копирования и восстановления данных.
·     Подсистема авторизации и аутентификации, предназначенная для предоставления доступа к АС «Программное обеспечение контроля параметров устойчивого функционирования».

2.2. Способы и средства связи для информационного обмена между компонентами автоматизированной системы
Подсистемы, входящие в состав АС «Программное обеспечение контроля параметров устойчивого функционирования», в процессе функционирования обмениваются информацией на основе открытых форматов обмена данными, используя для этого входящие в их состав модули информационного взаимодействия:
·     по протоколу HTTP (WEB API);
·     по протоколу ICMP;
В состав передаваемых данных входят:
·     метрические данные параметров аппаратного обеспечения;
·     данные уровня операционной системы (показания CPU, RAM, физические накопители);
·     данные уровня прикладного программного обеспечения (количество одновременно подключенных пользователей, сессий, потребление оперативной памяти и CPU, потребление места на физическом носителе).

2.3. Характеристика взаимосвязей автоматизированной системы со смежными системами
Программное обеспечение контроля параметров устойчивого функционирования имеет возможность как автономной работы, так и в интеграции с еНОД.МОНИТОРИНГ.
В случае интеграции АС с еНОД.МОНИТОРИНГ возможны следующие варианты обмена между этими системами:
·     Посредством передачи данных на API еНОД.МОНИТОРИНГ;
·     Посредством передачи данных в очередь сообщений (MQ брокер).
Результаты выполнения операций импорта и экспорта данных регистрируются в специальном журнале.

2.4. Архитектура решения

Архитектура решения АС представлена на рисунке 2.1.

Рисунок 2.1 – Архитектура решения АС Программное обеспечение контроля параметров устойчивого функционирования


Данные поступают от внешнего источника данных в Интеграционный модуль (ИМ), задачи которого: получить данную информацию, преобразовать её и отправить в Модуль принятия решений. Модуль принятия решений состоит из Расчётного, Статусного и Событийного модуля. В Расчётном модуле (РМ) рассчитываются комплексные, интеграционные и обобщённые метрики. Расчёт метрик происходит на основании данных из Интеграционного модуля, в соответствии с формулами, которые находятся в конфигурационном файле. Посчитанные значения из РМ отправляются в Статусный модуль (СМ). В СМ каждому посчитанному значению присваивается статус в зависимости от пограничных значений, которые указаны в конфигурационном файле. На основании полученных данных от ИМ, СМ формирует Статусную модель, показывающую состояние отслеживаемых параметров, которые далее отправляются в Exporter (экспортёр) и Событийный модуль (СМ). СМ сохраняет в ClickHouse информацию об изменении статуса комплексных метрик, данная информация отправляется в аналитическую витрину, для её дальнейшего анализа, и во Frontend. Задача Exporter привести полученные данные в вид метрических измерений (метрик) и отправить их в Prometheus (база данных). Экспортёров может быть несколько. Далее Importer (импортёр) из Prometheus считывает метрики, преобразовывает их в массив метрик JSON, который поставляется на Frontend (визуальное отображение данных). Также Importer забирает из Prometheus данные для построения конфигураций. Полученные данные используются во Frontend для отображения необходимых элементов в зависимости от полученной конфигурации. В случае, если произойдёт изменение в Статусной модели (например, один из показателей стремится к критическому значению), то в Notifier (нотификация в Telegram) будет отправлен сигнал о случившемся. Инструмент графической визуализации и мониторинга Grafana позволяет отображать данные из Prometheus в виде dashboards (дашбордов), диаграмм и графиков.


3. Подготовка к работе, установка и проверка работоспособности

3.1. Установка и настройка операционной системы Astra Linux SE
3.1.1. Установка Astra Linux
Для установки операционной системы Astra Linux SE необходимо выполнить следующие действия:
1. Загрузить целевой компьютер/сервер с подготовленного установочного носителя. В открывшемся меню выбрать вид установки – графическая установка (Рисунок 3.1).
Рисунок 3.1 – Выбор языка и режима установки

2. Выбрать язык загрузчика – «Русский» (см. Рисунок 3.1). Запустится процесс установки.
3. В окне «Лицензия» прочитать и принять лицензионное соглашение (Рисунок 3.2). Нажать «Продолжить».
Рисунок 3.2 – Лицензионное соглашение

4. В окне «Настройка клавиатуры» в области «Способ переключения между национальной и латинской раскладкой» выбрать «Alt+Shift»
(Рисунок 3.3). Нажать «Продолжить».
Рисунок 3.3 – Выбор способа переключения раскладки клавиатуры – «Alt + Shift»

5. В окне «Настройка сети» в поле «Имя компьютера» ввести сетевое имя устанавливаемого компьютера (на рисунке 3.4 введено «eNMS»). Нажать «Продолжить».
Рисунок 3.4 – Ввод имени устанавливаемого компьютера

6. В окне «Настройка сети» при необходимости ввести имя домена. Нажать «Продолжить» (Рисунок 3.5).
Рисунок 3.5 – Ввод имени домена

7. В окне «Настройка учётных записей пользователей и паролей» ввести имя создаваемой учетной записи (на рисунке 3.6 в строке «Имя учётной записи администратора» введено «enms»). Нажать «Продолжить».
Рисунок 3.6 – Отображение имени создаваемой учетной записи

8. В окне «Настройка учётных записей пользователей и паролей» ввести пароль создаваемой учетной записи в поле «Введите пароль для нового администратора» и повторно в поле «Введите пароль еще раз» (Рисунок 3.7). Нажать «Продолжить».

Рисунок 3.7 – Ввод пароля создаваемой учетной записи


9. В окне «Настройка времени» в области «Выберите часовой пояс» выбрать «Москва + 00 - Москва» (Рисунок 3.8). Нажать «Продолжить».
Рисунок 3.8 – Выбор необходимого часового пояса

10. В окне «Разметка дисков» в области «Метод разметки» выбрать
«Авто – использовать весь диск и настроить LVM» (Рисунок 3.9). Нажать «Продолжить».

Рисунок 3.9 – Разметка диска

11. В окне «Разметка дисков» указать диск, который будет использован (на Рисунке 3.10 в области «Выберите диск для разметки» выбрано
«SCSI3 (0,0,0) (sda) – 34.4 GB QEMU QEMU HARDDISK»). Нажать «Продолжить».

Рисунок 3.10 – Выбор диска для разметки

12. В окне «Разметка дисков» в области «Схема разметки» выбрать «Все файлы в одном разделе (рекомендуется новичкам)» (Рисунок 3.11). Нажать «Продолжить».

Рисунок 3.11 – Выбор «Все файлы в одном разделе

(рекомендуется новичкам)»

13. В окне «Разметка дисков» в области «Записать изменения на диск и настроить LVM?» выбрать «Да» (Рисунок 3.12). Нажать «Продолжить».
Рисунок 3.12 – Выбор «Записать изменения на диск и настроить LVM»

14. В окне «Разметка дисков» в области «Размер группы томов, используемый для установки» ввести значение «max» (Рисунок 3.13). Нажать «Продолжить».

Рисунок 3.13 – Выбор «Размера группы томов, используемый для установки»

15. В окне «Разметка дисков» в области «Записать изменения на диск?» отметить флажок «Да» (Рисунок 3.14). Нажать «Продолжить». Закончена разметка дисков.

Рисунок 3.14 – «Соглашение с форматированием разделов

и записью изменений»

16. В окне «Установка базовой системы» в области «Ядро для установки» выбрать «linux-5-15-generic» (Рисунок 3.15). Нажать «Продолжить».

Рисунок 3.15 – Выбор «Ядра для установки»

17. В окне «Выбор программного обеспечения» в области «Выберите устанавливаемое программное обеспечение» отметить флажки «Консольные утилиты» и «Средства удаленного подключения SSH» (Рисунок 3.16). Нажать «Продолжить».

Рисунок 3.16 – Выбор устанавливаемого ПО


18. В окне «Дополнительные настройки ОС» в области «Выберите уровень защищенности в зависимости от приобретенной лицензии» выбрать пункт «Орел» (Рисунок 3.17). Нажать «Продолжить».

Рисунок 3.17 – Выбор уровня защищенности

19. В окне «Дополнительные настройки ОС» отметить флажок «Запрос пароля команды sudo» (Рисунок 3.18). Нажать «Продолжить».

Рисунок 3.18 – Дополнительные настройки ОС

1. В окне «Установка системного загрузчика GRUB на жёсткий диск» установить системный загрузчик в главную загрузочную запись
(на Рисунке 3.19 после «Установить системный загрузчик GRUB в главную загрузочную запись?» отметить флажок «Да»; на Рисунке 3.20 в области «Пароль для GRUB» ввести пароль. Нажать «Продолжить». Далее в области «Введите пароль еще раз» повторно ввести пароль для GRUB. Нажать «Продолжить» (Рисунок 3.21).

Рисунок 3.21 – Повторный ввод пароля для GRUB


1. После появления окна «Завершение установки» (Рисунок 3.22) извлечь установочный носитель и нажать «Продолжить».
Рисунок 3.22 – Завершение установки

1.1. Сетевые настройки
В процессе установки ОС Astra Linux отсутствует возможность выполнения сетевых настроек, поэтому выполнить настройку сети возможно после установки ОС:
1. После перезагрузки открывается первоначальный экран ОС
с возможностью ввода имени и пароля (Рисунок 3.23). Ввести имя и пароль, заданные на шаге 9. Произвести авторизацию.

Рисунок 3.23 – Начальный экран ОС Astra Linux SE

(верхний фрагмент экрана)


2. Командой ip a ввести все доступные интерфейсы (Рисунок 3.24)

Рисунок 3.24 – Окно текущих сетевых настроек



3. Перейти в режим редактирования файла, отвечающего за настройку интерфейсов, командой sudo nano /etc/network/interfaces (Рисунок 3.25).

Рисунок 3.25 – Режим редактирования файла


4. На рисунке 3.26 отображено содержимое файла «interfaces».

Рисунок 3.26 – Отображение содержимого файла «interfaces»


5. По умолчанию интерфейсы, кроме «loopback», выключены. Для включения интерфейсов при загрузке операционной системы служит строчка «auto <имя интерфейса>», в нашем примере включаем «loopback» и «eth0». Для настройки интерфейса в режиме «dhcp» строка имеет вид «iface <название интерфейса> inet dhcp». Здесь этот режим задаётся для «eth0».
На рисунке 3.27 представлен финальный вариант конфигурации.

Рисунок 3.27 – Финальный вариант конфигурации


6. Для настройки интерфейсов в режиме статического адреса строка имеет следующий вид: «iface <название интерфейса> inet static», а также дополняется строками с настройкой: ip адреса, макса подсети, шлюза, DNS. На рисунке 3.28 представлен финальный вариант конфигурации.
Рисунок 3.28 – Финальный вариант конфигурации

7. После завершения редактирования сохранить файлы, нажав на клавишах «ctrl+x + y».
8. Применение настроек выполняется командой sudo systemctl restart networking.service. Сетевые настройки закончены.

3.3. Установка автоматизированной системы
Для установки АС необходим установленный docker из официальных репозиториев. (процесс установки docker представлен в разделе 3.4).
         Установка АС производится посредством написания команды docker compose up –d.
         docker-compose.yml содержит в себе:
·     образ frontend части модуля устойчивого функционирования, работающий на порту 80/443. Он основан на базовом слое npm:22.13.0, с помощью которого установлен React;
·     образ backend части модуля устойчивого функционирования, работающий на порту 3000. Он основан на базовом слое npm:22.13.0, с помощью которого установлены TypeScript и NestJS.

3.4. Установка Docker

3.4.1. Удаление конфликтующих пакетов
Перед установкой Docker Engine необходимо удалить все конфликтующие пакеты.
Дистрибутив Linux может предоставлять неофициальные пакеты Docker, которые могут конфликтовать с официальными пакетами, предоставляемыми Docker. Необходимо удалить эти пакеты перед установкой официальной версии Docker Engine:
·     docker.io
·     docker-compose
·     docker-doc
·     podman-docker
Более того, Docker Engine зависит от containerd и runc. Docker Engine объединяет эти зависимости в один пакет: containerd.io. Если ранее containerd или runc были установлены, то их необходимо удалить, чтобы избежать конфликтов с версиями, связанными с Docker Engine.
Чтобы удалить все конфликтующие пакеты, выполните следующую команду:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove $pkg; done


Образы, контейнеры, тома и сети, хранящиеся в /var/lib/docker/, не удаляются автоматически при удалении Docker. Если необходимо начать с чистой установки, то прочтите раздел 3.5 «Удалении Docker Engine».

3.4.2. Установка Docker репозитория
Перед первой установкой Docker Engine на новую хост-машину необходимо настроить репозиторий apt. После этого Вы сможете установить и обновить Docker из репозитория.
Для настройки репозитория apt выполните следующую команду:

sudo apt update

sudo apt install ca-certificates curl

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

 

echo \

 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \

  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \

 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update


Примечание: если Вы используете производный дистрибутив, например Kali Linux, Вам может потребоваться заменить часть команды выше, которая должна выводить кодовое имя версии:

$(. /etc/os-release && echo "$VERSION_CODENAME")


Замените эту часть кодовым именем соответствующего выпуска Debian, например, bookworm.

3.4.3. Установка Docker пакетов
Для установки конкретной версии выполните следующую команду:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


Чтобы установить определённую версию Docker Engine, начните с перечисления доступных версий в репозитории:

$ apt-cache madison docker-ce | awk '{ print $3 }'


Выберите нужную версию и установите:

VERSION_STRING=5:27.3.1-1~debian.12~bookworm

sudo apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin


3.4.4. Проверка работоспособности Docker
Чтобы убедиться, что установка прошла успешно, запустите образ hello-world, выполнив следующую команду:

sudo docker run hello-world


Эта команда загружает и запускает тестовый образ в контейнере. Когда контейнер запускается, он выводит сообщение с подтверждением и завершает работу.

3.4.5. Удаление Docker
Для удаления пакетов Docker Engine, CLI, containerd и Docker Compose выполните следующую команду:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras


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

sudo rm -rf /var/lib/docker

sudo rm -rf /var/lib/containerd


Чтобы удалить source list и keyrings выполните следующую команду:

sudo rm /etc/apt/sources.list.d/docker.list

sudo rm /etc/apt/keyrings/docker.asc


4. Задачи администратора
В данном разделе описаны стандартные сценарии взаимодействия администратора с АС.

4.1. Удаление АС
Для удаления АС, работающей в виде нескольких сервисов в Docker-контейнерах, необходимо выполнить следующую команду:

docker compose -f /path/to/docker-compose.yml down

Эта команда автоматически остановит все запущенные сервисы и удалит контейнеры.

4.2. Перезапуск АС
Если необходимо перезапустить АС, например, в случае сбоя работы одного или нескольких сервисов, нужно ввести команду:

docker compose -f /path/to/docker-compose.yml restart

Эта команда перезапустит все сервисы, указанные в docker-compose.yml.

4.3. Обновление АС
Для обновления версии АС необходимо выполнить следующие шаги:
1. Открыть файл docker-compose.yml в любом текстовом редакторе.
2. Найти параметр image для каждого сервиса.
3. Обновить значение версии на актуальную.
Сохранить изменения и перезапустить сервисы с помощью команд:

docker compose -f /path/to/docker-compose.yml pull,
docker compose -f /path/to/docker-compose.yml up -d.

4.4. Конфигурирование АС
Администратор может настроить работу АС, изменяя параметры в файле docker-compose.yml. Основные настройки выполняются через переменные окружения для каждого из сервисов:
1. trust-module-backend
·     PROMETHEUS_URL – URL-адрес сервера Prometheus.
·     DB_HOST – IP-адрес БД.
·     DB_PORT – порт, на котором работает БД.
·     DB_USER – пользователь БД.
·     DB_NAME – имя БД.
·     DB_PASSWORD – пароль от БД.
2. trust-module-frontend
·     VITE_BACK_URL – URL-адрес API backend-сервиса.
·     VITE_BACK_WS_URL – URL-адрес API Websocket backend-сервиса.

4.5. Мониторинг сервисов АС
Для проверки работоспособности компонентов АС, необходимо прописать команду:

docker ps -a

Также для более детального диагностирования системы можно прописать команду:

docker logs --tail число <container_name>,

где число — это количество последних строк,
container_name — это имя или id контейнера.

5. Аварийные ситуации
В данной главе представлены основные штатные сценарии поведения АС, приравненные к классу аварийных ситуаций с разделением по контору, в котором они возникли.

5.1. Аварийные ситуации во внутреннем контуре
1. Клиент перестал получать данные об измерениях.
2. Клиент перестал получать данные о статусах измерений.
3. Клиент получает неизменяемые с течением времени данные об измерениях.
4. Клиент получает неизменяемые с течением времени данные о статусах измерений.
5. Затрудненная работа клиента.
6. Большие задержки при получении измерений и их статусов.
Причиной появления аварийной ситуации данного класса может быть проблемы, связанные с:
·     работоспобностью самого клиента в случаях, если он не может взаимодействовать с модулем импорта в текущем сетевом окружении, либо выделенный порт уже занят или не может быть использован клиентом;
·     работоспобностью Модуля импорта в случаях если он: перестал работать; неверно сконфигурирован; в локальной сети установлены правила, ограничивающие его деятельность; канал связи между ним и клиентом не пропускает данные;
·     работоспобностью Модуля поддержки и принятия решений в случаях если: конфигурация текущего сетевого окружения не позволяет взаимодействовать с Модулем импорта; собственная конфигурация была составлена неверно; нарушена целостность канала связи между Модулем импорта и Модулем поддержки и принятия решений.
Рисунок 3.28 – Финальный вариант конфигурации

7. После завершения редактирования сохранить файлы, нажав на клавишах «ctrl+x + y».
8. Применение настроек выполняется командой sudo systemctl restart networking.service. Сетевые настройки закончены.

3.3. Установка автоматизированной системы
Для установки АС необходим установленный docker из официальных репозиториев. (процесс установки docker представлен в разделе 3.4).
         Установка АС производится посредством написания команды docker compose up –d.
         docker-compose.yml содержит в себе:
·     образ frontend части модуля устойчивого функционирования, работающий на порту 80/443. Он основан на базовом слое npm:22.13.0, с помощью которого установлен React;
·     образ backend части модуля устойчивого функционирования, работающий на порту 3000. Он основан на базовом слое npm:22.13.0, с помощью которого установлены TypeScript и NestJS.

3.4. Установка Docker

3.4.1. Удаление конфликтующих пакетов
Перед установкой Docker Engine необходимо удалить все конфликтующие пакеты.
Дистрибутив Linux может предоставлять неофициальные пакеты Docker, которые могут конфликтовать с официальными пакетами, предоставляемыми Docker. Необходимо удалить эти пакеты перед установкой официальной версии Docker Engine:
·     docker.io
·     docker-compose
·     docker-doc
·     podman-docker
Более того, Docker Engine зависит от containerd и runc. Docker Engine объединяет эти зависимости в один пакет: containerd.io. Если ранее containerd или runc были установлены, то их необходимо удалить, чтобы избежать конфликтов с версиями, связанными с Docker Engine.
Чтобы удалить все конфликтующие пакеты, выполните следующую команду:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove $pkg; done


Образы, контейнеры, тома и сети, хранящиеся в /var/lib/docker/, не удаляются автоматически при удалении Docker. Если необходимо начать с чистой установки, то прочтите раздел 3.5 «Удалении Docker Engine».

3.4.2. Установка Docker репозитория
Перед первой установкой Docker Engine на новую хост-машину необходимо настроить репозиторий apt. После этого Вы сможете установить и обновить Docker из репозитория.
Для настройки репозитория apt выполните следующую команду:

sudo apt update

sudo apt install ca-certificates curl

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

 

echo \

 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \

  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \

 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update


Примечание: если Вы используете производный дистрибутив, например Kali Linux, Вам может потребоваться заменить часть команды выше, которая должна выводить кодовое имя версии:

$(. /etc/os-release && echo "$VERSION_CODENAME")


Замените эту часть кодовым именем соответствующего выпуска Debian, например, bookworm.

3.4.3. Установка Docker пакетов
Для установки конкретной версии выполните следующую команду:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


Чтобы установить определённую версию Docker Engine, начните с перечисления доступных версий в репозитории:

$ apt-cache madison docker-ce | awk '{ print $3 }'


Выберите нужную версию и установите:

VERSION_STRING=5:27.3.1-1~debian.12~bookworm

sudo apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin


3.4.4. Проверка работоспособности Docker
Чтобы убедиться, что установка прошла успешно, запустите образ hello-world, выполнив следующую команду:

sudo docker run hello-world


Эта команда загружает и запускает тестовый образ в контейнере. Когда контейнер запускается, он выводит сообщение с подтверждением и завершает работу.

3.4.5. Удаление Docker
Для удаления пакетов Docker Engine, CLI, containerd и Docker Compose выполните следующую команду:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras


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

sudo rm -rf /var/lib/docker

sudo rm -rf /var/lib/containerd


Чтобы удалить source list и keyrings выполните следующую команду:

sudo rm /etc/apt/sources.list.d/docker.list

sudo rm /etc/apt/keyrings/docker.asc


4. Задачи администратора
В данном разделе описаны стандартные сценарии взаимодействия администратора с АС.

4.1. Удаление АС
Для удаления АС, работающей в виде нескольких сервисов в Docker-контейнерах, необходимо выполнить следующую команду:

docker compose -f /path/to/docker-compose.yml down

Эта команда автоматически остановит все запущенные сервисы и удалит контейнеры.

4.2. Перезапуск АС
Если необходимо перезапустить АС, например, в случае сбоя работы одного или нескольких сервисов, нужно ввести команду:

docker compose -f /path/to/docker-compose.yml restart

Эта команда перезапустит все сервисы, указанные в docker-compose.yml.

4.3. Обновление АС
Для обновления версии АС необходимо выполнить следующие шаги:
1. Открыть файл docker-compose.yml в любом текстовом редакторе.
2. Найти параметр image для каждого сервиса.
3. Обновить значение версии на актуальную.
Сохранить изменения и перезапустить сервисы с помощью команд:

docker compose -f /path/to/docker-compose.yml pull,
docker compose -f /path/to/docker-compose.yml up -d.

4.4. Конфигурирование АС
Администратор может настроить работу АС, изменяя параметры в файле docker-compose.yml. Основные настройки выполняются через переменные окружения для каждого из сервисов:
1. trust-module-backend
·     PROMETHEUS_URL – URL-адрес сервера Prometheus.
·     DB_HOST – IP-адрес БД.
·     DB_PORT – порт, на котором работает БД.
·     DB_USER – пользователь БД.
·     DB_NAME – имя БД.
·     DB_PASSWORD – пароль от БД.
2. trust-module-frontend
·     VITE_BACK_URL – URL-адрес API backend-сервиса.
·     VITE_BACK_WS_URL – URL-адрес API Websocket backend-сервиса.

4.5. Мониторинг сервисов АС
Для проверки работоспособности компонентов АС, необходимо прописать команду:

docker ps -a

Также для более детального диагностирования системы можно прописать команду:

docker logs --tail число <container_name>,

где число — это количество последних строк,
container_name — это имя или id контейнера.

5. Аварийные ситуации
В данной главе представлены основные штатные сценарии поведения АС, приравненные к классу аварийных ситуаций с разделением по контору, в котором они возникли.

5.1. Аварийные ситуации во внутреннем контуре
1. Клиент перестал получать данные об измерениях.
2. Клиент перестал получать данные о статусах измерений.
3. Клиент получает неизменяемые с течением времени данные об измерениях.
4. Клиент получает неизменяемые с течением времени данные о статусах измерений.
5. Затрудненная работа клиента.
6. Большие задержки при получении измерений и их статусов.
Причиной появления аварийной ситуации данного класса может быть проблемы, связанные с:
·     работоспобностью самого клиента в случаях, если он не может взаимодействовать с модулем импорта в текущем сетевом окружении, либо выделенный порт уже занят или не может быть использован клиентом;
·     работоспобностью Модуля импорта в случаях если он: перестал работать; неверно сконфигурирован; в локальной сети установлены правила, ограничивающие его деятельность; канал связи между ним и клиентом не пропускает данные;
·     работоспобностью Модуля поддержки и принятия решений в случаях если: конфигурация текущего сетевого окружения не позволяет взаимодействовать с Модулем импорта; собственная конфигурация была составлена неверно; нарушена целостность канала связи между Модулем импорта и Модулем поддержки и принятия решений.
5.2. Аварийные ситуации во внешнем контуре
1. Источник перестал передавать данные об измерениях.
2. Источник перестал передавать данные о статусах измерений.
3. Источник получает неизменяемые с течением времени данные об измерениях.
4. Источник передает неизменяемые с течением времени данные о статусах измерений.
5. Большие задержки при передаче измерений и их статусов.
Причиной появления аварийной ситуации данного класса может быть проблемы, связанные с:
·     работоспобностью базы данных Prometheus, в случае если отмечаются проблемы, связанные с получением измерений, например, когда данных нет;
·     работоспобностью базы данных ClickHouse, если данные о статусах измерений ошибочны или структура дерева отслеживаемого сервиса и его компонентов неверна;
·     работоспобностью Интеграционного модуля в случае, если он не способен опрашивать внешний источник данных из-за ограничивающих деятельность Интеграционного модуля конфигураций сетевого окружения и неверного конфигурирования самого Интеграционного модуля;
·     работоспобностью Экспортерав случае, если измерения отсутствуют или перестали обновляться с определенного момента.
В случае возникновения аварийных ситуаций внешнего сектора необходимо обратиться в службу поддержки (адрес: support@kis.ru), приложив подробное протоколирование появившейся проблемы.