重要
这个存储库是vibe编码的,人工智能生成的,没有经过适当的测试。使用它有你自己的风险。
Logstash MCP服务器
用于与Logstash实例交互的模型上下文协议(MCP)服务器。此服务器提供了用于监视和定义Logstash实例性能瓶颈的全面工具。
Web用户界面
该项目包括一个基于web的用户界面,便于与您的Logstash实例进行交互。
运行Web UI
- 启动web界面:
python3 web_ui.py- 打开浏览器并导航到:
http://localhost:5001Web UI功能
web界面提供:
- 交互式仪表板:访问所有Logstash监控工具的可视化界面
- 实时监控:检查连接、节点统计信息和管道性能
- 健康状况分析:带视觉反馈的全面健康检查
- 管道管理:查看单个或所有管道的统计信息
- 性能调试:热线程分析和JVM统计
- 插件管理:浏览已安装的Logstash插件
Web UI配置
web UI使用与MCP服务器相同的配置:
- 默认日志存储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特性
监视工具
- 节点信息:获取Logstash版本、构建信息和设置
- 节点统计信息:JVM、进程和管道度量
- 管道统计:监控单个或所有管道性能
- 热门话题:使用线程分析调试性能问题
- 健康检查:综合健康评估及建议
- 连接检查:通过详细的诊断验证与Logstash的连接
管理工具
- 管道重新加载:重新加载特定的管道配置
- 插件列表:查看所有已安装的Logstash插件
- JVM统计信息:详细的内存和垃圾收集指标
- Grok图案:列出用于日志解析的可用Grok模式
安装
- 安装依赖项:
pip install -r requirements.txt- 设置环境变量(可选):
export LOGSTASH_API_BASE="http://your-logstash-host:9600"配置
服务器使用以下默认配置:
- Logstash主机:本地主机
- Logstash港口: 9600
- API基本URL: http://localhost:9600
您可以使用 LOGSTASH_API_BASE 环境变量。
可用工具(共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": {}}}使用示例
基本健康检查
# The MCP server will automatically analyze:
# - JVM memory usage
# - Pipeline performance
# - Queue statistics
# - Provide recommendations for optimization管道监测
# Monitor specific pipeline performance
# Get detailed statistics for troubleshooting
# Track event processing rates and errors性能调试
# Use hot threads analysis to identify bottlenecks
# Monitor JVM statistics for memory issues
# Track pipeline queue usage与ELK Stack集成
此MCP服务器旨在与Elasticsearch诊断一起工作,可以帮助:
- 监控向Elasticsearch集群馈送的Logstash性能
- 识别可能导致索引延迟的管道瓶颈
- 优化Logstash配置以获得更好的集群性能
根据您的Elasticsearch集群分析显示的高分片数,确保您的Logstash管道针对高效的索引模式进行了优化。
错误处理
该服务器包括全面的错误处理功能,用于:
- 与Logstash API的连接失败
- 管道ID无效
- API响应错误
- 网络超时
- 带有故障排除建议的详细错误消息
测试
运行测试套件以验证一切正常:
python3 test_mcp_server.py测试套件包括:
- 服务器初始化测试
- 工具清单验证
- 模拟健康检查测试
- 错误处理验证
安全考虑
- 服务器连接到Logstash API端点
- 确保MCP服务器和Logstash之间的网络安全
- 如果您的Logstash实例需要身份验证,请考虑进行身份验证
- 监视API访问日志以进行安全审核
