配置项参考
.env 里每一个配置项:必填的、安全相关的、ES 连接、模型与推理、告警接入、定时报告、基线巡检、审计与保留。界面上改过的以界面为准。
所有配置都在安装目录的 .env 里,docker compose 启动时读入。改了 .env 要 docker compose -f docker-compose.prod.yml up -d 重建网关容器才生效。
系统设置和 AI 配置页面上能改的项(ES 连接、白名单、脱敏、审计、provider)存在网关的状态卷里,优先级高于 .env。.env 里这些项只是第一次启动的种子。
| 变量 | 说明 |
|---|
ES_URL | 你的 Elasticsearch,https://es.corp.local:9200;多节点逗号分隔 |
ES_USER / ES_PASSWORD | ES 账号;集群没开安全认证就都留空 |
LLM_API_KEY / LLM_BASE_URL / LLM_MODEL | 第一个大模型 provider |
CADDY_SITE_ADDRESS | 分析师访问的域名,多个用空格分隔 |
RST_GATEWAY_SHARED_SECRET | Caddy → 网关之间的共享密钥,deploy.sh 自动生成 |
RST_ADMIN_TOKEN | 运维 API 令牌(X-RST-Admin-Token 头),自动生成 |
RST_ADMIN_PASSWORD_HASH | 首管理员口令哈希,自动生成。不设时网关拒绝所有非本机登录 |
GATEWAY_IMAGE_TAG | 运行的镜像 tag,deploy.sh 写入;升级时由 rst-update.sh 改 |
| 变量 | 默认 | 说明 |
|---|
RST_ADMIN_USERNAME | admin | 首管理员账号名 |
RST_SESSION_TTL_HOURS | 12 | 登录会话有效期 |
RST_USER_DB_URL | compose 已设 | 多用户账号表的 Postgres;空 = 单账号 |
RST_USER_DB_PASSWORD | 自动生成 | 自带 userdb 容器的密码 |
RST_ALLOW_DEFAULT_PASSWORD | 空 | 设 1 允许局域网用出厂口令登录(只用于隔离的试验环境) |
RST_CORS_ORIGINS | 空 | 跨域来源;网关自己服务前端,正常安装不需要 |
| 变量 | 默认 | 说明 |
|---|
RST_ES_VERIFY_CERTS | true | 校验 ES 服务端证书;自签证书设 false 或配 CA |
RST_ES_CA_CERT | 空 | 私有 CA 路径(容器内),如 /certs/es-ca.pem;CA 文件放安装目录 ./certs/ |
RST_ES_TIMEOUT_S | 30 | 单次 ES 请求超时 |
RST_ES_MAX_RETRIES | 2 | 超时 / 连接错误的透明重试 |
RST_INDEX_WHITELIST | 空 | 强烈建议设:可查询的索引模式,logs-*,filebeat-*,winlogbeat-* |
KIBANA_URL | 空 | Kibana 地址,只用于深链;空 = 关 |
KIBANA_PUBLIC_URL | 空 | 分析师浏览器能访问的 Kibana 地址(和网关看到的不同时才需要) |
RST_CONVERSATION_BACKEND | es | 多轮会话存 ES(.rst_copilot_conversations),重启不丢、多副本共享;memory = 只在内存 |
RST_CONVERSATION_TTL_DAYS | 7 | 会话不活动多久过期 |
RST_DSL_CACHE_TTL_S | 600 | 相同问题的 NL→DSL 结果缓存;0 = 关 |
RST_FIELD_DICT_CACHE_TTL_S | 300 | 字段字典扫描缓存 |
| 变量 | 默认 | 说明 |
|---|
LLM_TIMEOUT_S | 180 | 单次模型调用超时;调查 / 分诊常超时就调大 |
LLM_REASONING | auto | 这个 provider 的推理强度:auto / off / low / high,见 AI 配置 |
RST_NL2DSL_REASONING | low | 智能查询 NL→DSL 这一步的推理强度:none / low / high / native |
RST_LLM_FIRST_TOKEN_TIMEOUT_S | 45 | 生成查询时首字硬上限;0 = 不限 |
RST_EMBED_MODEL / RST_EMBED_BASE_URL / RST_EMBED_DIM | 空 | 知识库向量模型;建议在 AI 配置页配 |
RST_EMBED_COOLDOWN_S | 60 | embedding 端点失败后冷却多久再试 |
RST_MASKING_MODE | 按许可 | 强制脱敏档位 cloud / private / airgapped |
RST_TIMEZONE | UTC | 模型理解「今天 / 昨天」的时区,国内部署必设 +08:00 |
RST_TRIAL_DAILY_LIMIT | 200 | 未激活时每日 LLM 调用额度 |
RST_RATELIMIT_GENERATE / _EXECUTE / _KIBANA_LINK | 30 / 30 / 120 | 每 IP 每分钟限速;大团队共用一个出口 IP 时调大 |
| 变量 | 默认 | 说明 |
|---|
RST_ALERT_INGEST_INDEX | .alerts-security.alerts-default | 轮询拉取的告警索引(读别名);空 = 关 |
RST_ALERT_INGEST_INTERVAL_SECONDS | 10 | 轮询间隔 |
RST_ALERT_WEBHOOK_SECRET | 空 | Kibana Webhook 推送的共享密钥(X-RST-Alert-Token);设了才启用 |
RST_ALERT_INGEST_CONCURRENCY / RST_ALERT_INGEST_BUDGET_S | 4 / 20 | 一次推送最多 200 条,每条一次摘要调用;这两个限制并发和总预算 |
| 变量 | 默认 | 说明 |
|---|
RST_REPORT_SCHEDULE | 空 | daily,weekly,monthly;空 = 不自动生成 |
RST_REPORT_TZ | 跟 RST_TIMEZONE | 报告周期边界的时区 |
RST_REPORT_WEBHOOK_URL / _HEADERS | 空 | 每份报告 POST 到这里 |
RST_REPORT_PERSIST / RST_REPORT_INDEX | 1 / .rst_copilot_reports | 归档到 ES |
RST_REPORT_CATCHUP_MAX | 7 | 停机期间最多补跑几个周期 |
RST_BASELINE_INTERVAL_SECONDS | 空 | 基线巡检轮询间隔,≥ 300 生效;空 = 只手动 |
RST_BASELINE_MAX_AGE_HOURS | 48 | osquery 数据超过这个年龄判 stale |
RST_BASELINE_HOST_ROSTER_DAYS | 30 | 多久没上报的主机不再枚举 |
RST_BASELINE_OSQUERY_INDEX | logs-osquery_manager.result-* | 读:客户的 osquery 结果索引 |
RST_BASELINE_RESULTS_INDEX / _RULES_INDEX / _RUNS_INDEX | baseline-results / -rules / -runs | 写:网关自己的三个索引 |
| 变量 | 默认 | 说明 |
|---|
RST_AUDIT_ENABLED | true | 审计写入 .rst_copilot_audit |
RST_AUDIT_WEBHOOK_ALLOWLIST | 空 | 审计转发 webhook 允许的目标主机;空 = 只拒绝回环 / 链路本地地址 |
RST_ILM_BOOTSTRAP | 0 | 1 = 启动时建 ILM 策略 + 索引模板;开了审计就该开 |
RST_AUDIT_RETENTION_DAYS | 180 | 审计索引保留天数(ILM 打开时生效) |
RST_METRICS_TOKEN | 空 | /metrics 抓取令牌 |
| 变量 | 默认 | 说明 |
|---|
RST_GATEWAY_CPUS / RST_GATEWAY_MEM | 2 / 2g | 网关容器上限 |
SSO 相关变量见 企业 SSO。