Установка и инициализация Inventory
Предварительные требования
Требуется наличие следующих файлов для установки:
- Архив с файлами модуля sm-inventoryдля OpenSearch
- Архив с файлами модуля smartMonitorInventoryдля OpenSearch Dashboards
Процесс установки
Установка на серверы OpenSearch выполняется следующей командой:
sudo -u opensearch $OPENSEARCH_HOME/bin/opensearch-plugin install file://<путь до архива модуля>
Установка на серверы OpenSearch Dashboards выполняется следующей командой:
sudo -u opensearch $OPENSEARCH_DASHBOARDS_HOME/bin/opensearch-dashboards-plugin install file://<путь до архива модуля>
Инициализация Inventory
Чтобы проинициализировать модуль необходимо перейти в Параметры системы - Настройка модулей - Inventory - Инициализация:

Интеграция с Smart Monitor
В параметр Пользователь необходимо ввести имя учетной записи OpenSearch.
Параметр Пароль нередактируемый, управляется через OpenSearch keystore.
Для интеграции модуля Inventory со Smart Monitor необходимо в хранилище паролей Smart Monitor Data Storage и Smart Monitor Master Node добавить ключ inv.os.pass.
Добавление пароля в хранилище keystore с помощью запроса
Откройте меню Навигационное меню - Параметры системы - Консоль разработчика и выполните следующий запрос:
GET _core/keystore
API позволяет изменять keystore только для определенных узлов кластера, например, с маской по имени узла. Подробнее про API управления хранилищем keystore можно прочитать в соответствующей статье.
Будет выведено содержимое хранилищ keystore на всех узлах кластера. Для того, чтобы добавить ключ на все узлы кластера, отредактируйте и выполните запрос:
POST _core/keystore/inv.os.pass
{
  "value" : "<PASSWORD_USER>"
}
Добавление пароля в хранилище keystore ручным способом
Необходимо на узлах OpenSearch с установленным плагином Inventory в keystore добавить ключ inv.os.pass. Сделать можно следующей командой:
sudo -u opensearch $OPENSEARCH_HOME/bin/opensearch-keystore add inv.os.pass
При выполнении скрипт запросит ввести значение ключа, введите пароль пользователя admin. После выполнения команды перезагрузите узел OpenSearch.
Интеграция с Postgres
Интеграция с PostgreSQL требуется для корректной работы модуля Inventory в соответствии с обновленным алгоритмом расчета.
По умолчанию параметр отключен — в этом случае поля не являются обязательными. При активации параметра все поля становятся обязательными для заполнения.
Параметр Пароль нередактируемый, управляется через OpenSearch keystore.
Для интеграции модуля Inventory с PostgreSQL необходимо в хранилище паролей Smart Monitor Data Storage и Smart Monitor Master Node добавить ключ inv.pg.pass.
Добавление пароля в хранилище keystore с помощью запроса
Откройте меню Навигационное меню - Параметры системы - Консоль разработчика и выполните следующий запрос:
GET _core/keystore
API позволяет изменять keystore только для определённых узлов кластера, например, с маской по имени узла. Подробнее про API управления хранилищем keystore можно прочитать в соответствующей статье.
Будет выведено содержимое хранилищ keystore на всех узлах кластера. Для того, чтобы добавить ключ на все узлы кластера, отредактируйте и выполните запрос:
POST _core/keystore/inv.pg.pass
{
  "value" : "<PASSWORD_USER>"
}
Добавление пароля в хранилище keystore ручным способом
Необходимо на узлах OpenSearch с установленным плагином Inventory в keystore добавить ключ inv.pg.pass. Сделать можно следующей командой:
sudo -u opensearch $OPENSEARCH_HOME/bin/opensearch-keystore add inv.pg.pass
При выполнении скрипт запросит ввести значение ключа, введите пароль пользователя PostgreSQL. После выполнения команды перезагрузите узел OpenSearch.
Для настройки подключения необходимо заполнить следующие поля формы:
- 
Хост — IP-адрес сервера базы данных 
- 
Порт — порт для подключения к PostgreSQL 
- 
База данных — имя используемой базы данных 
- 
Пользователь — имя пользователя для подключения 
Фильтрация нод запуска
По умолчанию задачи будут запускаться на всех серверах с установленным модулем Inventory. Фильтры позволяют регулировать набор нод, используемых для запуска задач. Данный параметр не является обязательным.
Доступны следующие типы фильтрации:
- Включить – (include) хотя бы одно из условий должно быть удовлетворено
- Исключить – (exclude) ни одно из условий не может быть удовлетворено
- Обязательно – (require) все условия должны быть удовлетворены
Доступны следующие типы атрибута:
- Имя ноды
- IP адрес хоста
- Публичный IP адрес хоста
- IP адрес
- Имя хоста
- Идентификатор ноды
- Собственный атрибут
В Значение записывается параметр ноды.
При использовании собственного атрибута появится поле ввода для указания его названия:

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

Добавление раздела в навигационное меню
Чтобы добавить компонент модуля в меню перейдите в раздел Навигационное меню - Параметры системы - Настройки модулей - Настройки меню - JSON-структура. Добавьте словарь JSON ниже в список data.
Меню Inventory
{
  "itemType": "group",
  "name": "inventory",
  "show": false,
  "id": "39afa001-b528-4488-bd55-58b09c0bded9",
  "title": "Inventory",
  "sections": [
    {
      "itemType": "page",
      "name": "configs/list",
      "show": true,
      "id": "f8518eba-cdf9-4341-bd14-51644f09c620",
      "title": "Активы",
      "enabled": true
    }
  ],
  "enabled": true
}