日志分析服务器

一个用于自动化分析Symphony VMS日志文件的模型上下文协议(MCP)服务器,为AI助手提供诊断错误、比较测试运行、跟踪进程健康和识别性能问题的工具。

  • by senstar
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 senstar/symphony-log-mcp

使用说明

Symphony日志MCP服务器

用于Symphony VMS日志文件自动分析的模型上下文协议(MCP)服务器。该服务器为AI助手提供了强大的工具,用于诊断错误、比较测试运行、跟踪流程健康状况以及识别Symphony部署中的性能问题。

当前版本:2.3.0

什么是MCP?

模型上下文协议 是一个开放标准,使人工智能助手能够安全地访问外部工具和数据源。该服务器实现了MCP,为AI助手提供了分析Symphony日志的专门功能。

特性

  • 自动分诊 -单调用优先诊断,与优先发现并行运行运行状况、错误、生命周期和事件日志检查
  • 并排日志比较 -比较两个版本或环境,自动检测固定/新/更改的错误模式
  • 错误模式分析 -指纹和重复数据消除错误,具有全栈跟踪提取功能
  • 过程健康监测 -从sccp日志中检测崩溃循环、重启和内存趋势
  • 服务生命周期跟踪 -查找启动/停止/重启事件,诊断重启原因,并检测日志间隙
  • HTTP和慢速请求分析 -通过分组、速率直方图和阈值检测进行统一的HTTP+RPC慢速请求分析
  • 视频管道健康状况 -摄像头连接/断开、丢帧、编解码器错误、录制间隙
  • 存储管理 -磁盘空间警告、保留强制、清洁周期跟踪
  • 报警和事件规则 -报警触发器、通知传递、规则评估失败
  • 网络连接 -超时、连接被拒绝、重试、所有服务的DNS问题
  • 访问控制集成 -门事件、同步状态、面板通信故障
  • 用户权限解析 -具有拒绝覆盖授予逻辑、组审核跟踪的有效权限
  • UI线程冻结检测 -WPF/WinForms UI线程分析,具有可配置的冻结阈值
  • Bug报告包支持 -自动提取和分析多服务器错误报告ZIP
  • 数据库表解析 -从错误报告SQL转储中提取摄像头、服务器、用户和许可证配置
  • 硬件配置 -来自serverinfo.txt的CPU、RAM、磁盘、NIC详细信息
  • 领域知识资源 -MCP资源提供日志格式规范、服务图和诊断手册
  • 农场范围分析 -多服务器仪表板、跨服务器错误聚合、拓扑映射、摄像头状态
  • 身份验证分析 -登录失败、会话跟踪、Active Directory事件
  • 数据库健康监控 -SQL连接中断、池耗尽、恢复跟踪
  • 服务器间通信 -心跳监测、连接故障检测、服务器拓扑映射
  • 硬件综合 -研华/ADAM模块、串行端口、IO设备监控

安装

先决条件

  • Node.js v18或更新版本
  • MCP兼容客户端(Claude Desktop、VS Code with GitHub Copilot等)

设置

git clone https://github.com/senstar/symphony-log-mcp.git
cd symphony-log-mcp
npm install
npm run build

配置

克劳德桌面

将此服务器添加到您的Claude Desktop配置文件中:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "symphony-logs": {
      "command": "node",
      "args": ["/path/to/symphony-log-mcp/dist/index.js"]
    }
  }
}

可选地将日志目录作为第一个CLI参数传递,或通过 LOG_DIR 环境变量来预配置会话。否则,请致电 sym_open 在每个会话开始时,指向要分析的日志目录。

安全注意事项: 没有默认日志目录。以前的版本默认为 C:\Log,它可以从实时生产服务器连接中静默读取。现在必须显式设置目录。

VS代码与GitHub Copilot

添加 .vscode/mcp.json 在您的工作空间中:

{
  "mcpServers": {
    "symphony-logs": {
      "command": "node",
      "args": ["${workspaceFolder}/tools/symphony-log-mcp/dist/index.js"]
    }
  }
}

然后打电话 sym_open 使用目录路径开始分析日志。每个工具还接受一个可选 logDir 用于在不更改会话的情况下对不同目录进行一次性分析的参数。

用法

配置后,您可以向AI助手提出自然语言问题,例如:

  • “比较测试133和138的日志,并总结差异”
  • “信息服务日志中最常见的错误是什么?”
  • “对这个bug报告进行分类,告诉我出了什么问题”
  • “显示此错误报告的进程运行状况”
  • “查找所有超过5秒的慢速请求”
  • “是否有任何日志空白表明服务中断?”
  • “显示内存趋势——是否有进程泄漏?”
  • “是什么导致InfoService在14:23重新启动?”

AI助手将自动调用相应的MCP工具并为您解释结果。

可用工具(26)

所有工具都使用 sym_ 前缀便于查找。

工具 说明
sym_open 先打电话。 设置此会话的日志目录。接受目录或错误报告文件夹的绝对路径。再次呼叫以切换目录。
sym_triage 自动首过诊断--并行运行运行状况、错误、生命周期和事件日志检查,返回优先结果
sym_info Bug报告元数据、列表日志文件、解码前缀、硬件配置(操作: bug_report
sym_search 搜索错误、文本/正则表达式模式、计数出现次数或证明不存在(模式: errors
sym_crashes 提取物。NET异常或本机C++崩溃转储(模式: managed
sym_lifecycle 服务启动/停止/重启事件、进程级PID跟踪或日志间隙检测(模式: services
sym_timeline 按时间顺序合并日志、跟踪RPC调用或集群模式匹配到时间波中(模式: correlate
sym_http 具有慢速请求检测的统一HTTP+RPC请求分析(模式: requests
sym_ui_thread 通过多文件支持、可配置的冻结阈值和时间过滤检测UI线程冻结和死锁
sym_health 来自sccp日志的健康仪表板或内存/CPU趋势(模式: dashboard
sym_compare 两个日志目录的并排差异(错误、生命周期、健康状况、http、速度慢)
sym_db_tables (仅Bug报告) 解析数据库表转储(模式: summary
sym_video_health 视频管道健康状况:摄像头连接/断开、丢帧、编解码器错误、录制间隙(模式: summary
sym_storage 磁盘/存储管理:空间警告、保留、清理周期(模式: summary
sym_alarms 报警和事件规则处理:触发器、通知、规则失败(模式: summary
sym_network 网络连接:超时、重试、连接被拒绝、DNS(模式: summary
sym_access_control 门禁集成:门、凭证、同步、面板通信(模式: summary
sym_permissions (仅Bug报告) 使用完整的审核跟踪解决有效的用户权限(模式: resolve
sym_system (仅Bug报告) 来自补充文件的系统诊断(模式: overview
sym_event_log (仅Bug报告) 解析Windows事件日志导出——崩溃、驱动程序故障、。NET运行时错误(模式: entries
sym_farm 跨多个服务器日志包的农场范围分析(模式: dashboard
sym_auth IS日志中的身份验证和会话事件(模式: summary
sym_db_health IS日志中的数据库连接和运行状况——中断、SQL异常、池耗尽(模式: summary
sym_cameras 跟踪器(cs*)日志中的摄像头清单和状态(模式: inventory
sym_interserver 来自IS日志的服务器间通信——心跳、连接失败、代理错误(模式: summary
sym_hw 硬件集成事件——研华/ADAM、串行端口、IO模块(模式: summary

资源

服务器向AI调用者公开一个MCP资源:

资源URI 描述
symphony://domain-knowledge Symphony VMS架构、日志格式规范、服务依赖关系图、诊断手册和已知错误签名。AI调用者应在会话开始时阅读一次此内容。

有关详细的参数文档,请参阅MCP客户端中的工具说明。

直接调用(高级)

虽然此服务器是为MCP客户端设计的,但您可以直接调用它进行测试:

echo '{"method":"tools/call","params":{"name":"sym_compare","arguments":{"dirA":"C:/Logs/133","dirB":"C:/Logs/138"}}}' | node dist/index.js

贡献

欢迎拉取请求!请确保代码记录良好并经过测试。

许可证

麻省理工学院