事件管理门户

一个轻量级的事件管理门户,用于Elasticsearch Agent Builder Hackathon,支持通过AI代理创建、列出、关闭和重新打开事件票证,操作员可通过简单的Web UI查看和管理。

  • by aminyuddin
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 aminyuddin/ay-elastic-incident-triage-agent

使用说明

事件门户——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弹性事件分类试剂 package——代理指令、ES|QL工具定义、演示流程、演示提示、日志生成脚本和Devpost材料。使用此门户和MCP服务器进行完整演示。看 弹性事件分类试剂 在......下面


演示指南

运行完整的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(云功能)

  1. Firebase: 创建一个项目;启用 四大, 托管,以及 云功能 (火焰计划)。将Web应用程序配置添加到 .env (参见 设置).
  2. MCP认证: 集 MCP_AUTH_SECRET 对于云功能(谷歌云控制台→ 云功能→ 主控程序 → Edit → 环境变量),例如。 openssl rand -hex 32MCP端点拒绝没有匹配标头的请求。
  3. 构建和部署:
    npm run build
    cd functions && npm install && cd ..
    firebase deploy
    
  4. 门户: 打开 https://YOUR_PROJECT.web.app/ 并使用登录 管理员 / 管理员.
  5. Kibana: 堆栈管理→ 连接器→ 创建 主控程序 连接器 服务器URL = https://YOUR_PROJECT.web.app/mcp 以及HTTP标头 Authorization: Bearer <your-MCP_AUTH_SECRET> (或 X-API-Key: <your-MCP_AUTH_SECRET>).在Agent Builder中→ 工具,添加 创建事件, 事故列表, 接近事故, 重新打开事件。参见 弹性制造.md.

选项B——单独运行MCP服务器

  1. 门户: 按照以下步骤设置Firebase和门户 设置.部署主机或运行 npm run dev.
  2. MCP服务器:
    cd mcp-server
    cp .env.example .env
    # Set GOOGLE_APPLICATION_CREDENTIALS and MCP_AUTH_SECRET
    npm install && npm start
    
    MCP: http://localhost:3000/mcp。客户端必须发送 Authorization: Bearer <secret> 或 X-API-Key: <secret>.
  3. Kibana: 使用以下命令创建MCP连接器 服务器URL = http://localhost:3000/mcp (或您的MCP URL)和相同的身份验证标头。添加四个工具。看 mcp服务器/README.md 和 弹性制造.md.

设置(Firebase+门户)

1.安装依赖项

npm install

2.创建Firebase项目

  1. Firebase控制台 → 创建或选择一个项目。
  2. 启用 四大 和 托管 (以及 云功能 对于选项A)。
  3. 项目设置→ 将军→ 您的应用程序→ 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-id

4.部署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
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命令(仅限占位符)。

如何运行完整演示

  1. 门户+MCP: 部署或运行门户和MCP服务器(上述选项A或B)。确保Kibana的MCP连接器指向您的MCP URL并具有auth标头。在Agent Builder中添加四个MCP工具。看 弹性制造.md.
  2. Kibana代理商: 在Elastic agent Builder中创建代理。使用以下说明和ES|QL工具 弹性事件分诊代理/代理/;从连接器中添加MCP工具。
  3. 数据: 自 弹性事件分类代理/数据/,运行Python脚本生成NDJSON。摄入 弹性事件分类代理/scripts/ingest_logs.sh (或等效)到您的Elasticsearch中 logs-production-app 指数。
  4. 运行: 跟随 弹性事件分流代理/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代理调用。

许可证

麻省理工学院——见 许可证.