用于可观测性和搜索的 Elastic AI 助手
Elastic Stack Serverless
AI 助手是一个与大型语言模型 (LLM) 的集成,可帮助您理解、分析和与您的 Elastic 数据进行交互。
您可以通过两种方式与 AI 助手互动
- 上下文洞察:嵌入在整个 Elastic UI 中的助手,可以解释错误和消息,并提供建议的修复步骤。
- 聊天界面:一种对话体验,您可以在其中提问并接收有关您数据的答案。助手使用函数调用来根据您的需求请求、分析和可视化信息。
AI 助手通过我们支持的 Elastic Stack 连接器与您的大型语言模型 (LLM) 提供商集成
用于可观测性和搜索的 Elastic AI 助手可帮助您
- 解码错误消息:解释堆栈跟踪和错误日志以查明根本原因
- 识别性能瓶颈:在 Elasticsearch 中查找资源密集型操作和慢查询
- 生成报告:使用关键指标创建告警摘要和事件时间表
- 构建和执行查询:从自然语言构建 Elasticsearch 查询,将 Query DSL 转换为 ES|QL 语法,并直接从聊天界面执行查询
- 可视化数据:从您的 Elasticsearch 数据创建时间序列图和分布图
AI 助手需要以下条件
一个 Elastic 部署
对于可观测性:Elastic Stack 版本 8.9 或更高版本,或者一个可观测性 Serverless 项目。
对于搜索:Elastic Stack 版本 8.16.0 或更高版本,或者 Serverless Elasticsearch 项目。
- 要在自托管的 Elastic Stack 上运行用于可观测性和搜索的 Elastic AI 助手,您需要一个适当的许可证。
在第三方生成式 AI 提供商处拥有一个帐户,最好支持函数调用。如果您的 AI 提供商不支持函数调用,您可以在Stack Management下配置 AI 助手设置以模拟函数调用,但这可能会影响性能。
第三方生成式 AI 提供商提供的免费层可能不足以使 AI 助手正常运行。在大多数情况下,需要订阅其中一个受支持提供商的付费订阅。
请参阅您的提供商的文档,以了解受支持和默认模型。
知识库需要一个 4 GB 的机器学习节点。
- 在 Elastic Cloud 或 Elastic Cloud Enterprise 中,如果您启用了机器学习自动伸缩,则在使用知识库和 AI 助手时将启动机器学习节点。 因此,使用这些功能将产生额外费用。
如果使用搜索连接器将外部数据填充到知识库中,则需要一个自部署的连接器服务。
了解在使用 AI 助手时如何处理您的数据非常重要。以下是一些关键点
- Elastic 对数据的使用
- Elastic 不使用客户数据进行模型训练,但所有数据均由第三方 AI 提供商处理。
- 匿名化
- 发送到 AI 助手的数据不会进行匿名化处理,包括告警数据、配置、查询、日志和聊天互动。
- 权限上下文
- 当 AI 助手执行搜索时,它使用与当前用户相同的权限。
- 第三方处理
- 任何提交的数据都可能被提供商用于 AI 训练或其他目的,并且不保证安全或保密。
遥测收集:您的 AI 提供商可能会在使用期间收集遥测数据。 请联系他们以获取有关收集哪些数据的详细信息。
AI 助手连接到以下受支持的 LLM 提供商之一
提供商 | 配置 | 身份验证 |
---|---|---|
预配置的 LLM(默认) | 无需配置 | 不适用 |
OpenAI | 配置连接器 | 获取 API 密钥 |
Azure OpenAI | 配置连接器 | 获取 API 密钥 |
Amazon Bedrock | 配置连接器 | 获取身份验证密钥 |
Google Gemini | 配置连接器 | 获取服务帐户密钥 |
设置步骤:
- 使用上面的链接通过您选择的提供商创建身份验证凭据
- 通过导航到Stack Management → Connectors来创建一个 LLM 连接器,以便为您选择的提供商创建一个 LLM 连接器。
- 通过输入来验证连接
- 提供商的 API 端点 URL
- 您的身份验证密钥或密码
用于可观测性和搜索的 Elastic AI 助手不支持连接到私有 LLM。 Elastic 不建议将私有 LLM 与 AI 助手一起使用。
使用 8.12 之前的知识库文章?
如果您开始在技术预览中使用 AI 助手,则 8.12 之前创建的任何知识库文章都必须重新索引或升级后才能使用。 8.12 之前创建的知识库文章使用 ELSER v1。 在 8.12 中,知识库文章必须使用 ELSER v2。 选项包括
- 手动清除所有旧的知识库文章并重新索引它们。
- 使用Python 脚本将所有使用 ELSER v1 索引的知识库文章升级到 ELSER v2。
AI 助手使用 Elastic 的语义搜索引擎 ELSER,从其内部知识库索引中调用数据以创建检索增强生成 (RAG) 响应。 将运行手册、GitHub 问题、内部文档和 Slack 消息等数据添加到知识库中,可以为 AI 助手提供上下文,从而提供更具体的帮助。
使用以下一种或多种方法将数据添加到知识库
您还可以通过要求 AI 助手在聊天时记住某些内容(例如,“记住下次”)来将信息添加到知识库。 助手将创建信息的摘要并将其添加到知识库。
要将外部数据添加到 Kibana 中的知识库
要打开 AI 助手设置,请在全局搜索字段中找到
AI Assistants
。在用于可观测性和搜索的 Elastic AI 助手下,单击管理设置。
切换到知识库选项卡。
单击新建条目按钮,然后选择
单个条目:在 UI 中编写单个条目的内容。
批量导入:上传一个换行符分隔的 JSON (
ndjson
) 文件,其中包含要添加到知识库的条目列表。 每个对象应符合以下格式{ "id": "a_unique_human_readable_id", "text": "Contents of item" }
搜索连接器会索引来自 GitHub、Confluence、Google Drive、Jira、S3、Teams 和 Slack 等外部来源的内容,以改进 AI 助手的响应。
要求和限制
- 对于 stack 9.0.0+ 或 Serverless,连接器必须是自管理的
- 通过 Kibana 中的 Search Solution(9.0 之前)或通过Connector API管理连接器
- 默认情况下,AI 助手会查询所有搜索连接器索引。 要自定义知识库中包含的数据源,请在AI 助手设置页面上调整搜索连接器索引模式设置。
设置过程
创建连接器
使用 UI:
- 导航到全局搜索字段中的
Content / Connectors
- 为您的数据源创建一个连接器(例如:GitHub 连接器)
- 如果您的 Space 缺少 Search 解决方案,请从其他 Space 创建连接器,或者将您的 Space Solution view 更改为
Classic
使用 API:
- 使用Connector API创建一个连接器
- 导航到全局搜索字段中的
创建嵌入(选择一种方法)
semantic_text
字段:建议的工作流,可自动处理模型设置- ML 管道:需要手动设置 ELSER 模型和推理管道
要使用semantic_text
字段类型创建 AI 助手所需的嵌入
- 打开先前创建的连接器,然后选择Mappings选项卡。
- 选择Add field。
- 在Field type下,选择Semantic text。
- 在Reference field下,选择要用于模型推理的字段。
- 在Select an inference endpoint下,选择要用于将嵌入添加到数据的模型。
- 通过选择Add field将字段添加到您的映射。
- 通过从Sync菜单中选择Full Content来同步数据。
AI 助手现在将使用您选择的模型查询您设置的连接器。 检查 AI 助手是否正在使用索引,方法是询问它与索引数据相关的内容。
这是一种更复杂的方法,需要您手动设置 ELSER 模型和推理管道。
使用 ML 推理管道创建 AI 助手所需的嵌入(权重和 token 到稀疏向量字段)
- 在 内容 / 连接器 中打开之前创建的搜索连接器,然后选择 管道 选项卡。
- 在
解锁您的自定义管道
下选择 复制并自定义。 - 在
机器学习推理管道
下选择 添加推理管道。 - 选择 ELSER (Elastic Learned Sparse EncodeR) ML 模型,以将必要的嵌入添加到数据中。
- 选择需要作为推理管道一部分进行评估的字段。
- 测试并保存推理管道和整个管道。
创建管道后,完成以下步骤
同步数据。
管道设置完成后,执行连接器的 完整内容同步。 推理管道将按如下方式处理数据
- 当数据进入时,ELSER 将应用于数据,并将嵌入(权重和 token 到 稀疏向量字段)添加到数据中,以捕获数据的语义含义和上下文。
- 当您查看已摄取的文档时,您可以看到嵌入已添加到文档的
predicted_value
字段中。
检查 AI 助手是否可以使用索引(可选)。
向 AI 助手询问与索引数据相关的内容。
AI 助手使用大型语言模型 (LLM),这些模型是概率性的,容易提供不完整或不正确的信息。Elastic 支持 LLM 配置和连接,但不负责响应的准确性。在实施建议的更改之前,请务必验证重要的信息。
与 AI 助手聊天或与整个 UI 中的上下文见解互动。 查看以下部分,了解有关与 AI 助手互动的更多信息。
在 LLM 提供的每个答案之后,请告诉我们答案是否有帮助。 您的反馈有助于我们改进 AI 助手!
选择 AI 助手 图标 (),它位于 Serverless 或 Kibana UI 的右上角,即可开始聊天。
这将打开 AI 助手浮出框,您可以在其中询问助手有关您实例的问题

询问有关您数据的问题需要 函数调用
,这使 LLM 能够可靠地与第三方生成式 AI 提供商互动,以使用客户数据执行搜索或运行高级函数。
当 Elastic Observability 和搜索 AI 助手在集群中执行搜索时,查询以与用户相同的权限级别运行。
Elastic Stack Serverless
AI 助手使用函数通过文本、数据和可视化组件在聊天对话中包含相关上下文。 您和 AI 助手都可以建议函数。 您还可以编辑 AI 助手的函数建议并检查函数响应。
主要函数
alerts
- 获取 Observability 的警报。
elasticsearch
- 代表您调用 Elasticsearch API。
kibana
- 代表您调用 Kibana API。
summarize
- 总结对话的某些部分。
visualize_query
- 可视化 ES|QL 查询的图表。
当您的集群具有 APM 数据时,可以使用其他函数
get_apm_correlations
- 获取在前景色集中比背景色集中更突出的字段值。 这在确定哪些属性(例如
error.message
、service.node.name
或transaction.name
)导致更高的延迟时非常有用。 另一种选择是基于时间的比较,您可以在更改点之前和之后进行比较。 get_apm_downstream_dependencies
- 获取服务的下游依赖项(服务或未插桩的后端)。 通过返回
span.destination.service.resource
和service.name
将下游依赖项名称映射到服务。 如果需要,可以使用它进一步向下钻取。 get_apm_error_document
- 根据分组名称获取示例错误文档。 这还包括错误的堆栈跟踪,这可能暗示原因。
get_apm_service_summary
- 获取单个服务的摘要,包括语言、服务版本、部署、环境以及它在其中运行的基础设施。 例如,pod 的数量和它们的下游依赖项列表。 它还会返回活动警报和异常。
get_apm_services_list
- 获取受监控服务、其运行状况和警报的列表。
get_apm_timeseries
- 显示任何服务或所有服务及其任何或所有依赖项的不同 APM 指标(例如吞吐量、失败率或延迟)。 同时显示为时间序列和单个统计数据。 此外,该函数会返回任何更改,例如峰值、阶跃和趋势变化或下降。 您还可以使用它来比较数据,方法是请求两个不同的时间范围,或者例如,两个不同的服务版本。
整个 Observability 中的 AI 助手上下文提示提供以下信息
- 通用分析:解释您 fleet 中最昂贵的库和函数,并提供优化建议。
- 应用程序性能监控 (APM):解释 APM 错误并提供修复建议。
- 基础设施 Observability:解释主机上运行的进程。
- 日志:解释日志消息并生成搜索模式以查找类似的问题。
- 警报:提供日志速率变化的可能原因和修复建议。
例如,在日志详细信息中,您会看到 这是什么消息? 和 如何找到类似的日志消息? 的提示

单击提示会生成特定于该日志条目的消息

单击 开始聊天 从上下文提示继续对话以打开 AI 助手聊天。
使用 Observability AI 助手连接器 将 AI 生成的见解和自定义操作添加到您的警报工作流程,如下所示
导航到 Observability / 警报 以 创建(或编辑)使用 AI 助手连接器的警报规则。 指定触发警报必须满足的条件。
在 操作 下,选择 Observability AI 助手 连接器类型。
在 连接器 列表中,选择设置助手时创建的 AI 连接器。
在 消息 字段中,指定要发送给助手的消息
您可以要求助手生成已触发警报的报告,回顾知识库中存储的过去事件的任何信息或潜在解决方案,提供故障排除指南和解决方案步骤,并包括可能相关的其他活动警报。 作为最后一步,您可以要求助手触发操作,例如将报告(或任何其他消息)发送到 Slack Webhook。
目前仅支持 Slack、电子邮件、Jira、PagerDuty 或 Webhook 操作。 将来会添加其他操作。
当警报触发时,有关该事件的上下文详细信息(例如警报触发的时间、受影响的服务或主机以及违反的阈值)会连同配置期间提供的消息一起发送到 AI 助手。 AI 助手运行消息中请求的任务并创建一个对话,您可以使用该对话与助手聊天

AI 助手创建的对话是公开的,并且可以供每个具有使用助手权限的用户访问。
AI 助手可能需要一两分钟才能处理消息并创建对话。
请注意,过于宽泛的提示可能会导致请求超过 token 限制。 有关更多信息,请参阅 Token 限制。 此外,尝试在单个连接器执行中分析多个警报可能会导致您超过函数调用限制。 如果发生这种情况,请修改连接器配置中指定的消息以避免超过限制。
当被要求将消息发送到另一个连接器(例如 Slack)时,AI 助手会尝试包含指向生成的对话的链接。
必须在 Kibana 设置下正确指定 server.publicBaseUrl
设置,否则 AI 助手将无法生成此链接。

当警报触发和恢复时,会调用用于 Observability 和搜索的 Elastic AI 助手连接器。
要了解有关警报、操作和连接器的更多信息,请参阅 警报。
要访问 AI 助手设置页面,您可以
- 在全局搜索字段中找到
AI 助手
。 - 使用 AI 助手窗口中的 更多操作 菜单。
AI 助手设置页面包含以下选项卡
- 设置:配置主要的 AI 助手设置,这些设置直接在界面中说明。
- 知识库:管理 知识库条目。
- 搜索连接器:提供指向 Kibana 搜索 → 内容 → 连接器 UI 以进行连接器配置的链接。
您可以使官方 Elastic 文档可供 AI 助手使用,这可以显着提高其准确回答有关 Elastic Stack 和 Elastic 产品的问题的能力。
使用“安装 Elastic 文档”操作从 AI 助手设置中的 设置 选项卡启用此功能。
对于气隙环境,安装产品文档需要特殊配置。有关详细说明,请参阅 Kibana AI 助手设置文档。
大多数 LLM 可以在单个对话中管理的令牌数量是有限制的。 当达到令牌限制时,LLM 会抛出错误,并且 Elastic 会在 Kibana 中显示“已达到令牌限制”错误。 LLM 可以支持的确切令牌数量取决于您使用的 LLM 提供商和模型。 如果您使用 OpenAI 连接器,请在 OpenAI 令牌使用情况仪表板中监控令牌使用情况。 有关更多信息,请参阅 OpenAI 连接器文档。