Перейти к основному содержимому
Версия: 6.2

НКЦКИ: Установка и настройка

Оглавление​


Общее описание​

В статье описана установка и настройка интеграции Incident Manager с ЛК НКЦКИ. Назначение интеграции, виды уведомлений и ограничения описаны в статье Интеграция с НКЦКИ, порядок заполнения карточки и отправки — в статье НКЦКИ: Отправка уведомлений.

Состав поставки​

КомпонентНазначение
Утилита установки maker/bin/nkcki_maker.pyСоздает и обновляет объекты интеграции в Smart Monitor
Скрипт активного действия tools/nkcki_send_incident.pyПроверяет поля карточки, отправляет уведомление в ЛК и записывает результат в карточку
Пример параметров подключения tools/config.example.envШаблон параметров для файла окружения Smart Monitor Web

Утилита установки создает следующие объекты:

Тип объектаОбъекты
Поля инцидента86 полей с префиксом nkcki_, поля добавляются в карточку инцидента
Тип инцидентаНКЦКИ (nkcki)
Активное действиеОтправить инцидент в НКЦКИ
Рабочий процессНКЦКИ (workflow-nkcki)
ДашбордИнциденты НКЦКИ

Утилита и скрипт используют только стандартную библиотеку Python, установка дополнительных пакетов не требуется.

Полезная информация

Переходы рабочего процесса НКЦКИ после установки доступны только роли all_access. Чтобы переходы были доступны операторам, добавьте их роли в настройках рабочего процесса.


Последовательность установки​

Шаг 1. Подготовка к установке​

Для установки необходимы:

  • Python 3.10 и выше на компьютере, с которого запускается утилита установки, и на узле Smart Monitor Web
  • учетная запись Smart Monitor с правами администратора
  • сетевой доступ с компьютера установки к API Smart Monitor Web (обычно порт 5601) и к API Smart Monitor Data Storage (обычно порт 9200)
  • сетевой доступ с узла Smart Monitor Web к API ЛК по HTTPS
  • токен API выбранного ЛК
  • сведения об организации — владельце информационного ресурса: сокращенное и полное наименование, ИНН, КПП, ОГРН, категория объекта КИИ, сфера функционирования и код региона по ISO 3166-2, например RU-KYA

Распакуйте архив поставки, перейдите в каталог maker и проверьте версию Python:

cd <каталог-поставки>/maker
python3 --version

Шаг 2. Установка объектов утилитой​

Задайте пароль учетной записи Smart Monitor и адрес API Smart Monitor Data Storage в переменных окружения текущей сессии и запустите установку:

export SM_PASSWORD='<пароль>'
export SM_URL='https://<адрес-smart-monitor-data-storage>:9200'
python3 bin/nkcki_maker.py deploy --host <адрес-smart-monitor-web>:5601 --user <пользователь>

Параметры утилиты:

ПараметрОбязательныйЗначение по умолчаниюОписание
deploy, show, render-defaultsДа-Команда: установка объектов, проверка установленных объектов, вывод значений по умолчанию без установки
--hostДа-Адрес API Smart Monitor Web в формате <узел>:<порт>, без указания протокола
--userНетadminУчетная запись Smart Monitor
--sm-urlНетЗначение SM_URLАдрес API Smart Monitor Data Storage. Для команды deploy нужен параметр или переменная SM_URL
--non-interactiveНет-Брать значения по умолчанию из переменных окружения вместо вопросов

Ответьте на вопросы утилиты. Ответы сохраняются как значения по умолчанию полей типа инцидента НКЦКИ и подставляются в каждую новую карточку:

ВопросФормат ответа
Организация MSSPНаименование организации MSSP. Если отправка выполняется без MSSP, нажмите Enter
Сокращенное наименование владельца ресурсаТекст
Информация о категорировании ОКИИНомер варианта из списка
Сфера функционирования субъектаНомер варианта из списка
Место расположенияКод региона по ISO 3166-2, например RU-KYA
Полное наименование организацииТекст. Enter сохраняет прежнее значение
Привлеченные силы реагированияТекст. Enter сохраняет прежнее значение
ИНН10 или 12 цифр, обязательный ответ
КПП9 цифр, обязательный ответ
ОГРН13 или 15 цифр, обязательный ответ

После завершения утилита выводит перечень созданных и обновленных объектов.

Обратите внимание!

Повторный запуск deploy перезаписывает поля, тип инцидента, активное действие, рабочий процесс НКЦКИ и дашборд из поставки. Изменения, внесенные в эти объекты вручную, будут потеряны: перед повторным запуском сохраните их.

При повторном запуске пустой ответ на вопросы об организации MSSP и наименовании владельца очищает прежнее значение по умолчанию.

Установка без вопросов

С параметром --non-interactive утилита берет значения по умолчанию из переменных окружения. Переменная, которая не задана, не изменяет текущее значение по умолчанию. При первой установке переменные NKCKI_DEFAULT_INN, NKCKI_DEFAULT_KPP и NKCKI_DEFAULT_OGRN обязательны.

ПеременнаяЗначение
NKCKI_DEFAULT_MSSPОрганизация MSSP
NKCKI_DEFAULT_OWNERСокращенное наименование владельца ресурса
NKCKI_DEFAULT_FULL_NAMEПолное наименование организации
NKCKI_DEFAULT_OKIIКатегория объекта КИИ, текст варианта полностью, например Объект КИИ третьей категории значимости
NKCKI_DEFAULT_FUNCTIONСфера функционирования, текст варианта полностью, например Здравоохранение
NKCKI_DEFAULT_LOCATIONКод региона по ISO 3166-2
NKCKI_DEFAULT_RESPONSE_TEAMПривлеченные силы реагирования
NKCKI_DEFAULT_INNИНН
NKCKI_DEFAULT_KPPКПП
NKCKI_DEFAULT_OGRNОГРН

Значения, которые будут применены, можно вывести без установки:

python3 bin/nkcki_maker.py render-defaults --host <адрес-smart-monitor-web>:5601 --non-interactive

Шаг 3. Размещение скрипта активного действия​

Скопируйте скрипт tools/nkcki_send_incident.py из поставки на узел Smart Monitor Web в каталог активных действий:

sudo cp nkcki_send_incident.py /app/opensearch-dashboards/config/actions/

Скрипты из этого каталога сохраняются при обновлении плагинов. Подробнее о размещении скриптов см. в статье Создание скрипта активного действия.

Шаг 4. Настройка подключения​

На узле Smart Monitor Web откройте файл окружения службы:

sudo nano /app/opensearch-dashboards/config/environment

Добавьте параметры подключения, сохранив остальные настройки файла:

NKCKI_BASE_URL=https://<адрес-api-лк>/api/v2
NKCKI_API_TOKEN=<токен личного кабинета>
NKCKI_INSECURE_TLS=false
NKCKI_MODE=direct
NKCKI_ENVIRONMENT=production
NKCKI_TIMEOUT_MS=30000

SM_URL=https://<адрес-smart-monitor-data-storage>:9200
SM_USER=<пользователь>
SM_PASSWORD=<пароль>
SM_INSECURE_TLS=false
SM_DIRECT_INCIDENT_UPDATE=true
ПеременнаяОбязательныйЗначение по умолчаниюНазначение
NKCKI_BASE_URLДа-Адрес API ЛК, только HTTPS. Включает префикс /api/v2, если он используется
NKCKI_API_TOKENДа-Токен API ЛК
NKCKI_INSECURE_TLSНетfalsetrue отключает проверку сертификата ЛК
NKCKI_MODEНетdirectdirect - отправка от имени организации; mssp - отправка с указанием организации MSSP, поле Организация MSSP становится обязательным
NKCKI_ENVIRONMENTНетproductionМетка окружения в журнале отправок, адрес API не изменяет
NKCKI_TIMEOUT_MSНет30000Тайм-аут запроса к ЛК в миллисекундах
SM_URLДа-Адрес API Smart Monitor Data Storage для чтения карточки, записи результата и журнала отправок
SM_USERДа-Учетная запись Smart Monitor. Нужны права на чтение и изменение инцидентов и на запись в индекс sm-nkcki-exchange
SM_PASSWORDДа-Пароль учетной записи SM_USER
SM_INSECURE_TLSНетfalsetrue отключает проверку сертификата Smart Monitor Data Storage
SM_DIRECT_INCIDENT_UPDATEНетtrueЗаписывать результат отправки в карточку инцидента. При false результат в карточку не записывается

Журнал отправок ведется в индексе sm-nkcki-exchange в Smart Monitor Data Storage. Адрес журнала и учетные данные для записи в него можно переопределить необязательными переменными:

ПеременнаяЗначение по умолчаниюНазначение
NKCKI_AUDIT_URL<SM_URL>/sm-nkcki-exchange/_docАдрес записи журнала отправок
NKCKI_AUDIT_LOCK_URL<SM_URL>/sm-nkcki-exchange/_createАдрес записи блокировок повторной отправки
NKCKI_AUDIT_TOKEN-Bearer-токен для записи журнала. Если не задан, используются SM_USER и SM_PASSWORD
NKCKI_AUDIT_INSECURE_TLSЗначение SM_INSECURE_TLStrue отключает проверку сертификата при записи журнала
Обратите внимание!

Файл окружения содержит токен ЛК и пароль Smart Monitor. Ограничьте доступ к файлу и не передавайте его содержимое третьим лицам.

Перезапустите Smart Monitor Web, чтобы применить параметры и обновить каталог активных действий:

sudo systemctl restart opensearch-dashboards
sudo systemctl status opensearch-dashboards --no-pager

Убедитесь, что служба загружает файл окружения:

systemctl cat opensearch-dashboards | grep EnvironmentFile

В выводе должен быть указан путь /app/opensearch-dashboards/config/environment.

Шаг 5. Привязка типа инцидента и рабочего процесса к задачам​

Утилита не изменяет задачи планировщика. Для каждой задачи, инциденты которой нужно отправлять в НКЦКИ:

  1. Откройте задачу: Навигационное меню - Планировщик задач - Список задач
  2. В активном действии Создание инцидента укажите в поле Тип инцидента значение НКЦКИ, в поле Workflow — значение НКЦКИ
  3. Проверьте, какие поля карточки заполняются из результатов задачи. Сведения, которых нет в данных задачи, оператор заполняет в карточке перед отправкой
  4. Сохраните задачу

Привязка типа инцидента и рабочего процесса к задаче

Создание инцидента задачей не отправляет уведомление в ЛК: отправку запускает оператор из карточки инцидента. У существующих инцидентов тип и рабочий процесс проверьте отдельно.

Шаг 6. Проверка установки​

1. Проверка объектов утилитой​

Запустите утилиту с командой show:

python3 bin/nkcki_maker.py show --host <адрес-smart-monitor-web>:5601 --user <пользователь>

Ожидаемый результат:

Поля НКЦКИ: 86/86
Тип НКЦКИ: есть
Дашборд НКЦКИ: есть (1)

2. Проверка типа инцидента​

Проверьте наличие типа инцидента НКЦКИ: Навигационное меню - Параметры системы - Настройки модулей - Менеджер инцидентов - Типы инцидентов. В типе должно быть выбрано активное действие Отправить инцидент в НКЦКИ.

Тип инцидента НКЦКИ

3. Проверка рабочего процесса​

Проверьте наличие рабочего процесса НКЦКИ со статусами Новый инцидент, В работе, Сведения отправлены в НКЦКИ, Ошибка отправки и Инцидент закрыт: Навигационное меню - Параметры системы - Настройки модулей - Менеджер инцидентов - Рабочий процесс.

Рабочий процесс НКЦКИ

4. Проверка активного действия​

Проверьте наличие активного действия Отправить инцидент в НКЦКИ со скриптом nkcki_send_incident: Навигационное меню - Параметры системы - Настройки модулей - Менеджер инцидентов - Активные действия. Если скрипт не отображается, проверьте шаг 3 и перезапуск Smart Monitor Web.

Активное действие НКЦКИ

5. Проверка дашборда​

Проверьте наличие дашборда: Навигационное меню - Основное - Дашборды - Инциденты НКЦКИ.

Дашборд Инциденты НКЦКИ

6. Проверка отправки​

Создайте тестовый инцидент с типом и рабочим процессом НКЦКИ и отправьте его по статье НКЦКИ: Отправка уведомлений.

Обратите внимание!

Уведомление, отправленное в рабочий ЛК, регистрируется в НКЦКИ. Для проверки используйте тестовый ЛК, если он предоставлен.


Устранение неисправностей​

Ошибка или признакЧто проверить
Нужна переменная окружения SM_PASSWORD.Переменная SM_PASSWORD задана в той же сессии терминала, в которой запускается утилита
Для deploy задайте --sm-url или SM_URL.Передан параметр --sm-url или задана переменная SM_URL
Для новой установки задайте обязательные значения: ...При запуске с --non-interactive заданы NKCKI_DEFAULT_INN, NKCKI_DEFAULT_KPP и NKCKI_DEFAULT_OGRN
«Название поля»: значение отсутствует в справочнике.Значения NKCKI_DEFAULT_OKII и NKCKI_DEFAULT_FUNCTION совпадают с текстом варианта полностью
Ошибка соединения с API при установкеАдреса и порты --host и SM_URL, сетевой доступ, права учетной записи
NKCKI_BASE_URL не задан. NKCKI_API_TOKEN не задан.Параметры в файле окружения, подключение файла к службе, перезапуск Smart Monitor Web
NKCKI_BASE_URL должен использовать HTTPS.Адрес ЛК начинается с https://
Для записи ответа НКЦКИ в Smart Monitor задайте переменные окружения: ...Переменные SM_URL, SM_USER и SM_PASSWORD в файле окружения
certificate verify failedЦепочка доверия Python на узле Smart Monitor Web и переменная NKCKI_INSECURE_TLS или SM_INSECURE_TLS для соответствующего подключения
Активного действия нет в карточке инцидентаТип инцидента карточки — НКЦКИ, скрипт размещен, Smart Monitor Web перезапущен
Переходы рабочего процесса недоступны операторуРоли оператора добавлены в переходы рабочего процесса НКЦКИ

Ошибки, которые возникают при отправке уведомления, описаны в статье НКЦКИ: Отправка уведомлений.