升级与备份
各类数据的存储位置、升级时保留的内容、备份与迁移方法、降级方式。
本页覆盖 App 的升级、备份、迁移与降级。
数据位置
| 内容 | 位置 | 升级后 |
|---|---|---|
| LLM、embeddings、通道、工单、威胁情报的密钥 | storage/passwords(Splunk 加密) | 保留 |
| 本地配置 | local/copilot.conf、local/app.conf | 保留。安装器不覆盖 local/ |
| 许可、心跳会话、功能密钥 | storage/passwords 与 local/app.conf [license] | 保留 |
| 会话、知识库、解法库、分诊结果、资产与身份、报告归档、基线规则与结果、通知配置与投递记录、用户偏好与处置状态、MCP 令牌哈希、工单记录 | KV store copilot_* 集合 | 保留,集群内复制 |
| 审计 | index=_internal sourcetype=copilot:audit | 按 _internal 保留期 |
| 部署的检测规则、存为 Report 的搜索、数据接入写入的配置 | search app 的 savedsearches.conf、目标 app 的 local/props.conf | 与 App 无关 |
| 密封的检测引擎 | bin/detection_core.sealed | 随包更新 |
升级
在线更新
管理员打开系统设置,「版本」卡自动检查更新:App 从 GitHub Release 读取签名的更新清单,有新版时按钮显示「更新到 X」。点击后:
- 下载与当前安装包同类型(selfcontained 或 fallback)的新版
.spl。 - 按签名清单校验大小与 sha256,签名或校验不通过则不安装。
- 把当前版本备份到
$SPLUNK_HOME/var/run/rst_splunk_ai_copilot/update/,然后安装新版。 - 点「立即重启 Splunk」完成升级。
回退时在 Manage Apps 上传备份的 .spl。操作者需要 install_apps / edit_local_apps 与 restart_splunkd 权限,内置 admin 角色具备。
应用内更新由 copilot.conf 的 [update] enabled 控制(2.0.16 起)。GitHub 上的 fallback 包和 selfcontained 包默认开启,管理员可以在 local/copilot.conf 写 [update] enabled = 0 关闭。splunkbase 包默认关闭,并设置 check_for_updates = 1:新版本显示在 Splunk 的「应用 > 管理应用」中,从那里更新,「版本」卡上原来的更新入口换成一条提示。管理员可以在 local/copilot.conf 写 [update] enabled = 1 重新打开应用内更新,之后的应用内更新安装 GitHub 上的 fallback 包,即离开 Splunkbase 渠道。
搜索头集群成员不能从文件安装 App,「版本」卡会给出提示,集群在 deployer 上更新。暂不支持 Splunk Cloud,原因见安装。
隔离网络中 Splunk 访问不到 GitHub 时,在 local/copilot.conf 中把 release_base_url 指向内网镜像:
[update]
# 默认 https://github.com/Reallysec/RST-AI-Copilot-for-Splunk/releases
release_base_url = https://mirror.example.internal/rst-splunk-ai-copilot/releases镜像需保持 GitHub Releases 的路径结构:清单在 <release_base_url>/latest/download/release-manifest.token,安装包在 <release_base_url>/download/v<版本>/ 下。是否安装只取决于清单签名,镜像无法改变安装的内容。
手动升级
安装新版 .spl 覆盖,重启。default/ 被替换,local/ 和 KV store 不变。升级后的检查:
- 在系统设置的 AI 配置查看引擎状态。selfcontained 包的
bin/lib/随包更新,旧版手动 vendor 的依赖被替换。 - 在产品激活页确认许可仍有效。在线许可在下次心跳自动补齐新版的功能密钥;离线许可的功能集固定在文件中,新版新增付费点时需要重新签发
.lic。 - 新增的 KV 集合由
default/collections.conf声明,首次访问自动创建。collections.conf中字段类型的修正(如 1.6.0 把时间戳从number改为string)随包生效,旧文档保持原样。 - 浏览器强制刷新一次。Splunk Web 缓存静态资源,App build 号变化后才更新。
升级前不撤销激活。撤销把在线许可的名额归还服务器并清除本机的功能密钥,升级本身不需要该步骤。
从 2.0.2 及更早版本升级到 2.0.3
2.0.3 改为按真实登录用户区分数据,并收紧了出厂默认值。升级后会看到以下变化:
- 旧的对话与收藏看不到。之前所有用户共用一份(记在
nobody名下),2.0.3 起每人一份,旧数据不迁移。 - 从没在界面保存过 LLM 设置、一直用出厂默认地址的安装,升级后调用 AI 会提示「AI 模型尚未配置」。到 AI 配置页填写模型地址、模型名和 API key 后恢复。
- Splunk Enterprise 上点「立即重启 Splunk」后需要重新登录。
从 2.0.3 升级到 2.0.4
- 离线宽限从 14 天改为 3 天,
copilot.conf中的offline_grace_days只能调短。许可服务器的回包必须带签名回执。 - MCP 的索引类工具需要先在 MCP 接入页配置低权限搜索账号,未配置时停用。见 MCP 接入。
- SPL 只读检查更严:带
map、宏、dbx*、fit的检测规则部署和预览会被拒绝。升级前检查已有检测规则是否用到这些写法。 - 告警通知与 ServiceNow / Jira 工单按
[masking] mode脱敏;脱敏失败时不发送。
从 2.0.4 升级到 2.0.5
- 知识库内容和发给 embeddings 端点的文本按
[masking] mode脱敏。升级后,已有向量在后台按当前脱敏模式重新生成,每轮最多 64 条(copilot.conf [embeddings] reindex_batch,设为 0 关闭自动重建)。重建期间会调用 embeddings 端点,检索效果在重建完成前略有下降。 - selfcontained 包只支持 Linux x86_64。装在其他平台上时许可验证会失败,付费功能不可用;Windows、ARM(aarch64)主机或从 Splunkbase 安装请使用 fallback 包。
从 2.0.6 升级到 2.0.7
- App 列表中的名称改为 RST AI Copilot for Splunk。App ID
rst_splunk_ai_copilot不变,配置和数据不受影响。 - 升级后后台会重新扫描一次知识库,为没有向量的内容补生成向量,每轮最多
[embeddings] reindex_batch条。扫描期间会调用 embeddings 端点。 - embeddings 调用计入
[usage]月度预算。价格表中没有单独设置 embeddings 模型的价格时,按默认价格计算。 - 新增
copilot.conf [embeddings] max_input_chars(默认 8000),超出部分在发送前截断。本地小模型的输入上限较低时可以调小。
从 2.0.7 升级到 2.0.8
- 首次运行时,会给 2.0.7 已有的知识库向量统一补上
vec_sig标记,一次批量写入 KV。不调用 embeddings 端点,也不重新生成向量;以后更换 embeddings 模型或端点时,才会自动重新索引。 - embeddings 调用不再按默认的大模型 token 价格计费:
token_prices中没有为 embeddings 模型单独设置价格时,用量显示为「未定价」。 - ES 8 的自定义状态:ES 只接受按角色启用过的状态流转。请在
reviewstatuses.conf中为相应角色(例如ess_analyst、ess_admin)启用,格式为[transitioner:<角色>]下的transition_reviewstatus-<原状态>_to_<新状态> = enabled。未启用时 ES 会拒绝更新,App 会直接显示 ES 给出的原因(「…the transition is not allowed」)。 - 工作流操作的名称默认改为英文「Investigate with Copilot」,并附带中文语言包「用 Copilot 调查」。ES 8 分析师队列「More」菜单中的工作流操作不会本地化,这是 Splunk 的限制。
- 本版另外的变化:
- ES 8 下调查和分级结果可以写回 ES。
- ES Incident Review 写回、审计转发(syslog / webhook)结束 Beta;大模型故障切换、工单和 Slack / Teams 仍为 Beta。
- 审计事件新增
provider和served_model(故障切换后实际回答的模型),用量费用按served_model计价。 - 许可证过期或被吊销后,App 回退为社区版(EULA 1.2)。
从 2.0.9 升级到 2.0.10
不需要额外步骤。本版的变化:
- 产品激活页可以直接上传或粘贴许可服务器签发的
.lic文件。上传后显示许可 id 与到期日,不在屏幕上显示令牌;其他产品的.lic或格式不对的文件给出具体错误。 - ES 告警列表显示每条 notable 当前的 ES 状态(含自定义状态)与 Incident Review 紧急度,详情抽屉显示状态、负责人和处置结论。批量分诊按 ES 当前紧急度排序。
- ES 写回提供 ES 中实际配置的状态,包括自定义状态;读取失败时回退为 ES 默认的五种状态。
- AI 配置页可以查看和修改
[embeddings] max_input_chars。 | copilot与| splexplain在lang=参数、Copilot 界面语言、Splunk 用户语言或copilot.conf的response_language为英文时,用英文报错。/etc/machine-id不是 UTF-8 编码时,计算主机指纹不再崩溃。
从 2.0.10 升级到 2.0.11
单搜索头不受许可变化影响。已按旧版指纹绑定的主机继续有效,不需要重新激活,升级也不占用新的节点名额。在线许可的主机会在下一次会话续期时自动改绑到新指纹,不需要任何操作;续期在会话剩余不足 7 天时发生,所以最晚约 23 天后完成,期间所有功能照常可用。
搜索头集群的许可改为按成员计算,升级前先确认许可覆盖全部成员:
- 在线许可:2.0.11 之前整个集群算一个节点,现在每个成员各算一个节点。成员数超过许可的
max_nodes时,多出的成员激活被拒,离线宽限用完后锁定,可能在升级后立即发生。2.0.11 的界面提示离线宽限已用完,App 日志记录license activation limit reached;2.0.12 起产品激活页直接提示许可节点已用满。升级前核对max_nodes与成员数,或改用不限节点的企业版。 - 离线许可:每个成员一份,按各自的主机指纹签发。2.0.10 及更早版本导入的离线许可只在签发它的那个成员上有效,升级后在其余成员上各自导入。
- 升级后每个成员在第一次心跳(约 5 分钟)时作为独立节点重新激活,期间密封功能可能短暂锁定。
集群许可的配置方式见产品激活。
本版另外的变化:
- 运营报表支持英文。手动生成的报表跟随界面语言,定时报表按
copilot.conf [reports] language(zh或en,默认zh)。2.0.11 起归档的报表按查看者的界面语言打开,更早的归档不变。修正了中文报表中重复的章节编号。 - 主机指纹改用新的计算方式,与许可服务器 SDK 一致。MAC 只在没有 machine-id 时计入指纹。没有 machine-id 也读不到 MAC 的容器改用 App 目录中保存的随机主机标识,不再激活失败。容器部署见在 Docker 中运行。
- 离线激活的许可不再连接许可服务(此前每天下载一次吊销列表)。
- 许可检查不再在几乎每次请求时改写已保存的状态。
- EULA 1.3:与 RST 其他产品统一公司层面的条款(责任上限、以中文版为准、订阅期内的质量保证、付费版的知识产权赔偿、审计、出口管制、终止后 30 天数据导出、隐私与跨境条款);数据披露一节与 App 实际发送的内容一致。
- App、通知和报表中的产品名统一为 RST AI Copilot for Splunk。
从 2.0.11 升级到 2.0.12
- 升级后,每个用户第一次打开 App 时需要同意 EULA 1.4:勾选「我已阅读并同意 EULA v1.4」,选择 同意并继续。同意之前,App 的 REST 接口拒绝该用户的请求。社区版同样需要同意,以后 EULA 版本变更时再次同意。
| copilot、| splexplain搜索命令、MCP 服务和后台任务不受影响。 - 直接调用 REST 的脚本或集成账号,先用该账号登录 Splunk Web,打开一次 App 并同意。
- 从 2.0.12 起,凡是仍绑定 2.0.11 之前指纹的在线主机(2.0.10 及更早激活的,包括已升到 2.0.11 但还没续期的),升级后约 5 分钟内自动换到新指纹,不多占节点。离线许可不受影响。
本版另外的变化:
- 许可节点已用满时(例如搜索头集群中多出的成员),产品激活页在被拒后立即提示「许可节点已用满」,宽限期结束后付费功能停用。此前误报为许可服务器不可达。
- 许可错误(例如时钟回拨)按界面语言显示真实原因,页面不再只显示笼统的请求失败。
- 定时报告推送修复:每期向该周期绑定的通知目标推送一次,失败自动重试。此前不会发送。需要运营报表授权。
- 系统设置 > 报告 新增 定时报告语言,定时报告及其推送卡片按该语言生成。
- 切换界面语言后,已打开的报告按新语言重新显示;自定义时间范围的报告提示重新生成。
- 搜索命令的英文错误信息使用英文功能名。
- EULA 1.4:增加 App 内点击同意的接受方式;第 13 条写明,付费许可在订阅期内确认新版本不改变该期适用的版本;补充主机指纹(含本地生成的主机标识)的说明;写明许可服务托管在香港特别行政区。
从 2.0.12 升级到 2.0.13
- 通用 webhook 的报告推送在所有语言下使用相同的字段名,只翻译卡片文字。2.0.12 在英文模式下使用英文字段名(如
Period、AI calls),2.0.13 恢复固定字段名。按英文字段名解析推送的集成需要改回。
本版另外的变化:
- Splunk 停机期间错过的定时报告,恢复后补推一次。2.0.13 之前保存的推送设置,在升级后第一次推送之后才开始补推,升级不会产生重复报告。
- 保存无法识别的定时报告时区时报错,不再静默按 UTC 执行(Splunk 的 Python 带时区数据库时)。
- 产品激活页在到期前 7 天显示「即将到期」,此前为 30 天。
从 2.0.13 及更早版本升级到 2.0.14
安装包改名为 RST-AI-Copilot-for-Splunk-<版本>-{selfcontained,fallback}.spl,应用内在线更新会失败一次(下载返回 404)。手动升级:
- 从 GitHub Reallysec/RST-AI-Copilot-for-Splunk 的 Releases 页面下载 2.0.14,与当前安装包同类型。
- 在 Splunk Web 打开「应用」>「管理应用」>「从文件安装应用」,选择该文件,勾选「升级应用」。
- 安装后重启 Splunk。
App id rst_splunk_ai_copilot 不变,许可、数据和设置保留。之后的版本恢复在线更新。
本版另外的变化:
- 大模型故障切换正式发布,不再是 Beta。
- 工单支持 Jira Data Center,使用个人访问令牌(PAT),主机须列入
copilot.conf [tickets] allowed_hosts。Jira Cloud 工单保留粗体和链接;ServiceNow 事件不再设置非默认的分类和联系方式。工单仍为 Beta。 - 许可的可信时间只通过 HTTPS 获取,不再使用 NTP(UDP)。
- 产品激活页:本机无法运行的功能显示为锁定并提示原因,读不到硬件指纹的主机同样如此;旧版许可显示「全部功能」。
- 定时报告推送:启用排期后才绑定的推送目标不再触发补推;推送整点落在本地次日时给出提示;手动编辑过的排期不再导致停推。
- EULA 对话框的语言切换作用于整个对话框。
- 在线更新下载失败时显示 HTTP 状态或「更新源不可达」,不再显示内部错误。
从 2.0.14 升级到 2.0.15
无需额外操作,可在线更新。splunkd 重启后、KV store 尚未就绪时,已同意 EULA 的用户不再被要求重新同意;此时保存推送和通知设置(目标、SMTP、排期)不会再用默认值覆盖已存配置,而是提示「KV Store 暂不可用」,稍后重试即可。
从 2.0.15 升级到 2.0.16
无需额外操作。本版变化:
- 新增 splunkbase 包,见在线更新。
- Jira Data Center 工单正文:告警数据中的 wiki 标记(删除线、下划线、上下标、图片、标题、提前结束代码块的行)按纯文本显示,不再被渲染;日期和主机名中不再出现多余的反斜杠。
- 产品激活页:非管理员第一次打开时显示「仅管理员可见」提示,不再报后端错误;离线许可绑定在其他主机时,页面明确说明,并指向「系统设置 > 产品激活」。
备份
| 对象 | 方法 |
|---|---|
| KV store | Splunk 的 splunk backup kvstore,或通过 REST storage/collections/data/<集合> 导出。集群内已复制 |
| 配置与密钥 | etc/apps/rst_splunk_ai_copilot/local/ 整个目录加 etc/passwd。storage/passwords 的密文与实例的 splunk.secret 绑定,迁移到其他实例时需一并备份 splunk.secret |
| 许可指纹 | etc/instance.cfg 中的 server GUID 加主机 /etc/machine-id。恢复到新机器时两者不一致,许可需要重新激活(在线许可先在旧机器撤销,或联系销售释放名额) |
迁移到新搜索头
- 在新机器安装同版本 App。
- 复制
local/、etc/passwd、splunk.secret,或在新机器的界面中重新填写密钥。 - 导入 KV 集合。
- 在旧机器撤销激活,在新机器重新激活。
降级
安装旧版 .spl 覆盖。新版新增的 KV 集合与配置键被旧版忽略,不影响运行;新版写入的文档中旧版不识别的字段同样被忽略。1.6.0 之前的版本使用另一套界面路由,书签失效。