跳到主要内容

智能查询

用自然语言查询 Elasticsearch 中的日志与告警。网关把问题翻译为只读 DSL,试跑通过后执行。

智能查询把一句自然语言问题翻译为 Elasticsearch DSL 并执行,返回明细表或聚合表。它是登录后的首页,所有版本都可以使用。

查询的处理过程

从提问到结果

网关先判断问题涉及的索引、时间范围和统计维度,再让模型生成 DSL。生成的 DSL 经过只读校验,含写操作或脚本的查询直接拒绝。校验通过后,网关在目标索引上以 size=0 试跑一次。试跑报错时,错误信息返回给模型修正一轮,修正后仍然失败则提示换一种问法。

发送给模型的数据先按 系统设置 中的脱敏档位处理。云端模式下,结果中的 IP、账号等值显示为占位符,例如 10.30.x.x。

运行查询

步骤

  1. 在输入框中输入问题,例如「最近 24 小时登录失败最多的 10 个源 IP」。
  2. (可选)在输入框左侧选择 索引:自动,从白名单中指定一个索引。
  3. (可选)选择时间范围。默认为 全部时间。
  4. 发送问题。多行问题用 Shift+Enter 换行。

生成过程中,卡片依次显示理解问题、生成查询、执行三个阶段。使用思考模型时,推理内容折叠在 AI 在想 中。

结果卡

结果卡头部显示所用索引、命中数、耗时、token 用量和 可信度。可信度是模型对这条查询是否理解正确的自评。为 高 时,结果可以直接使用。为 中 时,展开生成的查询核对 DSL。为 低 时,通常需要换一种问法。

问题中写了时间(如「最近 1 小时」),同时又选择了时间范围时,查询取两者的交集。卡片上注明时间范围已同步、已覆盖问题中的时间条件,或在问题的时间条件之内。

没有想好问什么时,首页的起始问题分六类,每类四个问法,选择即发送。

起始问题

核对和修改生成的查询

步骤

  1. 在结果卡片下方,选择 查看生成的查询。
  2. 选择 编辑,修改 DSL。
  3. 选择 保存。网关用修改后的 DSL 替换原查询并执行。

修改过的查询在卡片上标记为 已手改。同一位置还可以 复制 DSL,或选择 在 Kibana 中打开(需要先在系统设置中配置 Kibana 地址)。

生成的查询

下钻聚合结果

聚合表中的每一行是一个分组。选择任意一行,网关按该分组的值拉取原始文档,显示为明细表。选择 返回统计 回到聚合表。

明细表的列集按索引记忆,下次查询同一索引时沿用。

保存常用查询

在生成的查询中选择 存为快捷查询 并命名。保存后的查询出现在新会话首页的 我的常用 中,选择后直接复用已保存的 DSL,不再调用模型。

处理结果

操作说明
解读这批结果模型总结当前结果,结果保存在 分析记录 中
送去分诊把命中的告警交给 批量分诊
导出 CSV把当前表格导出为 CSV。聚合表导出全部分组
反馈查询是对的 与 查询有问题 进入学习库。报告问题时可以粘贴正确的查询,同类问题下次按它生成

结果为空时

结果为空时,网关先判断是数据确实不存在,还是时间窗、条件或索引不匹配,并在卡片上给出下一步操作。

情况卡片上的处理
时间窗不匹配,例如问最近 1 小时,而索引最新的数据在十天前显示索引的数据时间范围,提供改查该范围的按钮。索引中有未来时间的日志(采集端把本地时间当作 UTC 写入)时一并指出
多个条件组合后为空逐个放宽条件试跑,列出去掉每个条件后的命中数。选择一条,按放宽后的条件重跑
当前索引中没有匹配在其他索引中试跑相同条件,列出有命中的索引和条数。选择索引名只查该索引;全部没有命中时,可选择 在全部日志里重新生成
问题涉及多个数据源,部分没有命中指出没有命中的数据源,提示字段值的写法可能不同

条件放宽后才有结果,常见原因是日志原文与问题用词不同,例如日志中写的是 Out of memory,问题中写的是 OOM。

时间窗提示

继续追问

在同一会话中继续提问时,模型带上前一轮的上下文。它沿用上一轮的索引(卡片上会标注),也能理解「第一名」「那个 IP」这类指代。换话题时,选择右上角的 新会话。

会话保存在网关侧的 .rst_copilot_conversations 索引中,7 天没有活动后过期,在其他浏览器登录后可以继续。选择左上角的会话名,打开 最近的会话 列表。失败、已中断和生成中的会话带有标记。

会话历史

首字超时

模型 45 秒内没有返回第一个字时,网关中止请求并提示重试。超时时长由 RST_LLM_FIRST_TOKEN_TIMEOUT_S 设置,0 表示不限。

这种情况多数由模型端拥塞引起。连续出现时,在 AI 配置 中降低该 provider 的推理强度,或添加另一个 provider。

本页内容