使用 AI Assistant for Observability 和组织的运行手册增强 SRE 故障排除

作者:Almudena Sanz Olivé, Katrin Freihofner, Tom Grabowski

通过本指南,你的 SRE 团队可以实现增强的警报修复和事件管理。

可观测性 AI 助手可帮助用户使用自然语言界面探索和分析可观测性数据,利用自动函数调用来请求、分析和可视化数据,将其转换为可操作的可观测性。 该助手还可以建立一个由 Elastic Learned Sparse EncodeR (ELSER) 提供支持的知识库,以提供来自私人数据的附加上下文和建议,以及使用 RAG(检索增强生成)的大型语言模型 (LLM)。 Elastic 的 Stack — 作为一个向量数据库,具有开箱即用的语义搜索以及 LLM 集成和可观测性解决方案的连接器 — 是一个完美的工具包,可以将公司独特的可观测性知识与生成式 AI 相结合,从而获得最大价值。

增强 SRE 故障排除

由于资源分散且可能过时,大型组织中的站点可靠性 (SRE) 在查找必要的工程师信息以排除警报、监控系统或获取见解方面经常面临挑战。 对于经验不足的 SRE 来说,这个问题尤其重要,即使有操作手册,他们也可能需要帮助。 重复发生的事件会带来另一个问题,因为待命人员可能缺乏对之前解决方案和后续步骤的了解。 成熟的 SRE 团队通常会投入大量时间来改进系统,以最大程度地减少 “救火”,并利用广泛的自动化和文档来支持待命人员。

Elastic® 通过使用 RAG 将生成式 AI 模型与内部数据的相关搜索结果相结合来应对这些挑战。 Observability AI Assistant 的内部知识库由我们的语义搜索检索模型 ELSER 提供支持,可以在对话过程中的任何时刻回忆信息,并根据内部知识提供 RAG 响应。

该知识库可以通过你组织的信息来丰富,例如操作手册、GitHub 问题、内部文档和 Slack 消息,从而允许 AI 助手提供特定帮助。 在排除问题时,助手还可以记录和存储与 SRE 正在进行的对话中的特定信息,从而有效地创建操作手册以供将来参考。 此外,助手还可以生成事件摘要、系统状态、操作手册、事后分析或公告。

这种检索、总结和呈现上下文相关信息的能力对于 SRE 团队来说是一个游戏规则改变者,将工作从追逐文档和数据转变为直观的、上下文敏感的用户体验。知识库(请参阅需求)充当中央存储库。的可观察性知识,打破文档孤岛并整合部落知识,使借助 LLMs 的力量增强的 SRE 可以访问这些信息。

你的 LLM 提供商在使用人工智能助手时可能会收集查询遥测数据。 如果你的数据属于机密或包含敏感细节,我们建议你验证你向 AI 助手提供的 LLM 连接器的数据处理政策。

在这篇博文中,我们将介绍通过内部信息丰富你的知识库 (KB) 的不同方法。 我们将重点关注特定警报,该警报表明带有 “502 Bad Gateway” 错误的日志数量有所增加,并且已超出警报的阈值。

如何使用知识库对警报进行故障排除

在知识库充实内部信息之前,当 SRE 向 AI 助手询问如何解决警报问题时,LLM 的响应将基于其在训练期间学到的数据; 然而,LLM 无法回答与私人、近期或新兴知识相关的问题。 在这种情况下,当询问解决警报问题的步骤时,响应将基于通用信息

但是,一旦你的操作手册丰富了知识库,当你的团队收到有关 “502 Bad Gateway” 错误的新警报时,他们可以使用 AI Assistant 访问内部知识来排除故障,使用语义搜索在知识库。

在本博客中,我们将介绍向知识库添加有关如何排除警报故障的内部信息的不同方法:

  1. 让助手记住现有操作手册的内容。
  2. 要求助手总结对话期间采取的步骤并将其存储在知识库中,并将其存储为操作手册。
  3. 使用我们的连接器和 API 将你的 Runbook 从 GitHub 或其他外部源导入到知识库。

将操作手册添加到知识库后,AI 助手现在可以调用操作手册中的内部信息和特定信息。 通过利用检索到的信息,LLM 可以提供更准确和相关的建议来解决警报问题。 这可能包括建议警报的潜在原因、解决问题的步骤、未来事件的预防措施,或要求助理使用功能帮助执行操作手册中提到的步骤。 有了更准确、更相关的信息,SRE 可能会更快地解决警报,从而减少停机时间并提高服务可靠性。

你的知识库文档将存储在索引 .kibana-observability-ai-assistant-kb-* 中。 请记住,LLMs 对模型一次可以读取和写入的信息量有限制,称为 token 限制。 想象一下,你正在读一本书,但一次只能记住一定数量的单词。 一旦达到这个限制,你就会开始忘记之前读过的单词。 这类似于 LLM 中 token 限制的工作方式。

为了使操作手册保持在检索增强生成 (RAG) 模型的 token 限制内,请确保信息简洁且相关。 为了清晰起见,使用要点,避免重复,并使用链接获取附加信息。 定期查看和更新​​操作手册,删除过时或不相关的信息。 目标是提供清晰、简洁、有效的故障排除信息,而不会因 token 限制限制而影响质量。 LLM 非常适合总结,因此你可以要求 AI 助手帮助你使操作手册更加简洁。

让助手记住现有操作手册的内容

将操作手册存储到知识库的最简单方法就是让人工智能助手去做! 打开一个新对话并询问 “Can you store this runbook in the KB for future reference? - 你可以将此操作手册存储在知识库中以供将来参考吗?” 然后以纯文本形式粘贴操作手册的内容。

然后 AI 助手会自动帮你存入知识库,就这么简单。

让助手总结对话期间采取的步骤并将其存储在知识库中

你还可以要求 AI 助手在对话时记住一些内容 - 例如,在使用 AI 助手解决了警报问题后,你可以要求 “remember how to troubleshoot this alert for next time. - 记住下次如何解决此警报问题”。 AI 助手将创建对警报进行故障排除所采取的步骤的摘要,并将其添加到知识库中,从而有效地创建操作手册以供将来参考。 下次你遇到类似的情况时,AI 助手会回忆起这些信息并用它来帮助你。

在下面的演示中,用户要求助手记住为解决警报的根本原因而遵循的步骤,并在这种情况再次发生时对 Slack 通道执行 ping 操作。 在后来与助手的对话中,用户询问类似问题可以做什么,AI 助手能够记住这些步骤,并提醒用户 ping Slack 通道。

收到警报后,你可以打开 AI 助手聊天并测试排除警报。 调查警报后,请 AI 助手总结分析结果以及针对根本原因采取的步骤。 为了下次记住它们,我们有一个类似的警报并添加额外的指令,例如警告 Slack 通道。

助手将使用内置功能总结步骤并将其存储到你的知识库中,以便在将来的对话中调用。

打开一个新对话,询问在对与我们刚刚调查的警报类似的警报进行故障排除时应采取哪些步骤。 助手将能够使用基于 ELSER 的语义搜索来调用存储在 KB 中的与特定警报相关的信息,并提供故障排除步骤的摘要,包括通知 Slack 通道的最后指示。

blog RAG text user

使用 API 或我们的 GitHub 连接器将存储在 GitHub 中的 Runbook 导入知识库

你还可以通过将专有数据(例如 GitHub 问题、Markdown 文件、Jira 票证、文本文件)提取到 Elastic 中,以编程方式将专有数据添加到知识库中。

如果你的组织已创建存储在 GitHub 中的 Markdown 文档中的 Runbook,请按照本博客文章下一部分中的步骤将 Runbook 文档索引到你的知识库中。

将文档引入知识库的步骤如下:

将你组织的知识吸收到 Elasticsearch 中

选项 1:使用 Elastic 网络爬虫。 使用网络爬虫以编程方式从网站和知识库中发现、提取和索引可搜索内容。 当你使用网络爬虫获取数据时,会创建一个搜索优化的 Elasticsearch® 索引来保存和同步网页内容。

选项 2:使用 Elasticsearch 的 index API。 观看演示如何使用 Elasticsearch 语言客户端从应用程序获取数据的教程。

选项 3:构建你自己的连接器。 请按照此博客中描述的步骤操作:如何为 Elasticsearch 创建自定义连接器。

选项 4:使用 Elasticsearch Workplace 搜索连接器。 例如,GitHub 连接器可以自动捕获、同步和索引问题、Markdown 文件、拉取请求和存储库。

  • 按照步骤在 GitHub 中配置 GitHub 连接器,以从 GitHub 平台创建 OAuth 应用程序。

  • 现在你可以将 GitHub 实例连接到你的组织。 前往你组织的 “Search”>“Workplace Search” 管理仪表板,然后找到 “Sources” 选项卡。

  • 在已配置 Sources 列表中选择 GitHub(或 GitHub Enterprise),然后按照所示的 GitHub 身份验证流程进行操作。 身份验证流程成功后,你将被重定向到工 Workplace Search,并提示你选择要同步的组织。

  • 配置连接器并选择组织后,内容应该同步,你将能够在 Sources 里看到它。 如果你不需要对所有可用内容建立索引,你可以通过 API 指定索引规则。 这将有助于缩短索引时间并限制索引的大小。 请参阅自定义索引。

  • Source 已在 Elastic 中创建了一个索引,其中包含来自你组织的内容(issues、Markdown 文件……)。 你可以通过导航到 “Stack Management” > “Index Management”,激活右侧的 “ Include hidden Indices” 按钮,然后搜索 “GitHub” 来找到索引名称。

你可以通过创建数据视图 (Data View) 并在 “Discover” 中探索来探索已索引的文档。 转到 Stack Management > Kibana > Data Views > Create data view 并输入数据视图名称、索引模式(确保在高级选项中激活 “Allow hidden and system indices” )和时间戳字段:

  • 你现在可以使用数据视图浏览 Discover 中的文档:

使用其语义搜索管道将你的内部操作手册重新索引到 AI 助手的知识库索引中

你的知识库文档存储在索引 .kibana-observability-ai-assistant-kb-* 中。 要将从 GitHub 导入的内部 Runbook 添加到知识库,你只需将文档从上一步中创建的索引重新索引到知识库的索引即可。 要向知识库中的文档添加语义搜索功能,重新索引还应使用为知识库预先配置的 ELSER 管道,.kibana-observability-ai-assistant-kb-ingest-pipeline。

通过使用知识库索引创建数据视图,你可以探索 Discover 中的内容。

你在 “Management” > “DevTools” 中执行以下查询,确保在 “_source” 和 “inline” 上替换以下内容:

  • InternalDocsIndex :存储内部文档的索引名称
  • text_field :包含内部文档文本的字段名称
  • timestamp : 内部文档中时间戳字段的名称
  • public :(true 或 false)如果为 true,则使文档可供定义的 Kibana 空间(如果已定义)或所有空间(如果未定义)中的所有用户使用; 如果为 false,文档将仅限于中指定的用户
  • (可选) space :如果定义,则限制内部文档在特定的 Kibana 空间中可用
  • (可选) user.name :如果定义,则限制内部文档可供特定用户使用
  • (可选)“query” 过滤器仅索引某些文档(见下文)
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>\""}
}

你可能想要指定在知识库中重新索引的文档类型 - 例如,你可能只想重新索引 Markdown 文档(如 Runbook)。 你可以向源中的文档添加 “query” 过滤器。 对于 GitHub,Runbook 使用包含字符串 “file” 的 “type” 字段进行标识,你可以将其添加到重新索引查询中,如下所示。 要添加 GitHub 问题,你还可以在查询 “type” 字段中包含字符串 “issues”:

"source": {"index": "<InternalDocsIndex>","_source": ["<text_field>","<timestamp>","namespace","is_correction","public","confidence"],"query": {"terms": {"type": ["file"]} }

太棒了! 现在数据已存储在你的知识库中,你可以向 Observability AI Assistant 询问有关它的任何问题:

blog RAG issue

blog RAG runbook

结论

综上所述,利用内部的可观察性知识并将其添加到弹性知识库中可以极大地增强 AI 助手的能力。 通过手动输入信息或以编程方式摄取文档,SRE 可以创建一个可通过 Elastic 和 LLM 的功能访问的中央知识存储库。 人工智能助手可以调用这些信息,协助处理事件,并使用检索增强生成为特定环境提供定制的可观察性。 通过遵循本文中概述的步骤,组织可以释放其 Elastic AI Assistant 的全部潜力。

立即开始使用 Elastic AI Assistant 丰富你的知识库,并为你的 SRE 团队提供卓越所需的工具。 按照本文中概述的步骤操作,将你的事件管理和警报修复流程提升到新的水平。 你迈向更高效、更有效的 SRE 运营的旅程现在就开始了。

本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

在这篇博文中,我们可能使用或引用了第三方生成人工智能工具,这些工具由其各自所有者拥有和运营。 Elastic 对第三方工具没有任何控制权,我们对其内容、操作或使用不承担任何责任,也不对你使用此类工具可能产生的任何损失或损害负责。 使用人工智能工具处理个人、敏感或机密信息时请务必谨慎。 你提交的任何数据都可能用于人工智能培训或其他目的。 无法保证你提供的信息将得到安全或保密。 在使用之前,你应该熟悉任何生成式人工智能工具的隐私惯例和使用条款。

Elastic、Elasticsearch、ESRE、Elasticsearch Relevance Engine 和相关标志是 Elasticsearch N.V. 的商标、徽标或注册商标。 在美国和其他国家。 所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。

原文:Enhancing SRE troubleshooting with the AI Assistant for Observability and your organization's runbooks | Elastic Blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows系统安装Ubuntu子系统

安装前先在 控制面板 中打开 程序与功能选项 &#xff0c;点击 启用或关闭Windows功能&#xff1a; 勾选 适用于 Linux的Windows子系统 和 虚拟机平台 、 Hyper-v 。 重启电脑后再 Microsoft Store Windows应用商店 中下载合适的Ubuntu版本。 运行Ubuntu程序&#xff0c;如出现…

【实战】算法思路总结

面试过程中&#xff0c;总是被拷打&#xff0c;信心都要没了。但是也慢慢摸索出一些思路&#xff0c;希望对大家有帮助。 &#xff08;需要多用一下ACM模式&#xff0c;力扣模式提供好了模板&#xff0c;自己在IDEA里面写的话&#xff0c;还是会有些陌生&#xff09; 0、基本…

Unity Editor 找物体助手

找啊找朋友~ &#x1f371;功能介绍&#x1f959;使用方法 &#x1f371;功能介绍 &#x1f4a1;输入相关字符串&#xff0c;它会帮你找到名称中带有该字符串的所有物体&#xff0c;还会找包含该字符串的Text、TextMeshProUGUI。 &#x1f959;使用方法 &#x1f4a1;导入插…

小学拼音弄一下

import re from xpinyin import Pinyindef remove_middle_characters(text):# 仅保留汉字chinese_chars re.findall(r[\u4e00-\u9fff], text)cleaned_text .join(chinese_chars)# 如果字符数为偶数&#xff0c;则在中间添加空格if len(cleaned_text) % 2 0:middle_index le…

【北京迅为】《iTOP-3588从零搭建ubuntu环境手册》-第5章 安装SSH

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

从0开始学python(七)

目录 前言 1 break、continue和pass函数 1.1 break 1.2 continue 1.3 pass 2、序列的索引及切片操作 2.1字符串的索引和切片 2.1.1 字符串索引 2.1.2 字符串切片 总结 前言 上一篇文章我们介绍了python中的循环结构&#xff0c;包括for和while的使用。本章接着往下讲。…

腾讯云服务器之ssh远程连接登录及转发映射端口实现内网穿透(实现服务器访问本地电脑端口)

目录 一、创建密钥绑定实例二、设置私钥权限三、ssh远程连接到服务器四、修改root密码五、端口转发&#xff08;实现服务器访问本地电脑的端口&#xff09; 一、创建密钥绑定实例 创建密钥会自动下载一个私钥&#xff0c;把这个私钥复制到c盘 二、设置私钥权限 1、删除所有用户…

免费剪辑的素材资源网站,超高清、可商用、不限速、无版权,迅速有效的解决您的视频剪辑难题!

在数字媒体时代&#xff0c;高质量的剪辑素材已成为视频制作的核心资源。下面为您推荐的优质视频剪辑素材网站&#xff0c;都提供超高清、无限速、无版权、可商用的素材&#xff0c;这些网站将大大提升您的视频制作效率和质量 01. 蛙学府 实用性&#xff1a;★★★★☆ 丰富性&…

记一些CISP-PTE题目解析

0x01 命令执行 直接payload: 127.0.0.1 & whoami&#xff0c;发现可以成功执行whoami命令 然后ls …/ &#xff0c;发现有个key.php文件 尝试用cat命令查看 发现不行被拦截了。&#xff08;其实题目过滤了常用的查看文件的命令 &#xff09; 这里有两种思路&#xff0c;第…

关于一致性,你该知道的事儿(下)

关于一致性&#xff0c;你该知道的事儿&#xff08;下&#xff09; 前言一、并发修改单个对象1.1 原子写操作1.2 显示加锁1.3 原子的TestAndSet1.4 版本号机制 二、 多个相关对象的一致性2.1 最大努力实现2.2 2PC && TCCC2.3.基于可靠消息的一致性方案2.4.Saga事务 三、…

HNCTF-PWN

1.ez_pwn 直接看危险函数&#xff0c;不能溢出&#xff0c;只能覆盖ebp。 后面紧接的又是leave,ret 很明显是栈迁移&#xff0c;通过printf打印出ebp&#xff0c;通过偏移计算出栈地址。 通过gdb调试&#xff0c;偏移是0x38 以下是payload&#xff1a; from pwn import * #i…

【自然语言处理】【大模型】DeepSeek-V2论文解析

论文地址&#xff1a;https://arxiv.org/pdf/2405.04434 相关博客 【自然语言处理】【大模型】DeepSeek-V2论文解析 【自然语言处理】【大模型】BitNet&#xff1a;用1-bit Transformer训练LLM 【自然语言处理】BitNet b1.58&#xff1a;1bit LLM时代 【自然语言处理】【长文本…

11.偏向锁原理及其实战

文章目录 偏向锁原理及其实战1.偏向锁原理2.偏向锁案例代码演示2.1.偏向锁案例代码2.2.1.无锁情况下状态2.1.2.偏向锁状态2.1.3.释放锁后的状态 2.2.偏向锁的膨胀和撤销2.2.1.偏向锁撤销的条件2.2.2.偏向锁的撤销 2.2.3.偏向锁的膨胀 2.3.全局安全点原理和偏向锁撤销性能问题2.…

EPAI手绘建模APP工程图顶部工具栏

7、工程图 图 302 工程图 工程图包括顶部常用工具栏、右侧工程图工具栏、左侧模型列表栏、中间的工程图。 (1) 常用工具栏 ① 删除&#xff0c;选中场景中工程图元素后&#xff0c;删除。可以选择多个工程图元素同时删除。 ② 设置&#xff0c;打开工程图设置页面&#xff0…

2024 年最新本地、云服务器安装部署 miniconda 环境详细教程(更新中)

Anaconda 概述 Anaconda 是专门为了方便使用 Python 进行数据科学研究而建立的一组软件包&#xff0c;涵盖了数据科学领域常见的 Python 库&#xff0c;并且自带了专门用来解决软件环境依赖问题的 conda 包管理系统。主要是提供了包管理与环境管理的功能&#xff0c;可以很方便…

picoCTF-Web Exploitation-More SQLi

Description Can you find the flag on this website. Additional details will be available after launching your challenge instance. Hints SQLiLite 先随便输入个账号密码登录一下&#xff0c;得到查询SQL&#xff0c;接下来应该对SQL进行某些攻击来绕过密码登录成功 -- …

微信小程序踩坑,skyline模式下,简易双向绑定无效

工具版本 基础库版本 Skline模式 页面json设置 问题描述 skyline模式下,textarea,input标签设置简易双向绑定 model:value是无效的,关闭skyline模式就正常使用了 截图展示 这里只展示了textarea标签,input标签的简易双向绑定也是无效的 总结 我在文档里面是没找到skyline里面不…

动态规划----股票买卖问题(详解)

目录 一.买卖股票的最佳时机&#xff1a; 二.买卖股票的最佳时机含冷冻期&#xff1a; 三.买卖股票的最佳时期含⼿续费&#xff1a; 四.买卖股票的最佳时机III: 五.买卖股票的最佳时机IV: 买卖股票的最佳时机问题介绍&#xff1a;动态规划买卖股票的最佳时机是一个经典的…

windows使用Docker-Desktop部署lobe-chat

文章目录 window安装docker-desktop下载和启动lobe-chatAI大语言模型的选择lobe-chat设置大模型连接 window安装docker-desktop docker-desktop下载地址 正常安装应用&#xff0c;然后启动应用&#xff0c;注意启动docker引擎 打开右上角的设置&#xff0c;进入Docker Engine设…

算法学习系列(六十):区间DP

目录 引言区间合并模板一、石子合并二、环形石子合并三、能量项链 引言 关于这个区间 D P DP DP &#xff0c;其实是有套路和模板的&#xff0c;题型的话也是变化不多&#xff0c;感觉就那几种&#xff0c;只不过有些题会用到高精度或者是要记录方案&#xff0c;所以整体来说…