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

news2024/11/17 19:49:25

作者: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.coloradmin.cn/o/1662653.html

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

相关文章

【35分钟掌握金融风控策略18】贷前风控策略详解-3

目录 ​编辑 贷前风控数据源 第三方数据 贷前风控数据源 第三方数据 在金融风控过程中&#xff0c;金融机构通常会引入一些第三方的风控数据&#xff08;或第三方金融技术&#xff09;来辅助识别贷款个人或贷款企业的风险状况&#xff0c;帮助金融机构进行风控决策&#x…

MySQL·表的内外连接

目录 表的内连和外连 内连接 案例1&#xff1a;显示SMITH的名字和部门名 外连接 左外连接 案例2&#xff1a; 查询所有学生的成绩&#xff0c;如果这个学生没有成绩&#xff0c;也要将学生的个人信息显示出来 右外连接 案例3&#xff1a;对stu表和exam表联合查询&#…

【话题】你用过最好用的AI工具有那些

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景一、C知道二、CSDN工具集三、AI工具的普及与受欢迎程度四、AI工具的实际应用与影响五、总结与展望文章推荐 背景 探讨人们在使用AI工具时&#xff0c;最喜欢的和认…

栈和队列初级题目(包含四个题)

目录 一、原题链接&#xff1a; 二、有效的括号&#xff1a; ​编辑代码实现&#xff1a; 三、用队列实现栈&#xff1a; 四、用栈实现队列&#xff1a; 五、设计循环队列&#xff1a; 六、读书分享&#xff1a; 一、原题链接&#xff1a; 20. 有效的括号 225. 用队列实…

Linux 进程信号【信号产生】

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux知识分享⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d; 目录 前言 信号概念 1. 生活角度的信号 2…

线性代数的一些理解(更新中)

以前学的时候都是囫囵吞枣&#xff0c;能搞过就得了。现在有了点时间可以静下来看看。。 还是分成点来看吧。 1 小车运行 一个车匀速在一维坐标前行&#xff0c;速度是2米每秒&#xff0c;起始点是0。如何描述 设 &#x1d465;(&#x1d461;) 表示车辆在时间 &#x1d461…

为什么要进行金融类软件测试

金融类软件测试是确保金融软件质量、安全性和稳定性的关键步骤。随着金融行业信息化和数字化的深入发展&#xff0c;金融软件的应用范围日益广泛&#xff0c;涉及资金交易、客户信息管理、风险控制等多个方面。 因此&#xff0c;进行金融类软件测试显得尤为重要&#xff0c;以…

力扣HOT100 - 155. 最小栈

解题思路&#xff1a; 辅助栈 class MinStack {private Stack<Integer> stack;private Stack<Integer> min_stack;public MinStack() {stack new Stack<>();min_stack new Stack<>();}public void push(int val) {stack.push(val);if (min_stack.i…

24数维杯ABC题思路已更新!!!!

24数维杯A题保姆级思路&#xff0b;配套代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710639/ 24数维杯B题保姆级思路&#xff0b;可执行代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710640/ 24数维杯C题保姆级思路&#xff0b;可执…

[AutoSar]BSW_Com021单帧 首帧 流控帧 连续帧 详解

目录 关键词平台说明一、N_PDU和N_PCI二、单帧三、首帧四、流控帧五、连续帧六、case 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c; EB芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (…

2024全新小狐狸AI免授权源码

源码安装说明&#xff1a; 下 载 地 址 &#xff1a; runruncode.com/php/19757.html 1. 在宝塔新建一个站点&#xff0c;选择 PHP 版本为 7.2、7.3 或 7.4。将压缩包上传到站点的根目录&#xff0c;并设置运行目录为 /public。 2. 导入数据库文件&#xff0c;该文件位于 …

【JVM】从三种认知角度重识JVM

目录 JVM概述 JVM主要功能 虚拟机是Java平台无关的保障 JVM概述 JVM&#xff1a;Java Virtual Machine,也就是Java虚拟机。 虚拟机&#xff1a;通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统&#xff08;物理上不存在&#xff09;。 JVM通…

求一个B站屏蔽竖屏视频的脚本

求一个B站屏蔽竖屏视频的脚本 现在B站竖屏竖屏越来越多了&#xff0c;手机还好点给我一个按钮&#xff0c;选择不喜欢&#xff0c;但是我一般都用网页版看视屏&#xff0c;网页版不给我选择不喜欢的按钮&#xff0c;目测大概1/4到1/3的视频都是竖屏视频。 目前网页版唯一的进…

【数据库】数据库指令

一。数据库打开 1.命令行 2.进入mysql mysql -uroot -p密码 3.退出 exit&#xff1b; 二。针对数据库的操作 1.创建数据库&#xff08;有分号&#xff09; create database student; 2.使用数据库 use student 3.删除数据库&#xff08;有分号&#xff09; drop database…

回归预测 | Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测

回归预测 | Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测 目录 回归预测 | Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现SMA-GPR黏菌算法优化高斯过程回归多变量回归预测 1.Matlab实现…

【Redis】用户登录校验

对于用 redis 对用户进行登录校验&#xff0c;大致可分为以下六步&#xff1a; 首先通过查询数据库来查找具有提供的用户名、密码和delFlag值为0的用户。如果未找到用户&#xff0c;则抛出一个带有消息"用户不存在"的ClientException&#xff08;用户不存在&#xf…

能远程一起观看电影和直播的SyncTV

什么是 SyncTV &#xff1f; SyncTV 是一个允许您远程一起观看电影和直播的程序。它提供了同步观看、剧院和代理功能。使用 SyncTV&#xff0c;您可以与朋友和家人一起观看视频和直播&#xff0c;无论他们在哪里。SyncTV 的同步观看功能确保所有观看视频的人都在同一点上。这意…

Java刷题-基础篇

目录 题目1&#xff1a;打印1~100内奇数和、偶数和 题目2&#xff1a;计算5的阶乘 题目3&#xff1a;计算 1!2!3!4!5! 的和 题目4&#xff1a;找1~100之间即能被3整除&#xff0c;又能被5整除的数字&#xff0c;要求必须使用break/continue 题目5&#xff1a;实现猜数字小…

陪玩系统APP小程序H5音视频社交系统陪玩系统源码,陪玩app源码,陪玩源码搭建陪玩社交系统开发(现成,可定制)线下陪玩系统项目开发搭建

线下陪玩系统项目的设计 在需求分析完成后&#xff0c;接下来进行系统设计。系统设计主要包括以下几个部分&#xff1a; 1. 数据库设计&#xff1a;根据需求分析的结果&#xff0c;设计数据库结构&#xff0c;包括用户信息表、服务信息表、订单信息表等。 2. 界面设计&#…

Java设计模式 _行为型模式_命令模式

一、命令模式 1、命令模式 命令模式&#xff08;Command Pattern&#xff09;是一种行为型模式&#xff0c;一种数据驱动的设计模式。命令模式中请求以命令的形式包裹在对象中&#xff0c;即将命令封装为类&#xff0c;从而可以使用不同的请求&#xff0c;队列等操作具体的对象…