可观测性 AI 助手
编辑可观测性 AI 助手编辑
AI 助手使用生成式 AI 来提供
- 上下文洞察 - 在整个可观测性中打开提示,解释错误和消息并建议补救措施。
- 聊天 - 与 AI 助手进行对话。聊天使用函数调用来请求、分析和可视化您的数据。
AI 助手通过我们支持的 Elastic 连接器与您的大型语言模型 (LLM) 提供商集成
- OpenAI 连接器 用于 OpenAI 或 Azure OpenAI 服务。
- Amazon Bedrock 连接器 用于 Amazon Bedrock,特别是 Claude 模型。
AI 助手由与您的大型语言模型 (LLM) 提供商的集成提供支持。众所周知,LLM 有时会将错误信息呈现为正确信息。Elastic 支持配置和连接到 LLM 提供商和您的知识库,但不负责 LLM 的响应。
此外,您提供给可观测性 AI 助手的任何数据都*不会*被匿名化,而是由第三方 AI 提供商存储和处理。这包括在对话中用于分析或上下文的任何数据,例如警报或事件数据、检测规则配置和查询。因此,在使用此功能时,请谨慎分享任何机密或敏感信息。
要求编辑
AI 助手需要以下内容
- Elastic Stack 版本 8.9 及更高版本。
- 企业订阅。
-
具有支持函数调用的第三方生成式 AI 提供商的帐户。可观测性 AI 助手支持以下提供商
- OpenAI
gpt-4
+。 - Azure OpenAI 服务
gpt-4
(0613) 或gpt-4-32k
(0613),API 版本为2023-07-01-preview
或更新版本。 - AWS Bedrock,特别是 Anthropic Claude 模型。
- OpenAI
- 知识库需要一个 4 GB 的机器学习节点。
您的数据和 AI 助手编辑
Elastic 不会将客户数据用于模型训练。这包括您发送给模型的任何内容,例如警报或事件数据、检测规则配置、查询和提示。但是,您提供给 AI 助手的任何数据都将由您在设置助手时选择设置 OpenAI 连接器时选择的第三方提供商进行处理。
Elastic 不控制第三方工具,对其内容、操作或使用,或因您使用此类工具而可能造成的任何损失或损害不承担任何责任。使用 AI 工具处理个人、敏感或机密信息时请务必谨慎。您提交的任何数据都可能被提供商用于 AI 训练或其他目的。我们不保证提供商会对您提供的任何信息保密。在使用任何生成式 AI 工具之前,您应该熟悉其隐私政策和使用条款。
设置 AI 助手编辑
要设置 AI 助手,请执行以下操作
-
使用您的 AI 提供商创建一个身份验证密钥,以验证来自 AI 助手的请求。您将在下一步中使用它。有关创建身份验证密钥的信息,请参阅您的提供商的文档
- 在 Kibana 中,从 堆栈管理 → 连接器 中,创建一个 OpenAI 或 Amazon Bedrock 连接器。
-
通过提供以下信息来验证可观测性和 AI 提供商之间的通信
- 在 URL 字段中,输入 AI 提供商的 API 端点 URL。
- 在 身份验证 下,输入您在上一步中创建的 API 密钥或访问密钥/密钥。
将数据添加到 AI 助手知识库编辑
如果您在技术预览版中开始使用 AI 助手,则在 8.12 之前创建的任何知识库文章都必须重新编制索引或升级后才能使用。在 8.12 之前创建的知识库文章使用 ELSER v1。在 8.12 中,知识库文章必须使用 ELSER v2。您可以
- 手动清除所有旧的知识库文章并重新编制索引。
- 使用 Python 脚本 将所有使用 ELSER v1 编制索引的知识库文章升级到 ELSER v2。
AI 助手使用 ELSER(Elastic 的语义搜索引擎)从其内部知识库索引中调用数据,以创建检索增强生成 (RAG) 响应。将运行手册、GitHub 问题、内部文档和 Slack 消息等数据添加到知识库中,可以为 AI 助手提供上下文,以提供更具体的帮助。
您的 AI 提供商可能会在您使用 AI 助手时收集遥测数据。请联系您的 AI 提供商,了解有关如何收集数据的更多信息。
您可以通过要求 AI 助手在聊天时记住某些内容(例如,“下次记住这一点”)来将信息添加到知识库中。助手将创建信息的摘要并将其添加到知识库中。
您还可以使用堆栈管理 UI 在 Kibana 中或使用 Elasticsearch 索引 API 将外部数据添加到知识库中。
使用 UI编辑
要在 Kibana 中将外部数据添加到知识库中,请执行以下操作
- 转到 堆栈管理。
- 在*Kibana*部分中,单击 AI 助手。
- 然后选择 Elastic AI 助手(适用于可观测性)。
- 切换到 知识库 选项卡。
-
单击 新建条目 按钮,然后选择
- 单个条目:在 UI 中为单个条目编写内容。
-
批量导入:上传一个换行符分隔的 JSON (
ndjson
) 文件,其中包含要添加到知识库中的条目列表。每个对象都应符合以下格式{ "id": "a_unique_human_readable_id", "text": "Contents of item", }
使用 Elasticsearch 索引 API编辑
- 使用 Elasticsearch 索引 API 将外部数据(GitHub 问题、Markdown 文件、Jira 工单、文本文件等)摄取到 Elasticsearch 中。
-
通过在 Kibana 的 管理 → 开发工具 中完成以下查询,将您的数据重新编制索引到 AI 助手的知识库索引中。在重新编制索引之前更新以下字段
-
InternalDocsIndex
- 存储您的内部文档的索引的名称。 -
text_field
- 包含您的内部文档文本的字段的名称。 -
timestamp
- 内部文档中时间戳字段的名称。 -
public
- (true
或false
)如果为true
,则文档对以下space
字段中定义的空间中的用户或所有空间(如果未定义space
)中的用户可用。如果为false
,则文档仅限于以下user.name
字段中指示的用户使用。 -
space
- (可以是null
)如果已定义,则将内部文档的可用性限制为特定的 Kibana 空间。 -
user.name
- (可以是null
)如果已定义,则将内部文档的可用性限制为特定用户。 - 您可以添加查询过滤器以索引特定文档。
-
POST _reindex { "source": { "index": "<InternalDocsIndex>", "_source": [ "<text_field>", "<timestamp>", "namespace", "is_correction", "public", "confidence" ] }, "dest": { "index": ".kibana-observability-ai-assistant-kb-000001", "pipeline": ".kibana-observability-ai-assistant-kb-ingest-pipeline" }, "script": { "inline": "ctx._source.text = ctx._source.remove(\"<text_field>\");ctx._source.namespace=\"<space>\";ctx._source.is_correction=false;ctx._source.public=<public>;ctx._source.confidence=\"high\";ctx._source['@timestamp'] = ctx._source.remove(\"<timestamp>\");ctx._source['user.name'] = \"<user.name>\"" } }
与 AI 助手互动编辑
您可以与 AI 助手聊天,或与整个可观测性中的上下文洞察互动。有关与 AI 助手互动的更多信息,请参阅以下部分。
在 LLM 提供每个答案后,请告诉我们答案是否有帮助。您的反馈有助于我们改进 AI 助手!
与助手聊天编辑
单击任何可观测性应用程序右上角的 AI 助手 以开始聊天
这将打开 AI 助手弹出窗口,您可以在其中询问助手有关您的实例的问题
建议函数编辑
此功能处于测试阶段,可能会发生变化。设计和代码不如正式的 GA 功能成熟,按原样提供,不提供任何保证。测试版功能不受正式 GA 功能的支持 SLA 的约束。
AI 助手使用函数通过文本、数据和可视组件在聊天对话中包含相关上下文。您和 AI 助手都可以建议函数。您还可以编辑 AI 助手的函数建议并检查函数响应。
您可以建议以下函数
|
获取可观测性的警报。 |
|
代表您调用 Elasticsearch API。 |
|
代表您调用 Kibana API。 |
|
总结对话的各个部分。 |
|
可视化 ES|QL 查询的图表。 |
当您的集群拥有 APM 数据时,可以使用其他功能
|
获取在前台集中比后台集中更突出的字段值。这有助于确定哪些属性(例如 |
|
获取服务的下方依赖项(服务或未检测的后端)。通过返回 |
|
根据分组名称获取示例错误文档。这还包括错误的堆栈跟踪,这可能暗示了原因。 |
|
获取单个服务的摘要,包括语言、服务版本、部署、环境和运行它的基础设施。例如,Pod 的数量及其下方依赖项的列表。它还会返回活动的警报和异常。 |
|
获取受监控服务的列表、其运行状况状态和警报。 |
|
显示任何服务或所有服务及其任何或所有依赖项的不同 APM 指标(例如吞吐量、故障率或延迟)。以时间序列和单个统计信息的形式显示。此外,该函数还会返回任何变化,例如峰值、阶跃和趋势变化或下降。您还可以使用它通过请求两个不同的时间范围或例如两个不同的服务版本来比较数据。 |
使用上下文提示编辑
可观测性中的人工智能助手上下文提示提供以下信息
- 通用分析 - 解释您机群中最昂贵的库和函数,并提供优化建议。
- 应用程序性能监控 (APM) - 解释 APM 错误并提供修复建议。
- 基础设施可观测性 - 解释主机上运行的进程。
- 日志 - 解释日志消息并生成搜索模式以查找类似问题。
- 警报 - 提供日志速率变化的可能原因和修复建议。
例如,在日志详细信息中,您将看到 这是什么消息? 和 如何查找类似的日志消息? 的提示
单击提示会生成特定于该日志条目的消息
您可以通过单击 开始聊天 打开人工智能助手聊天,以继续上下文提示中的对话。
将人工智能助手连接器添加到警报工作流程中编辑
要使用可观测性人工智能助手连接器,您必须拥有 api:observabilityAIAssistant
和 app:observabilityAIAssistant
权限。
您可以使用 可观测性人工智能助手连接器 将人工智能生成的见解和自定义操作添加到您的警报工作流程中。为此,请执行以下操作
- 创建(或编辑)警报规则 并指定触发警报必须满足的条件。
- 在 操作 下,选择 可观测性人工智能助手 连接器类型。
- 在 连接器 列表中,选择您在设置助手时创建的人工智能连接器。
-
在 消息 字段中,指定要发送给助手的消息
您可以要求助手生成已触发警报的报告,调用知识库中存储的任何信息或过去事件的潜在解决方案,提供故障排除指导和解决步骤,还可以包括可能相关的其他活动警报。最后,您可以要求助手触发操作,例如将报告(或任何其他消息)发送到 Slack Webhook。
目前,您只能将消息发送到 Slack、电子邮件、Jira、PagerDuty 或 Webhook。将来会添加其他操作。
当警报触发时,有关事件的上下文详细信息(例如警报触发时间、受影响的服务或主机以及超过的阈值)将与配置期间提供的消息一起发送给人工智能助手。人工智能助手会运行消息中请求的任务,并创建一个您可以用来与助手聊天的对话
人工智能助手创建的对话是公开的,每个有权使用助手的用户都可以访问。
人工智能助手可能需要一两分钟来处理消息并创建对话。
请注意,过于宽泛的提示可能会导致请求超过令牌限制。有关更多信息,请参阅 令牌限制。此外,尝试在单个连接器执行中分析多个警报可能会导致您超过函数调用限制。如果发生这种情况,请修改连接器配置中指定的消息,以避免超过限制。
当要求向另一个连接器(例如 Slack)发送消息时,人工智能助手会尝试包含指向生成的对话的链接。
必须在 Kibana 设置下正确指定 server.publicBaseUrl
设置,否则人工智能助手将无法生成此链接。
可观测性人工智能助手连接器在警报触发和恢复时调用。
要详细了解警报、操作和连接器,请参阅 警报。
已知问题编辑
令牌限制编辑
大多数 LLM 在单个对话中可以管理的令牌数量是有限的。当您达到令牌限制时,LLM 将抛出错误,Elastic 将在 Kibana 中显示“已达到令牌限制”错误。LLM 可以支持的确切令牌数量取决于您使用的 LLM 提供程序和模型。如果您使用的是 OpenAI 连接器,则可以在 OpenAI 令牌使用情况 仪表板中监控令牌使用情况。有关更多信息,请参阅 OpenAI 连接器文档。