事件门户——Elastic Agent Builder黑客马拉松
用于Elastic Agent Builder的事件门户+MCP服务器。AY弹性事件分类代理:ES | QL日志分析,创建/列出/关闭/重新打开票证。Vite、Firebase、Firestore。
轻量级 事件管理门户 演示为 Elasticsearch代理构建器黑客马拉松AI代理(例如带有ES|QL的弹性代理生成器)可以 创建、列出、关闭和重新打开 事故票通过 MCP风格集成;操作员使用简单的web UI来查看和管理它们。
堆栈: Vite(前端)、Firebase主机、Firestore、演示登录(admin/admin).MCP服务器作为 云功能 (与门户网站相同的URL)或 独立节点服务器.
______________________________________________________________________
演示指南
运行完整的AY弹性事件分类代理演示(日志分析→ 严重性/合规性→ 工单创建/关闭/重新打开),按照以下两个指南的顺序进行操作:
| 指南 | 链接 | 内容 |
|---|---|---|
| 演示流程 | 弹性事件分流代理/demo/demo_FLOW.md | 一步一步:重置Elasticsearch数据→ 生成生产日志→ 摄入Elasticsearch→ 验证计数→ 在Kibana运行代理→ 审查关键事件输出。 |
| 演示提示 | 弹性事件分诊剂/demo/demo_PROMPT.md | 代理的即贴提示:主要演示(日志分析+工单创建)、最新工单状态、使用CONFIRM关闭/重新打开事件,以及可选的跟进(深入了解、合规性、操作、执行摘要)。 |
订单: 使用 演示_流量.md 用于环境和数据设置;使用 DEMO_PROMPT.md 以便在代理聊天中键入确切的文本。打开门户查看代理创建或更新的事件。
生成演示日志(多事件)
该演示使用Elasticsearch中索引的类似生产环境的ERROR/WARN日志(logs-production-app).使用中的脚本生成它们 弹性事件分类代理/数据/:
| 什么 | 在哪里 |
|---|---|
| 脚本 | 弹性事件分类代理/data/generate_logs_multi_invent.py |
| 输出 | logs-production-app-multi-incident.ndjson (多事件、错误/警告、突发+传播模式) |
从项目根:
cd elastic-incident-triage-agent/data
python generate_latest_logs_multi_incident.py这创造了 原木生产-app-多事故.ndjson 具有多个事件ID(例如INC-CRIT-1001、INC-HIGH-2001),准备批量摄入Elasticsearch。然后使用 演示_流量.md (步骤3)摄入或跑步 弹性事件分类代理/scripts/ingest_logs.sh (套 ELASTIC_URL 和 API_KEY 对于您的集群)。
______________________________________________________________________
快速开始
| 目标 | 行动 |
|---|---|
| 门户用户界面 | 使用Firebase进行部署(请参阅 选项A)或奔跑 npm run dev.使用登录 管理员 / 管理员. |
| Kibana的MCP | 使用 选项A (一个部署:门户+MCP /mcp)或 选项B (奔跑 mcp服务器 单独)。 |
______________________________________________________________________
演示登录(门户)
| 字段 | 值 |
|---|---|
| 用户名 | admin |
| 密码 | admin |
登录状态存储在浏览器中(localStorage)。 仅演示 --没有Firebase身份验证或OAuth。
______________________________________________________________________
运行MCP服务器的两种方法
门户和MCP服务器 共享同一个Firestore incidents 收藏。为了让Elastic Agent Builder管理事件,请将Kibana的MCP连接器指向您的MCP端点。
| 选项A——云功能 | 选项B——独立服务器 | |
|---|---|---|
| 什么 | MCP作为Firebase云函数运行;托管服务于门户并重写 /mcp 功能。 | MCP作为Node.js服务器在 mcp-server/ (本地或任何主机)。 |
| 统一资源定位符 | 门户: https://YOUR_PROJECT.web.app/ ·MCP: https://YOUR_PROJECT.web.app/mcp | 门户:您的托管URL·MCP:例如。 http://localhost:3000/mcp 或您的服务器URL |
| 部署 | firebase deploy (托管+功能+Firestore规则)。 | 构建/部署门户;跑 cd mcp-server && npm start (或在其他地方部署mcp服务器)。 |
| 何时使用 | 最简单的黑客马拉松:一个仓库,一个部署,一个URL。需要Blaze计划。 | 本地开发或需要单独的MCP主机时。 |
| Kibana服务器URL | https://YOUR_PROJECT.web.app/mcp | http://your-mcp-host:3000/mcp (如果在TLS之后,则为https)。 |
这两个选项都公开了相同的工具: create_incident, list_incidents, close_incident, reopen_incident.合同: mcp-api.md.
______________________________________________________________________
选项A——同时部署门户+MCP(云功能)
- Firebase: 创建一个项目;启用 四大, 托管,以及 云功能 (火焰计划)。将Web应用程序配置添加到
.env(参见 设置). - MCP认证: 集 MCP_AUTH_SECRET 对于云功能(谷歌云控制台→ 云功能→ 主控程序 → Edit → 环境变量),例如。
openssl rand -hex 32MCP端点拒绝没有匹配标头的请求。 - 构建和部署:
npm run build
cd functions && npm install && cd ..
firebase deploy- 门户: 打开
https://YOUR_PROJECT.web.app/并使用登录 管理员 / 管理员. - Kibana: 堆栈管理→ 连接器→ 创建 主控程序 连接器 服务器URL =
https://YOUR_PROJECT.web.app/mcp以及HTTP标头Authorization: Bearer(或X-API-Key:).在Agent Builder中→ 工具,添加 创建事件, 事故列表, 接近事故, 重新打开事件。参见 弹性制造.md.
______________________________________________________________________
选项B——单独运行MCP服务器
- 门户: 按照以下步骤设置Firebase和门户 设置.部署主机或运行
npm run dev. - MCP服务器:
cd mcp-server
cp .env.example .env
# Set GOOGLE_APPLICATION_CREDENTIALS and MCP_AUTH_SECRET
npm install && npm startMCP: http://localhost:3000/mcp。客户端必须发送 Authorization: Bearer 或 X-API-Key: .
- Kibana: 使用以下命令创建MCP连接器 服务器URL =
http://localhost:3000/mcp(或您的MCP URL)和相同的身份验证标头。添加四个工具。看 mcp服务器/README.md 和 弹性制造.md.
______________________________________________________________________
设置(Firebase+门户)
1.安装依赖项
npm install2.创建Firebase项目
- Firebase控制台 → 创建或选择一个项目。
- 启用 四大 和 托管 (以及 云功能 对于选项A)。
- 项目设置→ 将军→ 您的应用程序→ add a Web 应用 并复制配置。
3.配置应用程序
创建 .env 在项目根目录中(Vite使用 VITE_-前缀变量):
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id4.部署Firestore规则(可选)
firebase deploy --only firestore:rules需要 firebase CLI和 firebase login.新项目: firebase use --add 并选择它。
______________________________________________________________________
本地开发
npm run dev打开显示的URL(例如。http://localhost:5173).使用登录 管理员 / 管理员。数据在Firestore中读/写 incidents.
______________________________________________________________________
建筑
Elastic Agent Builder (ES|QL + MCP tools)
↓ create_incident / list_incidents / close_incident / reopen_incident
MCP server (functions/ or mcp-server/) → Firestore `incidents`
Incident Portal (Vite) → same Firestore
↓
Operators view and manage tickets (admin/admin)- 门户: Vite应用程序;在UI中创建/列出/关闭/重新打开事件;收缩 mcp-api.md.
- MCP: 相同的工具和Firestore;云功能(功能/)或独立服务器(mcp服务器/).
______________________________________________________________________
弹性事件分类试剂
这 弹性事故分诊剂/ 文件夹是 AY弹性事件分类试剂 package:一个多步骤AI代理,使用Elasticsearch(ES|QL)进行日志分析,并使用该项目的MCP服务器进行事件生命周期(创建、列出、关闭、重新打开)。它旨在与此仓库(门户UI+MCP端点+Firestore)配合使用,以获得完整的演示。
代理文件夹中有什么
| 项目 | 描述 | |
|---|---|---|
| 弹性事件分类代理/README.md | 代理概述和主要功能。 | |
| 代理商/ | 复制到Elastic Agent Builder中: 代理说明.md (系统提示), mcp_tools.md (MCP使用)和ES | QL工具定义: 检索_最近事件_日志, 汇总_事件_by_id. |
| demo/ | 演示_流量.md --逐步(重置→ 生成日志→ 摄取→ 验证→ 运行代理)。 DEMO_PROMPT.md --准备粘贴主要演示、工单状态、使用CONFIRM关闭/重新打开以及可选后续操作的提示。 | |
| 数据/ | generate_tlatest_logs_multi_invent.py --生成 logs-production-app-multi-incident.ndjson (Elasticsearch的多事件错误/警告日志)。 | |
| 脚本/ | delete_data.sh, ingest_logs.sh, verify_count.sh --重置索引、批量摄取、验证计数(设置 ELASTIC_URL / API_KEY 对于您的集群)。 | |
| DEVPOST_DESCRIPTION.md | Devpost风格描述(灵感、功能、构建方式等)。 | |
| shortcut.example.sh | Elasticsearch和MCP的示例curl命令(仅限占位符)。 |
如何运行完整演示
- 门户+MCP: 部署或运行门户和MCP服务器(上述选项A或B)。确保Kibana的MCP连接器指向您的MCP URL并具有auth标头。在Agent Builder中添加四个MCP工具。看 弹性制造.md.
- Kibana代理商: 在Elastic agent Builder中创建代理。使用以下说明和ES|QL工具 弹性事件分诊代理/代理/;从连接器中添加MCP工具。
- 数据: 自 弹性事件分类代理/数据/,运行Python脚本生成NDJSON。摄入 弹性事件分类代理/scripts/ingest_logs.sh (或等效)到您的Elasticsearch中
logs-production-app指数。 - 运行: 跟随 弹性事件分流代理/demo/demo_FLOW.md 并使用中的提示 弹性事件分诊剂/demo/demo_PROMPT.md。打开门户查看代理创建或更新的事件。
______________________________________________________________________
项目布局
| 路径 | 目的 |
|---|---|
index.html | 条目HTML |
src/main.js | 应用程序:身份验证、事件、UI |
src/firebase.js | Firebase应用程序+Firestore |
src/auth.js | 演示登录(管理员/管理员,本地存储) |
src/incidents.js | Firestore:创建、列出、获取、更新、关闭、重新打开 |
src/styles.css | 样式 |
firestore.rules | Firestore规则(开放演示) |
firebase.json | 托管+重写+Firestore配置 |
mcp-api.md | MCP工具合同(创建/列出/关闭/重新打开) |
mcp-server/ | 独立MCP服务器 |
functions/ | 云功能:MCP /mcp |
elastic-incident-triage-agent/ | AY弹性事件分类代理(代理说明、演示、数据、脚本、Devpost) |
ELASTIC-AGENT-BUILDER.md | Kibana MCP连接器+代理生成器设置 |
FIREBASE-SETUP.md | Firebase项目设置详细信息 |
______________________________________________________________________
黑客马拉松笔记
- 弹性体生成器 可以分析日志(例如使用ES|QL),决定是否需要升级,并调用 创建事件 (以及列出/关闭/重新打开)通过MCP服务器,该服务器写入同一个Firestore
incidents收藏。操作员在门户中查看和管理门票。 - 演示身份验证 保持黑客马拉松设置简单(无OAuth);操作员使用admin/admin。
- 这 MCP工具 遵守合同
mcp-api.md并且被实现为Firestore读/写,在分析后可由AI代理调用。
______________________________________________________________________
许可证
麻省理工学院——见 许可证.
