搜索栏命令
在 Splunk 搜索栏中直接使用。`| copilot` 用自然语言生成并执行 SPL,`| splexplain` 解释一条查询并给出优化改写。1.7.0 起。
两个自定义搜索命令随 App 安装(commands.conf),在 Splunk 的任何搜索栏、报表、仪表盘中可用。许可、角色、脱敏、审计与首页相同:命令直接调用后端模块,不经 HTTP。
| copilot
| copilot "最近 30 天登录失败按主机统计" index=rst_demo命令生成 SPL,经只读校验后以当前用户身份执行,结果行作为命令输出。生成的 SPL 附在作业的 info 消息中,搜索页顶部可展开查看。
| 参数 | 默认 | 说明 |
|---|---|---|
| 第一个位置参数 | 必填 | 自然语言问题,用引号包住 |
index= | 自动 | 指定索引。不指定时按白名单选择 |
run= | t | f 时不执行,只输出一行 spl、confidence、explanation,用于先查看再执行 |

| 行为 | 说明 |
|---|---|
| 显示 | 结果按 Events 视图显示(generating 命令没有 _time 列时的 Splunk 布局)。按时间线查看时在后面接 | table _time … |
| 时间窗 | 命令自行决定时间窗(写入生成 SPL 的 earliest=),不使用搜索页右上角的时间选择器 |
| 确定性 | 生成是非确定性的:同一句两次可能按 host 元数据或抽取的 dest 分组,两者都正确。需要固定时复制生成的 SPL 使用 |
| 耗时 | 1.9.0 实测 | copilot 一般 15 到 50 秒,含试跑 |
| splexplain
index=* | stats count by host
| splexplain或直接给一条:
| splexplain spl="index=* | stats count by host"输出一行:explanation(该 SPL 的作用)、risks(全索引扫描、没有时间窗、过滤靠后、通配前缀)、optimized_spl(改写)、why(改写理由)。改写规则只读:建议 tstats、提前过滤、去掉 index=*、fields 裁剪、加时间窗,不引入写命令。

作为流式命令处理上游结果时,每次最多处理 20 条,每条一次模型调用。首页的解释这条 SPL 按钮使用同一个核心。
存为 Report 或 Alert
首页结果卡的保存到 Splunk 菜单把生成的 SPL 存为 search app 中的 saved search:Report 不调度;Alert 带 cron 和触发条件,写法与检测规则部署一致。分析员档可存 Report;Alert 与规则部署一样需要 schedule_search。

权限与审计
| 项 | 说明 |
|---|---|
| 会话 | 命令以当前搜索用户的会话运行,用户不可见的索引查询不到 |
| 权限 | copilot_use 即可使用两个命令。生成的 SPL 经过与首页相同的只读闸门 |
| 审计 | 每次调用记录一条审计(via=search_command),在调用审计中按动作筛选 |
| Python | 命令声明 python.required = 3.9, 3.13。selfcontained 包在 3.13 下运行 agentic,其余走 requests 引擎 |