DSH AIOps:面向 Kubernetes 的智能運維插件

前言

在 DSH(DeepSeek Harness)生態中,構建面向 Kubernetes 的智能運維能力通常需要集成多個獨立的工具鏈。現有的做法往往分散了告警處理與故障診斷的流程。dsh-aiops 插件旨在解決這一問題,它將告警接入、故障診斷、路由策略與可觀測能力整合爲一個統一的 DSH 工作流插件。

插件定位

dsh-aiops 是一個面向 Kubernetes 的智能運維繫統插件,由 jarvan1 維護。它提供了 Alertmanager 驅動的只讀故障診斷能力,集成了結構化故障報告、工作區範圍的歷史審計以及專用的 AIOps Portal。

核心功能

該插件主要包含以下能力:

  • Alertmanager 驅動診斷:基於 Alertmanager 事件驅動故障診斷流程。
  • 身份驗證入口:提供經過身份驗證的 Webhook 入口,用於接收告警。
  • 會話路由:支持指紋到會話的路由,包含持久隊列和資源預算管理。
  • 查詢窗口:提供告警時間查詢窗口,輔助診斷。
  • 技能包:打包了 aiops-diag 技能。
  • 動態數據源:支持動態選擇 Alertmanager、Prometheus 和 Kubernetes 的可觀測能力。
  • 運維反饋:支持僅追加的運維人員反饋機制。
  • 審計與報告:提供結構化故障報告和工作區範圍的歷史/路由審計。

安裝與啓用

安裝前需確認環境滿足依賴要求。

環境依賴

  • DSH 版本:@deepseek-ai/dsh@0.1.2-rc.1
  • Node.js 版本:^22.19.0 或 >=24.0.0
  • pnpm 版本:>=10

安裝命令

在已配置 DSH Web Profile 的環境中,執行以下命令安裝插件:

dsh plugin --profile web add github:jarvan1/dsh-aiops

若未全局配置 DSH,可使用 npx 直接調用匹配的 CLI 版本:

npx -y @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add github:jarvan1/dsh-aiops

pnpm 版本兼容性

如果使用 pnpm 10 或更高版本,Git 依賴的 prepare 腳本可能會被阻止。安裝失敗時會打印 allowBuilds 鍵。請複製該確切的鍵到 DSH Web Profile 的 pnpm-workspace.yaml 文件中(通常位於 ~/.dsh/profiles/web/pnpm-workspace.yaml):

allowBuilds:
  'dsh-aiops@https://codeload.github.com/jarvan1/dsh-aiops/tar.gz/<resolved-commit-sha>': true

安裝完成後請重啓 DSH。

配置與使用

插件安裝後,需配置相關環境變量以連接可觀測數據源。

基礎配置

以下環境變量提供了可選的默認組合,並可在 DSH 的 AIOps 數據源設置中持久化或覆蓋:

  • PROMETHEUS_URL
  • ALERTMANAGER_URL
  • KUBECONFIG
  • KUBERNETES_CONTEXT

工作流配置

配置自動化工作流需要以下憑證:

  • AIOPS_WORKSPACE:定義工作區範圍。
  • AIOPS_ALERTMANAGER_WEBHOOK_SECRET:Alertmanager Webhook 的密鑰。

Webhook 監聽

Webhook 默認監聽本地地址 127.0.0.1:3081/alertmanager。如果 Alertmanager 無法訪問該本地地址,需通過環境變量 AIOPS_WEBHOOK_PUBLIC_URL 覆蓋監聽地址。

AIOps Portal

在 DSH Web 界面中,通過側邊欄底部的持久化 AIOps 操作打開專用 Portal。該 Portal 僅讀取 AIOPS_WORKSPACE,不會根據當前選中的聊天會話擴大查詢範圍。Prometheus/Alertmanager 的 URL 以及 kubeconfig 路徑/上下文均持久化在 DSH 用戶設置中。

開發與調試

本地開發

在本地開發時,需設置 DSH_HOME 環境變量,並使用 link 方式安裝插件:

DSH_HOME=/path/to/profile-home pnpm dsh plugin --profile web add link:/path/to/dsh-aiops/packages/aiops

構建與測試

在項目根目錄執行以下命令進行類型檢查和測試:

pnpm install --offline
pnpm run typecheck
pnpm test

構建插件包的命令爲:

pnpm run pack:bundle

注意事項

  1. 權限要求:Kubernetes 集成使用只讀 kubeconfig,不強制要求 kubectl 命令行工具,但需滿足基本的只讀 RBAC 能力。
  2. pnpm 配置:使用 pnpm 10+ 時,必須正確配置 pnpm-workspace.yaml 中的 allowBuilds 條目,否則安裝會失敗。
  3. DSH 版本:必須使用 @deepseek-ai/dsh@0.1.2-rc.1 版本,否則插件可能無法正常工作。
  4. Portal 範圍:Portal 始終讀取 AIOPS_WORKSPACE,不隨會話切換而改變範圍。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜