使用 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.pswp.cn/web/10758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10758.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Harmony 添加library依賴庫步驟

在Harmony添加library依賴庫步驟如下&#xff1a; 1、在library中定義名字 在library中的oh-package.json5中定義library對外的名字是什么&#xff1a;格式是 “name”:“ohos/名字” {"name": "ohos/library_name" //名字 }2、在項目目錄build-profi…

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、基本…

僵尸進程111

Linux 系統中的進程可能處于如下狀態中的一種&#xff1a; D 不可中斷的休眠 I 空閑 R 運行中 S 休眠 T 被調度信號終止 t 被調試器終止 Z 僵尸狀態 Interruptible Sleep&#xff0c;可中斷睡眠&#xff0c;在 ps 命令中顯示 S。處在這種睡眠狀態的進程是可以通過給它…

OC中Block為什么不能為nil

在 Objective-C 中&#xff0c;向 nil 對象發送消息是完全有效的&#xff0c;這是因為 Objective-C 運行時對 nil 消息發送進行了特別的處理。當你向 nil 對象發送消息時&#xff0c;消息會被靜默地忽略&#xff0c;不執行任何操作&#xff0c;也不會返回任何值&#xff08;或者…

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;★★★★☆ 豐富性&…

您真的會高效使用 Mac 嗎?

文章目錄 屏幕的保養快捷鍵預覽修改文件名查看文件屬性搜索編輯復制&#xff0c;粘貼&#xff0c;剪切&#xff0c;撤銷刪除 跳轉窗口屏幕截圖聲音Dock強制退出查字典神奇的Option鍵鼠標與觸控板切換桌面與應用程序打開通知中心打開Mission Control 安裝與卸載Mac應用程序壓縮和…

記一些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…

python常用內置對象

1.字符串與字節串 對str 類型調用其encode()方法進行編碼得到byte字符串&#xff0c; 對byte字節串調用其encode&#xff08;&#xff09;方法并指定正確的編碼格式得到str字符串 “房地產”&#xff0c;encode("utf-8") #對中文進行編碼-.decode("u…

【自然語言處理】【大模型】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.…

面試題-實例

1.什么是線程池&#xff1f; 線程池就是事先將創建好的線程進行整合&#xff0c;當需要使用的時候&#xff0c;直接拿出來進行使用&#xff0c;不用現去創建&#xff0c;可以節約開辟的時間&#xff0c;提高效率。 2.線程池有哪些種類&#xff1f; 在java.util.concurrent.Ex…

EPAI手繪建模APP工程圖頂部工具欄

7、工程圖 圖 302 工程圖 工程圖包括頂部常用工具欄、右側工程圖工具欄、左側模型列表欄、中間的工程圖。 (1) 常用工具欄 ① 刪除&#xff0c;選中場景中工程圖元素后&#xff0c;刪除。可以選擇多個工程圖元素同時刪除。 ② 設置&#xff0c;打開工程圖設置頁面&#xff0…