前言¶
在 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_URLALERTMANAGER_URLKUBECONFIGKUBERNETES_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
注意事項¶
- 權限要求:Kubernetes 集成使用只讀 kubeconfig,不強制要求
kubectl命令行工具,但需滿足基本的只讀 RBAC 能力。 - pnpm 配置:使用 pnpm 10+ 時,必須正確配置
pnpm-workspace.yaml中的allowBuilds條目,否則安裝會失敗。 - DSH 版本:必須使用
@deepseek-ai/dsh@0.1.2-rc.1版本,否則插件可能無法正常工作。 - Portal 範圍:Portal 始終讀取
AIOPS_WORKSPACE,不隨會話切換而改變範圍。