Logstash Mcp Server

Logstash Mcp Server

🚀 Logstash MCP 服务器

这是一个用于与 Logstash 实例进行交互的模型上下文协议(MCP)服务器。该服务器提供了全面的工具,用于监控和确定 Logstash 实例的性能瓶颈。

🚀 快速开始

运行 Web UI

  1. 启动 Web 界面:
python3 web_ui.py
  1. 打开浏览器并访问:
http://localhost:5001

✨ 主要特性

监控工具

  • 节点信息:获取 Logstash 版本、构建信息和设置。
  • 节点统计:JVM、进程和管道指标。
  • 管道统计:监控单个或所有管道的性能。
  • 热点线程:通过线程分析调试性能问题。
  • 健康检查:进行全面的健康评估并提供建议。
  • 连接检查:详细诊断与 Logstash 的连接情况。

管理工具

  • 管道重新加载:重新加载特定的管道配置。
  • 插件列表:查看所有已安装的 Logstash 插件。
  • JVM 统计:详细的内存和垃圾回收指标。
  • Grok 模式:列出可用于日志解析的 Grok 模式。

📦 安装指南

  1. 安装依赖项:
pip install -r requirements.txt
  1. 设置环境变量(可选):
export LOGSTASH_API_BASE="http://your-logstash-host:9600"

💻 使用示例

基础用法

# MCP 服务器将自动分析:
# - JVM 内存使用情况
# - 管道性能
# - 队列统计
# - 提供优化建议

高级用法

# 监控特定管道性能
# 获取详细统计信息以进行故障排除
# 跟踪事件处理速率和错误

性能调试

# 使用热点线程分析来识别瓶颈
# 监控 JVM 统计信息以查找内存问题
# 跟踪管道路队列使用情况

📚 详细文档

Web UI 功能

  • 交互式仪表板:可视化界面,可访问所有 Logstash 监控工具。
  • 实时监控:检查连接性、节点统计信息和管道性能。
  • 健康分析:全面的健康检查,提供可视化反馈。
  • 管道管理:查看单个或所有管道的统计信息。
  • 性能调试:热点线程分析和 JVM 统计信息。
  • 插件管理:浏览已安装的 Logstash 插件。

Web UI 配置

Web UI 使用与 MCP 服务器相同的配置:

  • 默认 Logstash URL:http://localhost:9600
  • 可使用 LOGSTASH_API_BASE 环境变量进行覆盖
  • Web 界面运行地址:http://localhost:5001

自定义 Logstash URL 示例:

export LOGSTASH_API_BASE="http://your-logstash-host:9600"
python3 web_ui.py

可用工具(共 12 个)

logstash_check_connectivity

检查与 Logstash 实例的连接,提供详细的连接状态、响应时间和错误处理信息。

  • 返回:连接状态、URL、版本、主机、响应时间、错误详情和故障排除建议

logstash_node_info

获取 Logstash 节点信息,包括版本、构建信息和设置。

logstash_node_stats

获取全面的节点统计信息,包括 JVM、进程和管道指标。

  • 参数:human(布尔值,默认:true)

logstash_pipelines_stats

获取所有 Logstash 管道的统计信息。

  • 参数:human(布尔值,默认:true)

logstash_pipeline_stats

获取特定管道的统计信息。

  • 参数:id(字符串,必需),human(布尔值,默认:true)

logstash_hot_threads

获取热点线程信息,用于调试性能问题。

  • 参数:threads(整数,默认:3),human(布尔值,默认:true)

logstash_plugins

列出所有已安装的 Logstash 插件。

check_backpressure

检查队积压指标,以监控管道性能和拥塞情况。

  • 参数:human(布尔值,默认:true)

logstash_health_check

进行全面的健康检查,提供分析和建议。

logstash_jvm_stats

获取详细的 JVM 统计信息,用于内存分析。

  • 参数:human(布尔值,默认:true)

logstash_health_report

从 Logstash 获取详细的健康报告。

flow_metrics

获取详细的流量指标,包括吞吐量、积压和工作线程并发情况。

  • 参数:human(布尔值,默认:true)

健康检查分析

健康检查工具会分析以下内容:

  • 连接验证:在进行其他检查之前测试与 Logstash 的连接。
  • JVM 内存使用情况:如果堆使用率超过 80% 则发出警告。
  • 管道性能:检测有过滤但无输出事件的管道。
  • 队列使用情况:识别可能影响性能的大队列大小。

快速启动命令

使用 python3 logstash_mcp_server.py 启动服务器后,可使用以下 JSON - RPC 命令:

1. 初始化(首次必需)

{"jsonrpc": "2.0", "id": 0, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test-client", "version": "1.0.0"}}}

2. 检查连接性

{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "logstash_check_connectivity", "arguments": {}}}

3. 健康检查

{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "logstash_health_check", "arguments": {}}}

4. 列出所有工具

{"jsonrpc": "2.0", "id": 3, "method": "tools/list"}

5. 获取节点信息

{"jsonrpc": "2.0", "id": 4, "method": "tools/call", "params": {"name": "logstash_node_info", "arguments": {}}}

与 ELK 栈集成

此 MCP 服务器设计为与 Elasticsearch 诊断工具配合使用,可帮助:

  • 监控向 Elasticsearch 集群提供数据的 Logstash 性能。
  • 识别可能导致索引延迟的管道瓶颈。
  • 优化 Logstash 配置,以提高集群性能。

根据 Elasticsearch 集群分析显示的高分片计数,确保 Logstash 管道针对高效索引模式进行了优化。

错误处理

服务器包括全面的错误处理功能,用于处理以下情况:

  • 与 Logstash API 的连接失败。
  • 无效的管道 ID。
  • API 响应错误。
  • 网络超时。
  • 提供详细的错误消息和故障排除建议。

测试

运行测试套件以验证一切正常:

python3 test_mcp_server.py

测试套件包括:

  • 服务器初始化测试。
  • 工具列表验证。
  • 模拟健康检查测试。
  • 错误处理验证。

安全考虑

  • 服务器会连接到 Logstash API 端点。
  • 确保 MCP 服务器和 Logstash 之间有适当的网络安全措施。
  • 如果 Logstash 实例需要认证,请考虑进行认证。
  • 监控 API 访问日志以进行安全审计。

⚠️ 重要提示

此仓库是通过 AI 生成的代码,未经过充分测试。使用时请自行承担风险。

  • 0 关注
  • 0 收藏,27 浏览
  • system 提出于 2025-10-06 13:21

相似服务问题

相关AI产品