Установка и инициализация 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://<путь до архива модуля>
После установки или обновления плагина увеличьте значение build.number в файле $OPENSEARCH_DASHBOARDS_HOME/package.json. Это требуется для сброса кэша браузера. Затем перезапустите сервис OpenSearch Dashboards.
Подробнее см. в разделе Установка плагинов.
Инициализация Inventory
Чтобы инициализировать модуль, перейдите в Навигационное меню - Параметры системы - Настройка модулей - Inventory - Инициализация:

Интеграция с Smart Monitor
В поле Пользователь введите имя специальной учетной записи OpenSearch.
Поле Пароль недоступно для редактирования. Значение хранится в OpenSearch keystore.
Для интеграции модуля Inventory со Smart Monitor сохраните пароль специальной учетной записи OpenSearch в ключе inv.os.pass keystore на узлах с установленным плагином Inventory.
Учетная запись используется для проверки лицензии и работы с прежним алгоритмом расчета.
Добавление пароля в хранилище keystore с помощью запроса
Откройте меню Навигационное меню - Параметры системы - Консоль разработчика. Чтобы определить узлы с установленным плагином Inventory, выполните запрос:
GET _cat/plugins?v&h=name,component,version
Найдите в ответе строки со значением sm-inventory в столбце component и запишите имена узлов из столбца name.
Чтобы просмотреть содержимое keystore на узлах кластера, выполните запрос:
GET _core/keystore
Параметр nodeid позволяет выполнить запрос только на указанных узлах. В качестве значения можно использовать имя узла или маску. Подробнее см. в статье Управление Keystore через API.
Добавьте ключ на узлы с плагином Inventory, указав имя узла или общую маску в параметре nodeid:
POST _core/keystore/inv.os.pass?nodeid=<INVENTORY_NODE_NAME_OR_MASK>
{
"value" : "<OPENSEARCH_SERVICE_ACCOUNT_PASSWORD>"
}
В поле value укажите пароль специальной учетной записи OpenSearch. Если узлы нельзя выбрать одной маской, повторите запрос для каждого узла с установленным плагином Inventory.
Добавление пароля в хранилище keystore ручным способом
На узлах OpenSearch с установленным плагином Inventory добавьте в keystore ключ inv.os.pass следующей командой:
sudo -u opensearch $OPENSEARCH_HOME/bin/opensearch-keystore add inv.os.pass
Скрипт запросит значение ключа. Укажите пароль специальной учетной записи OpenSearch. После выполнения команды перезагрузите узел OpenSearch.
Интеграция с PostgreSQL
Интеграция с PostgreSQL требуется для работы модуля Inventory по обновленному алгоритму расчета.
По умолчанию параметр отключен, поэтому поля необязательны. При включении параметра все поля становятся обязательными для заполнения.
Поле Пароль недоступно для редактирования. Значение хранится в OpenSearch keystore.
Для интеграции модуля Inventory с PostgreSQL добавьте ключ inv.pg.pass в keystore на узлах с установленным плагином Inventory. Используйте один из способов, описанных для ключа inv.os.pass: с помощью запроса или вручную.
Вместо пароля специальной учетной записи OpenSearch укажите пароль пользователя PostgreSQL: в поле value при добавлении с помощью запроса или в ответ на приглашение команды при добавлении вручную.
Для настройки подключения заполните следующие поля формы:
Хост— 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
}
Настройки ручного запуска moduleInventory
При необходимости moduleInventory можно запустить вручную, например для проверки настроек или внепланового обновления базы активов. Запускайте только один экземпляр модуля на одном из узлов с установленным плагином Inventory.
Параметры запуска
-v— выводить версию-log— выводить журнал работы в консоль-with-index— использовать быстрый поиск кандидатов с частичным сходством-bulk-changes— отправлять изменения активов с помощью bulk-запросов
Перейдите в директорию с исполняемым файлом и выполните команду от имени пользователя opensearch:
cd $OPENSEARCH_HOME/utils/inventory
sudo -u opensearch ./moduleInventory -log -with-index -bulk-changes
Чтобы вывести версию, выполните команду:
sudo -u opensearch $OPENSEARCH_HOME/utils/inventory/moduleInventory -v