1、简介
随着 AI Agent 和大模型应用的普及,企业对数据系统的要求正在发生变化:不再只是“查询数据”,而是“让 AI 直接使用数据系统”。
OpenSearch 在这一趋势下,引入了 MCP(Model Context Protocol),让 AI 可以以标准化方式直接访问索引、日志与集群能力。
OpenSearch MCP(Model Context Protocol)是一种 AI 与 OpenSearch 之间的标准交互协议。它的核心目标是:让大模型像调用函数一样,安全、标准化地使用 OpenSearch 的能力。
传统方式:
- AI → 写 DSL / API 请求 → OpenSearch
- 每个业务都要定制 Tool
MCP 方式:
- AI → MCP Tool(标准协议)→ OpenSearch
👉 OpenSearch 把能力“工具化”,AI 直接调用即可。
2、特点
- 标准化工具调用:把 OpenSearch 的能力统一封装成 Tool,让 AI 可以像调用函数一样使用搜索、查询和分析能力。
- 自动工具发现:AI 可以自动获取系统有哪些能力,无需人工写死 prompt 或接口配置。
- 安全可控:通过权限控制和 Tool 白名单机制,确保 AI 只能访问被允许的数据和索引。
- 支持流式输出:查询结果可以边生成边返回,适用于日志分析和实时数据场景。
- 解耦架构:AI 与 OpenSearch 通过 MCP 协议隔离,降低系统耦合,提高扩展能力。
3、使用场景
- 智能日志分析:AI 自动查询日志、聚合错误信息并定位问题原因,实现自动化 AIOps。
- 运维智能助手:通过自然语言查询 Kubernetes / 集群状态,替代复杂 kubectl 和 DSL 操作。
- 企业知识库问答:结合向量检索,实现企业文档语义搜索和智能问答系统。
- 业务数据分析:用于分析用户行为、业务指标和趋势数据,实现自动化数据洞察。
- AI Agent 自动化系统:AI 自动选择查询方式并完成分析闭环,实现无人值守的数据分析流程。
4、架构
OpenSearch MCP 架构整体可以理解为三层协作体系:
- 最上层是 AI Agent(如 Dify、LLM 或业务应用),负责理解用户的自然语言请求并进行任务拆解与决策;
- 中间层是 MCP Protocol,作为标准化工具中间件,负责工具注册、权限控制以及参数与结果的结构映射,相当于 AI 与数据系统之间的“翻译器与安全网关”;
- 底层是 OpenSearch 执行引擎,负责真正的数据处理与计算,包括索引搜索、日志分析以及向量检索等能力。
整体流程是 AI 先理解问题并选择工具,通过 MCP 完成安全与结构转换,最终由 OpenSearch 执行查询并返回结果,再由 AI 汇总生成最终回答,本质上是通过 MCP 将 AI 的决策能力与 OpenSearch 的数据能力标准化连接起来。
5、安装java
[root@master ~]# wget https://aka.ms/download-jdk/microsoft-jdk-17.0.19-linux-x64.tar.gz
[root@master ~]# echo 'export JAVA_HOME=/usr/local/jdk17' >> /etc/profile
[root@master ~]# echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
[root@master ~]# tar -xzvf microsoft-jdk-17.0.19-linux-x64.tar.gz
[root@master ~]# mv jdk-17.0.19+10 jdk17
[root@master ~]# mv jdk17 /usr/local/
[root@master ~]# source /etc/profile
[root@master ~]# java -version
openjdk version "17.0.19"2026-04-21 LTS
OpenJDK Runtime Environment Microsoft-13877132 (build 17.0.19+10-LTS)
OpenJDK 64-Bit Server VM Microsoft-13877132 (build 17.0.19+10-LTS, mixed mode, sharing)
6、安装opensearch
[root@master ~]# wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.19.2/opensearch-2.19.2-linux-x64.tar.gz
[root@master ~]# tar -xzvf opensearch-2.19.2-linux-x64.tar.gz
[root@master ~]# mv opensearch-2.19.2 opensearch
[root@master ~]# mv opensearch /usr/local/
[root@master ~]# useradd opensearch
[root@master ~]# chown -R opensearch:opensearch /usr/local/opensearch
# 为默认用户 "admin" 设置初始密码
exportOPENSEARCH_INITIAL_ADMIN_PASSWORD=K9s@OpS2026#
# 使用安全演示配置启动
./opensearch-tar-install.sh
# 测试
[root@master ~]# curl -X GET https://localhost:9200 -u 'admin:K9s@OpS2026#' --insecure
{
"name" : "master",
"cluster_name" : "opensearch",
"cluster_uuid" : "qMwE4qn_QVGY9f6l1QeDpw",
"version" : {
"distribution" : "opensearch",
"number" : "2.19.2",
"build_type" : "tar",
"build_hash" : "e0ba5eebfa3f060fc76e4e2b5b61193a19470d4f",
"build_date" : "2025-04-29T20:06:33.471315233Z",
"build_snapshot" : false,
"lucene_version" : "9.12.1",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}
7、安装opensearch-mcp
[root@master ~]# curl -LsSf https://astral.sh/uv/install.sh | sh
[root@master ~]# uv --version
[root@master ~]# uv python install 3.11
[root@master ~]# uv python list --only-installed
[root@master ~]# uvx --python=3.11 opensearch-mcp-server-py --transport sse --host 0.0.0.0 --port 9900
[root@master ~]# cat /etc/systemd/system/opensearch-mcp.service
[Unit]
Description=OpenSearch MCP Server (stream)
After=network.target
[Service]
Environment="OPENSEARCH_URL=https://127.0.0.1:9200"
Environment="OPENSEARCH_USERNAME=admin"
Environment="OPENSEARCH_PASSWORD=K9s@OpS2026#"
Environment="OPENSEARCH_SSL_VERIFY=false"
ExecStart=/root/.local/bin/uvx --python=3.11 opensearch-mcp-server-py --transport stream --host0.0.0.0 --port9900
Restart=always
[Install]
WantedBy=multi-user.target
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl restart opensearch-mcp.service
# 测试
[root@master ~]# curl http://172.16.15.127:9900/sse
event: endpoint
data: /messages/?session_id=d26234aeb52c4808aa35c6a8bcbf4cae
8、添加map
配置
服务端点 URL:http://172.16.15.127:9900/sse
名称和图标:opensearch-mcp
服务器标识符:opensearch-mcp
9、添加agent
创建空白应用
名称:opensearch超级助手
描述:OpenSearch超级助手是一种面向运维与数据分析场景的智能化能力增强工具,通常基于 OpenSearch 的检索与分析引擎能力,结合 AI 大模型或 MCP(Model Context Protocol)等技术,实现对日志、指标与链路数据的自然语言查询、智能分析与自动化运维操作。它可以将复杂的 DSL 查询、聚合分析和故障排查流程转化为“对话式交互”,帮助用户快速定位问题、生成分析报告,并在告警处理、集群巡检和性能优化等场景中提升效率,实现从“手动检索”到“智能问答+自动执行”的升级。
编排与工具
提示词:你是一个资深云原生日志分析与运维智能助手,可通过 MCP(Model Context Protocol)实时访问 OpenSearch 日志系统,具备 Kubernetes、微服务与分布式系统运维经验,能够对日志、指标与链路数据进行综合分析,实现故障定位、异常识别、趋势分析与根因推理,并提供可执行的排障建议。
你能够根据用户的自然语言问题自动生成 OpenSearch Query DSL,在多个索引(如 kubernetes-、app-、system-*)中进行日志检索与聚合分析,并支持关键词查询、时间范围过滤、字段筛选(如 pod、namespace、traceId、level 等)。同时可以根据上下文自动补全缺失条件,确保查询结果尽可能完整准确。
你能够对非结构化日志进行语义解析与结构化处理,提取异常类型、服务信息、Pod 状态、请求链路、状态码与耗时等关键字段,并识别重复模式、异常突增与周期性错误,将海量日志压缩为关键事件摘要,帮助快速定位问题核心。
你能够识别系统异常行为,如 5xx 激增、延迟飙升、服务崩溃、OOM、连接失败等,并结合 Kubernetes 状态信息进行关联分析,从应用层、网络层、存储层或资源层进行故障分类与影响范围评估。同时具备根因推理能力,可基于日志时间线与事件链路(traceId、requestId 等)推导最可能的故障来源,并在不确定时给出多种可能性。
最后,你能够提供具体可执行的运维建议,包括 kubectl 排查命令、OpenSearch 查询优化、服务重启、扩容方案与依赖检查路径,并对日志进行多维度聚合分析,识别趋势性问题与隐性风险,帮助用户快速恢复服务并预防潜在故障。
<!–注:工具选择对应的mcp–>
10、添加模型
11、选择模型
12、实战
声明:来自IT运维大爆炸,仅代表创作者观点。链接:https://eyangzhen.com/8402.html