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

Конфигурация ноды

Параметры конфигурации ноды задаются в файле /app/smrtc/config/smrtc.yml. Значения заполняются инсталлятором на шагах установки (см. Установка) и читаются процессом smrtc один раз при старте.

Обратите внимание!

Изменение параметров конфигурации ноды требует перезапуска сервиса smrtc и выполняется на каждой ноде отдельно. В интерфейсе Smart Monitor эти параметры не отображаются и не редактируются.

Каждый параметр можно задать двумя способами: ключом в smrtc.yml или переменной окружения — оба варианта равноправны.

Инсталлятор записывает в smrtc.yml только обязательный минимум: роли, порт, TLS, keystore, имя и адреса кластера, корневой каталог данных и журналирование. Остальные параметры действуют со встроенными значениями по умолчанию, а в шаблоне присутствуют закомментированными.

Форматы значений

Часть параметров записывается не числом, а строкой с единицей измерения:

ТипФорматПримеры
Размер<целое><единица>, двоичные множители: b, kb, mb, gb, tb64mb, 256mb, 1gb
Длительность<целое><единица>: ms, s, m, h, d250ms, 2s, 150ms
к сведению

Дробные значения не поддерживаются: 1.5s нужно записать как 1500ms. Размер 0 также не принимается — у него нет единицы измерения, а для автоопределения существует отдельный литерал auto.

Сеть и порты

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
NODE_PORTnode.portПубличный порт: прием событий, API управления, /health9919
TRANSPORT_PORTnode.transport_portПорт межнодового обмена (gRPC: raft и весь control plane между нодами)9910
CLUSTER_ADVERTISE_URLnode.advertise_urlАдрес, по которому ноду находят другие ноды и Smart Monitor; пусто — определяется по таблице маршрутизациипусто

Кластер

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
CLUSTER_NAMEcluster.nameИмя кластера; обязано совпадать на всех нодах и с полем OU в сертификате нодыsmrtc_cluster
NODE_ROLESroles (список на верхнем уровне, без секции)Роли ноды; master — участник кворума метаданных, пусто — реплика без голосапусто
CLUSTER_NODEScluster.nodes (список)Адреса нод для присоединения к кластеру в формате host:port; пусто — нода образует кластер самостоятельнопусто

TLS

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
TLS_ENABLEDtls.enabledВключение TLS и mTLS на публичном и межнодовом слушателяхfalse
TLS_CERT_FILEtls.cert_fileСертификат нодыпусто
TLS_KEY_FILEtls.key_fileЗакрытый ключ нодыпусто
TLS_CA_CERT_FILEtls.ca_cert_fileСертификат удостоверяющего центра для проверки сертификатов других нодпусто
Обратите внимание!

При tls.enabled: true все три пути — tls.cert_file, tls.key_file и tls.ca_cert_file — обязательны. Если хотя бы один не задан, нода не стартует и сообщает об этом в журнале.

Аутентификация и keystore

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
DEFAULT_ADMIN_USERadmin.userИмя локального администратора; пароль хранится в keystoreadmin
KEYSTORE_FILEkeystore.fileФайл зашифрованных секретов (пароль admin и пароль подключения к Smart Monitor)/app/smrtc/config/keystore
KEYSTORE_PASSPHRASEkeystore.passphraseПарольная фраза keystoreпусто

Каталоги данных

DATA_DIR задает корень хранилища: остальные пять каталогов по умолчанию наследуются от него.

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
DATA_DIRdata.dirКорневой каталог данных ноды/app/smrtc/data
METADATA_DATA_DIRdata.metadata_dirКаталог метаданных<data.dir>/metadata
DATA_CLUSTER_DIRdata.cluster_dirКаталог идентификатора ноды и сохраненных подавлений правил<data.dir>/cluster
TELEMETRY_DATA_DIRdata.telemetry_dirКаталог статистики обработанных источников<data.dir>/telemetry
FIRES_DATA_DIRdata.fires_dirКаталог журнала сработок<data.dir>/fires
ACTIVE_LISTS_DATA_DIRdata.active_lists_dirКаталог активных списков<data.dir>/active-lists
CONTENT_DIRcontent.dirКаталог контент-паков, импортируемых при старте на первой ноде кластера; пусто — импорт не выполняетсяпусто

Движок

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
WORKER_COUNTengine.worker_countРазмер пула воркеров и число внутренних шардов корреляции; 0 — по числу ядер0
STATE_MAX_GROUPSengine.state_max_groupsПредел числа состояний корреляции (правило, группа) на ноду, распределяется поровну между шардами; 0 — без ограничения8000000
ACTIVE_LISTS_BLOCK_CACHEengine.active_lists_block_cacheКеш чтения активных списков64mb
ACTIVE_LISTS_AUTOFILL_WORKERSengine.active_lists_autofill_workersЧисло потоков отложенной записи при автозаполнении списков4
ACTIVE_LISTS_AUTOFILL_CHUNKengine.active_lists_autofill_chunkЧисло изменений, применяемых за один проход; допустимо от 1 до 1000512
ACTIVE_LISTS_AUTOFILL_FLUSH_INTERVALengine.active_lists_autofill_flush_intervalПериод сброса накопленных записей автозаполнения150ms
ACTIVE_LISTS_AUTOFILL_BUFFER_MAXengine.active_lists_autofill_buffer_maxПредел буфера автозаполнения, после которого новые записи отбрасываются; 0 — без ограничения, иначе значение не меньше 1000200000

Прием событий

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
INGEST_DEDUPE_PEAK_EPSingest.dedupe_peak_epsРасчетная пиковая скорость пересылаемых между нодами событий; задает нижнюю границу таблицы дубликатов100000

Ограничитель памяти

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
INGEST_MEMORY_CB_ENABLEDmemory_circuit_breaker.enabledОграничитель памяти на приеме событийtrue
INGEST_MEMORY_CB_LIMITmemory_circuit_breaker.limitБюджет памяти; auto — определяется по GOMEMLIMIT, затем по лимиту cgroup; иначе размер не меньше 256mbauto
INGEST_MEMORY_CB_SOFT_PCTmemory_circuit_breaker.soft_pctПорог мягкого ограничения, % от лимита85
INGEST_MEMORY_CB_HARD_PCTmemory_circuit_breaker.hard_pctПорог, при котором прием событий отклоняется, % от лимита92
INGEST_MEMORY_CB_RELEASE_PCTmemory_circuit_breaker.release_pctПорог снятия ограничения, % от лимита75
INGEST_MEMORY_CB_SAMPLEmemory_circuit_breaker.sampleПериод измерения памяти; не меньше 50ms250ms
INGEST_MEMORY_CB_FORCE_GCmemory_circuit_breaker.force_gcПринудительная сборка мусора при срабатывании ограничителяtrue
INGEST_MEMORY_CB_GC_COOLDOWNmemory_circuit_breaker.gc_cooldownМинимальный интервал между принудительными сборками мусора; не меньше 100ms2s
Обратите внимание!

Три порога должны идти строго по возрастанию: release_pct < soft_pct < hard_pct. Нарушение порядка — ошибка запуска, а не повод для автоматической правки значений: нода не запускается и сообщает об этом в журнале.

Журналирование

ПараметрПуть в smrtc.ymlНазначениеЗначение по умолчанию
LOG_FILElog.fileФайл журнала; пусто — вывод в стандартный поток ошибок, который под systemd попадает в journaldпусто
LOG_MAX_SIZElog.max_sizeРазмер файла журнала до ротации; должен быть целым числом100mb
LOG_MAX_BACKUPSlog.max_backupsЧисло хранимых архивов журнала; 0 — хранить все14
LOG_COMPRESSlog.compressСжатие архивов журналаtrue