项目简介
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 进行安装。
- 安装 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 - 添加 Flanksource Helm 仓库:
helm repo add flanksource https://flanksource.github.io/charts helm repo update - 配置 '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 - 部署 Mission Control: 使用 Helm 部署到 Kubernetes 集群:
这将创建一个名为 'incident-commander' 的命名空间,并将 Mission Control 及其依赖项部署到其中。helm install incident-commander-demo --wait -n incident-commander --create-namespace flanksource/incident-commander -f values.yaml
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)
信息
分类
开发者工具