Настройки 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 | Порт для подключения к Redis | 6379 |
sme.redis.pass | Пароль для подключения к Redis | "" |
logging.file.path | Путь для хранения логов | logs |
server.ssl.enabled | При ожидании входящих подключений использовать SSL/TLS | true |
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 , want | need |
Общие настройки подключения к SME-RE
Таблица описания общих настроек подключения к SME-RE
:
Настройка | Описание | Значение по умолчанию | Тип настройки |
---|---|---|---|
sme.core.remote_script.user | Имя пользователя, от которого выполняется запрос к SME-RE | sme_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-RE | 18080 |
sme.core.remote_script.url | URL, на котором запущен 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-RE | 18080 |
sme-re_host | Хост, на котором запущен SME-RE | "localhost" |
Создание скрипта
В планировщике задач можно запустить любой скрипт.
При необходимости передачи в скрипт засекреченных данных, можно использовать функцию environment
переменных.
Эта функция позволяет записать уязвимые данные в keystore
, чтобы SME-RE
добавил их в переменные окружения при запуске скрипта.
Алгоритм настройки environment
переменных:
- Записать в
keystore
на всех серверах кластера необходимые переменные, которые нужно передать в скрипт в переменнуюjobscheduler.script.pass.<название переменной>
- Указать в настройках планировщика задач, какой задаче какие переменные из
keystore
можно использовать. Для этого нужно выполнить команду:
PUT _core/settings/job-scheduler
{
"script_environments": {
"<идентификатор задачи>": ["<название переменной>"]
}
}
Теперь планировщик укажет SME-RE
запустить скрипт с переменными в окружении.
- В скрипте прописать получение переменной из окружения.
Пример для Python:
import sys
from os import getenv
if __name__ == "__main__":
# получить переменную из окружения
try:
envParamData = getenv("<название переменной>")
except Exception as e:
envParamData = e