项目简介

Mission Control (Incident Commander) 是一个为企业、托管服务提供商和SaaS提供商设计的任务控制中心。它通过聚合来自监控、APM、日志、配置和变更等多个数据源的信息,提供对基础设施、应用程序和云环境的统一视图。同时,它实现了事件生命周期自动化,根据系统健康状况自动创建和关闭工单。更重要的是,Mission Control 集成了Model Context Protocol (MCP) 服务器功能,将这些运维能力和数据以标准化的方式暴露给大型语言模型 (LLM) 客户端,从而实现AI驱动的智能运维和交互。

主要功能点

  • 统一可观察性: 汇聚监控、日志、APM、配置和变更数据,提供全面的系统健康视图。
  • 事件生命周期自动化: 根据系统健康状态自动管理事件工单的创建和关闭。
  • 资源管理 (MCP): 托管和提供对连接、编排手册(Playbooks)、视图、配置项、制品等运维资源的访问能力。
  • 工具调用 (MCP): 允许LLM执行外部功能,例如:
    • 健康检查: 搜索、获取状态、立即运行健康检查。
    • 目录管理: 搜索配置项、查找变更、获取相关配置、列出配置类型。
    • 编排手册: 列出所有编排手册、获取近期/失败运行、执行编排手册。
    • 连接管理: 列出所有连接。
    • 通知管理: 获取通知详情、获取资源通知历史。
    • 制品管理: 读取制品元数据和内容。
    • 视图管理: 列出所有视图、获取视图数据、运行视图。
  • Prompt 模板 (MCP): 提供预定义的Prompt模板,如查询不健康目录项、排查Kubernetes资源故障,支持LLM进行更智能的交互。
  • 多源数据聚合: 从AWS、Kubernetes、Git、SQL等多种来源扫描和聚合配置信息。

安装步骤

Mission Control 推荐使用 Helm 进行安装。

  1. 安装 Helm: 如果尚未安装,请运行以下命令安装最新版本的 Helm:
    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
    chmod 700 get_helm.sh
    ./get_helm.sh
  2. 添加 Flanksource Helm 仓库:
    helm repo add flanksource https://flanksource.github.io/charts
    helm repo update
  3. 配置 'values.yaml' 文件: 根据您的环境需求创建或修改 'values.yaml'。至少需要配置 PostgreSQL 数据库(可以由 Helm Chart 管理或连接现有数据库)以及 Flanksource UI 的 Ingress。同时,Canary Checker 和 Config DB 会作为子 Chart 自动安装,它们也需要正确的数据库配置。 例如,一个基本的 'values.yaml' 配置示例:
    db:
      create: true # 让 Helm Chart 创建并管理 PostgreSQL 数据库
      storageClass: default # 指定存储类
      storage: 30Gi # 指定存储大小
    flanksource-ui:
      ingress:
        host: incident-commander.yourdomain.com # 您的UI访问域名
        annotations:
          kubernetes.io/ingress.class: nginx
          kubernetes.io/tls-acme: "true"
        tls:
          - secretName: incident-commander-tls
            hosts:
            - incident-commander.yourdomain.com
  4. 部署 Mission Control: 使用 Helm 部署到 Kubernetes 集群:
    helm install incident-commander-demo --wait -n incident-commander --create-namespace flanksource/incident-commander -f values.yaml
    这将创建一个名为 'incident-commander' 的命名空间,并将 Mission Control 及其依赖项部署到其中。

MCP服务器配置 (针对LLM客户端)

Mission Control 的 MCP 服务器通过 HTTP 暴露。您的LLM客户端需要配置以下信息以连接到 Mission Control MCP 服务器。

例如,在 'Claude' LLM客户端的配置文件 ('$HOME/.config/Claude/claude_desktop_config.json') 中,您可以添加以下 'mcpServers' 配置:

{
  "mcpServers": {
    "mission-control": {
      // command: 用于启动 MCP 远程代理的命令,此代理负责与 Mission Control 的 HTTP MCP 端点通信。
      "command": "npx",
      // args: 传递给启动命令的参数。mcp-remote 是一个工具,它将 Mission Control 的 HTTP MCP 端点 (例如 http://127.0.0.1:8080/mcp) 暴露为 MCP 客户端可用的流式接口。
      // 请确保替换为 Mission Control MCP 服务的实际可访问地址。
      "args": [
        "mcp-remote",
        "http://127.0.0.1:8080/mcp"
      ]
    }
  }
}

请注意:'http://127.0.0.1:8080/mcp' 是一个示例地址。您需要将其替换为 Mission Control 部署后实际的 MCP HTTP 端点。

基本使用方法 (针对LLM客户端)

一旦LLM客户端配置并连接到 Mission Control MCP 服务器,您就可以通过自然语言向LLM提问,利用Mission Control提供的各种资源、工具和Prompt。LLM会根据您的意图,自动调用相应的MCP工具或请求资源,并返回运维数据和执行结果。 例如,您可以尝试询问LLM:

  • "列出所有不健康的Kubernetes部署。" (LLM可能调用 'search_catalog' 工具)
  • "获取ID为 'xxx' 的健康检查的最近状态。" (LLM可能调用 'get_check_status' 工具)
  • "运行一个名为 'my_fix_playbook' 的编排手册,其 'config_id' 是 'yyy'。" (LLM可能调用动态生成的编排手册工具)
  • "帮我排查一下最近不健康的Kubernetes资源。" (LLM可能调用 'troubleshoot_kubernetes_resource' Prompt)

信息

分类

开发者工具