日志分析服务器

高性能日志分析服务器,支持多种日志格式,提供快速聚合和AI集成功能。

  • by TLinvest
  • Rust
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 TLinvest/forensic-log-mcp

使用说明

取证日志MCP服务器

高性能 模型上下文协议 用于日志分析的(MCP)服务器,由 波拉斯 以及定制的SIMD加速解析器。

赋予Claude分析海量日志文件(千兆字节数据)的能力,这些文件永远无法放入其上下文窗口。

特性

  • 快速聚合:在GROUP BY操作上比awk快5-50x
  • SIMD加速:使用自定义解析器 memchr 用于结构化查询
  • 多格式:Apache、Nginx、Syslog、JSON行、CSV/TSV
  • 流媒体:通过延迟求值处理大于RAM的文件
  • 人工智能原生:通过MCP协议为Claude集成而设计

演出

MCP擅长 集合查询 对于大文件(1M行,125MB Apache日志):

操作 awk MCP 加速
按IP分组 0.26秒 0.048秒 速度提高5倍
按方法分组 1.31s 0.047s 速度提高28倍
按用户_代理分组 2.40s 0.049s 快50倍
按推荐人分组 1.14s 0.046s 快25倍
总和大小 0.37s 0.047s 快8倍
JSON分组方式(vs jq) 1.65s 0.16s 快11倍

诚实评价:

  • MCP主导GROUP BY/聚合查询(速度快5-50x)
  • 对于简单的行计数,grep的速度快了约24倍(grep -c)
  • MCP的Python/MCP开销约为57ms,在大文件上可以忽略不计

看 benchmark/benchmark.md 详细的方法论和诚实的比较。

快速开始

安装

# Clone the repository
git clone https://github.com/TLinvest/forensic-log-mcp.git
cd forensic-log-mcp

# Build the MCP server
cd mcp
cargo build --release

二进制文件将位于 mcp/target/release/forensic-log-mcp.

配置

添加到您的Claude Code项目 .mcp.json:

{
  "mcpServers": {
    "forensic-logs": {
      "type": "stdio",
      "command": "/path/to/forensic-log-mcp",
      "args": []
    }
  }
}

或在全球范围内添加 ~/.claude.json.

使用示例

配置后,Claude可以直接分析您的日志:

"Find all 500 errors in my nginx access log"
→ Uses analyze_logs with filter_status="500"

"Count requests by IP address"
→ Uses aggregate_logs with group_by="ip"

"Search for timeout errors in the last hour"
→ Uses search_pattern with regex matching

"Show me the error rate by hour"
→ Uses time_analysis with bucket="hour"

可用工具

工具 说明
get_log_schema 从日志文件中发现列和示例数据
analyze_logs 筛选、分组和排序日志数据
aggregate_logs 执行统计聚合(计数、求和、平均值、最小值、最大值)
search_pattern 搜索正则表达式模式
time_analysis 使用bucketing分析随时间变化的日志

支持格式

格式 自动检测 SIMD快速路径
Apache/Nginx组合 是 是
系统日志(RFC 3164/5424) 是 是
JSON行(NDJSON) 是 Polars原生
CSV/TSV 是 Polars原生

项目结构

forensic-log-mcp/
├── mcp/                    # MCP server source code
│   ├── src/
│   │   ├── main.rs        # Entry point
│   │   ├── tools/         # MCP tool implementations
│   │   ├── parsers/       # Log format parsers
│   │   │   ├── apache_simd.rs   # SIMD Apache parser
│   │   │   ├── syslog_simd.rs   # SIMD Syslog parser
│   │   │   └── ...
│   │   └── engine/        # Query engine
│   ├── Cargo.toml
│   └── README.md          # Detailed MCP documentation
├── benchmark/             # Performance benchmarks
│   ├── BENCHMARK.md       # Detailed results
│   ├── run_benchmark.sh   # Benchmark runner
│   └── scripts/           # Benchmark utilities
├── LICENSE
├── CONTRIBUTING.md
└── README.md              # This file

怎么这么快

  1. SIMD加速解析:用途 memchr 用于矢量场检测
  2. 零拷贝处理:直接使用内存映射字节片
  3. 并行块处理:将文件拆分为4MB块,通过以下方式处理 rayon
  4. 惰性字段提取:仅解析查询所需的字段
  5. 谓词下推:扫描过程中的过滤器,而不是加载后的过滤器

需求

  • 锈蚀1.75+(用于建筑)
  • Claude Code或任何兼容MCP的客户端

贡献

看 贡献.md 作为指导方针。

许可证

MIT许可证-请参阅 许可证 了解详情。

致谢