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,不随会话切换而改变范围。
羽毛球分组比赛记分
小程序二维码

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

小夜