НКЦКИ: Установка и настройка
Оглавление
- Общее описание
- Последовательность установки
- Устранение неисправностей
Общее описание
В статье описана установка и настройка интеграции 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) и к APISmart 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 | Нет | false | true отключает проверку сертификата ЛК |
NKCKI_MODE | Нет | direct | direct - отправка от имени организации; 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 | Нет | false | true отключает проверку сертификата 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_TLS | true отключает проверку сертификата при записи журнала |
Файл окружения содержит токен ЛК и пароль 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. Привязка типа инцидента и рабочего процесса к задачам
Утилита не изменяет задачи планировщика. Для каждой задачи, инциденты которой нужно отправлять в НКЦКИ:
- Откройте задачу:
Навигационное меню-Планировщик задач-Список задач - В активном действии Создание инцидента укажите в поле
Тип инцидентазначениеНКЦКИ, в полеWorkflow— значениеНКЦКИ - Проверьте, какие поля карточки заполняются из результатов задачи. Сведения, которых нет в данных задачи, оператор заполняет в карточке перед отправкой
- Сохраните задачу

Создание инцидента задачей не отправляет уведомление в ЛК: отправку запускает оператор из карточки инцидента. У существующих инцидентов тип и рабочий процесс проверьте отдельно.
Шаг 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 перезапущен |
| Переходы рабочего процесса недоступны оператору | Роли оператора добавлены в переходы рабочего процесса НКЦКИ |
Ошибки, которые возникают при отправке уведомления, описаны в статье НКЦКИ: Отправка уведомлений.