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

Настройки SME-RE

Параметры запуска SME-RE

Параметры запуска SME-RE указываются в конфигурационном файле application.properties, который находится в одной директории с утилитой SME-RE.

Таблица описания параметров запуска:

ПараметрОписаниеЗначение по умолчанию
server.portПорт на котором SME-RE будет принимать входящие соединения18080
spring.servlet.multipart.max-request-sizeМаксимальный размер файлов для загрузки в байтах100000000
server.tomcat.max-http-form-post-sizeМаксимальный размер для запросов multipart/form-data в байтах104857600
sme.FileRotatePeriodВремя ротации файлов с данными запроса в секундах10000
sme.baseDataДиректория хранения файлов с данными запроса./data
sme.directoryPollerIntervalИнтервал проверки директории хранения файлов с данными запроса в секундах50
sme.scriptConfigPathПуть до конфигурационного файла scripts.yaml./scripts.yaml
sme.LogStringSizeРазмер строки логов300
sme.RapidDeleteУдалять ли файлы с данными запросовTrue
sme.redis.urlАдрес для подключения к Redis"127.0.0.1"
sme.redis.portПорт для подключения к Redis6379
sme.redis.passПароль для подключения к Redis""
logging.file.pathПуть для хранения логовlogs
server.ssl.enabledПри ожидании входящих подключений использовать SSL/TLStrue
server.ssl.certificateПуть до открытого ключа (сертификата) текущего сервера SME-RE в формате PKCS8/app/opensearch/config/node-cert.pem
server.ssl.certificate-private-keyПуть до закрытого ключа текущего сервера SME-RE в формате PKCS8/app/opensearch/config/node-key.pem
server.ssl.trust-certificateПуть до цепочки удостоверяющих центров (CA) в формате PKCS8/app/opensearch/config/ca-cert.pem
server.ssl.client-authРежим валидации сертификатов, может быть need, none, wantneed

Общие настройки подключения к SME-RE

Таблица описания общих настроек подключения к SME-RE:

НастройкаОписаниеЗначение по умолчаниюТип настройки
sme.core.remote_script.userИмя пользователя, от которого выполняется запрос к SME-REsme_re_userКластерная настройка
sme.core.remote_script.passwordПароль пользователя, от которого выполняется запрос к SME-REНастройка keystore
sme.core.remote_script.enable_sslФлаг, указывающий, использовать ли SSL для подключения к SME-RE из команды script в поиске и в ScriptAction в планировщике задачtrueКластерная настройка

Информация для запуска скрипта в поиске

Настройки подключения к SME-RE из команды script в поиске

Таблица описания кластерных настроек подключения к SME-RE из команды script:

НастройкаОписаниеЗначение по умолчанию
sme.core.remote_script.base_pathПуть до папки, куда будут загружаться скрипты"/app/opensearch/utils/scripts/"
sme.core.remote_script.portПорт, на котором запущен SME-RE18080
sme.core.remote_script.urlURL, на котором запущен SME-RE"https://127.0.0.1"
sme.core.remote_script.base_interpreter_nameНазвание интерпретатора по умолчанию, чтобы использовать команду script без параметра intr"bash"
sme.core.remote_script.interpretersСписок доступных интерпретаторов, является массивом строк. Формат строки: "название интерпретатора"::"путь до интерпретатора".["python3::/app/opensearch/utils/python/bin/python3","bash::bash"]

Создание скрипта

Для использовании скрипта в поиске необходимо положить его в папку, указанной в настройке sme.core.remote_script.base_path на всех серверах кластера, проверить, что файл исполняемый и права доступа у него opensearch:opensearch.

Чтобы вернуть из скрипта данные для дальнейшей обработки в поиске, нужно вывести результат в формате JSON.

Пример для Python:

print(scriptResultJson)

Если перед командой script выполняются другие команды, их результат сохраняется во временный файл в папке, указанной в sme.baseData. Название этого файла будет передано в скрипт аргументом командной строки.

Пример для Python:

import sys

if __name__ == "__main__":
# открыть файл с данными из запроса
inputDataFile = open(sys.argv[1], "r")

# прочитать файл с данными из запроса
inputData = f.read()

Информация для запуска скрипта в планировщике задач

Настройки подключения к SME-RE из ScriptAction в планировщике задач

Получить настройки можно по следующему пути:

GET _core/settings/job-scheduler

Таблица описания настроек подключения к SME-RE из ScriptAction:

НастройкаОписаниеЗначение по умолчанию
sme-re_portПорт, на котором запущен SME-RE18080
sme-re_hostХост, на котором запущен SME-RE"localhost"

Создание скрипта

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

При необходимости передачи в скрипт засекреченных данных, можно использовать функцию environment переменных. Эта функция позволяет записать уязвимые данные в keystore, чтобы SME-RE добавил их в переменные окружения при запуске скрипта.

Алгоритм настройки environment переменных:

  1. Записать в keystore на всех серверах кластера необходимые переменные, которые нужно передать в скрипт в переменную jobscheduler.script.pass.<название переменной>
  2. Указать в настройках планировщика задач, какой задаче какие переменные из keystore можно использовать. Для этого нужно выполнить команду:
PUT _core/settings/job-scheduler
{
"script_environments": {
"<идентификатор задачи>": ["<название переменной>"]
}
}

Теперь планировщик укажет SME-RE запустить скрипт с переменными в окружении.

  1. В скрипте прописать получение переменной из окружения.

Пример для Python:

import sys
from os import getenv

if __name__ == "__main__":
# получить переменную из окружения
try:
envParamData = getenv("<название переменной>")
except Exception as e:
envParamData = e