项目简介
TWSLA(TWSNMP Log Analyzer)是一个简单而强大的日志分析工具,隶属于TWSNMP系列。它支持在Linux/Mac OS/Windows上运行,能够导入、搜索、分析日志,并提供多种高级功能,如异常检测、TF-IDF分析和AI辅助分析。其中包含的MCP服务器功能,使其能够作为一个标准化的后端服务,为LLM(大型语言模型)客户端提供丰富的日志上下文信息和操作能力。
主要功能点
- 日志导入与管理: 支持从文件、目录、SCP/SSH、TWSNMP FC和TwLogEye导入多种格式(如纯文本、ZIP、TAR.GZ、GZ、Windows EVTX)的日志,并存储在本地的BBolt数据库中。
- 日志搜索与过滤: 提供灵活的简单过滤和正则表达式过滤功能,支持按时间范围、关键字、正则表达式进行日志搜索。
- 日志统计与提取: 能够按时间、IP地址、MAC地址、电子邮件、主机名、域名、国家/地区等多种维度统计日志数量,或从日志中提取特定数据。
- 高级分析: 包含TF-IDF稀有日志检测、基于隔离森林的异常日志检测(如SQL注入、OS命令注入、目录遍历、Walu等模式)、日志时间差分析以及热力图展示。
- 威胁检测: 支持使用SIGMA规则进行威胁检测。
- AI辅助分析: 可与本地Ollama和Weaviate LLM服务结合,进行日志的问答和摘要分析。
- MCP服务器接口: 通过标准化的JSON-RPC协议,将上述核心日志分析能力作为工具暴露给LLM客户端,实现AI驱动的日志分析工作流。
安装步骤
- Linux/macOS:
- 推荐使用Shell脚本安装:
$curl -sS https://lhx98.linkclub.jp/twise.co.jp/download/install.sh | sh - 或使用Homebrew安装:
$brew install twsnmp/tap/twsla
- 推荐使用Shell脚本安装:
- Windows:
- 从Release页面下载zip文件。
- 或使用Scoop安装:
>scoop bucket add twsnmp https://github.com/twsnmp/scoop-bucket >scoop install twsla
服务器配置
TWSLA的MCP服务器功能通过'twsla mcp'命令启动。MCP客户端需要配置以下信息以连接到TWSLA MCP服务器:
{ "server_name": "TWSLA MCP Server", "command": "twsla", "args": [ "mcp", "--transport", "stdio", "--endpoint", "127.0.0.1:8085", "--geoip", "/path/to/GeoLite2-City.mmdb" ], "description_args": { "command": "用于启动TWSLA MCP服务器的命令行工具,通常是'twsla'。", "args": "传递给'twsla'命令的参数列表。其中:", "--transport": "MCP服务器的传输协议,支持'stdio'(标准输入输出)、'sse'(Server-Sent Events)或'stream'(HTTP流)。", "--endpoint": "MCP服务器绑定的地址和端口,例如 '127.0.0.1:8085'。在'stdio'模式下可省略。", "--clients": "在'stream'传输模式下,允许连接的MCP客户端IP地址列表,以逗号分隔(例如 '192.168.1.100,192.168.1.101')。", "--geoip": "GeoIP数据库文件路径,用于IP地址的地理位置信息查询(例如 '/path/to/GeoLite2-City.mmdb'),需要从MaxMind等提供商获取。" } }
注意:
- '--transport'默认为'stdio',适用于本地测试或管道通信。对于网络通信,请选择'sse'或'stream'。
- '--endpoint'在'stdio'模式下可忽略,但在'sse'和'stream'模式下是必需的。
- 如果使用'stream'传输协议,可以通过'--clients'参数限制允许连接的客户端IP地址。
- '--geoip'参数用于启用IP地理位置查询功能,需要提供MaxMind GeoLite2 City数据库文件路径。
基本使用方法
- 启动MCP服务器:
$twsla mcp --transport sse --endpoint 127.0.0.1:8085 # 这将启动一个SSE协议的MCP服务器,监听在本地8085端口。 # 客户端将通过该地址与服务器通信。 - MCP客户端连接: 您的MCP客户端将使用上述“服务器配置”中生成的JSON信息连接到TWSLA MCP服务器。
- 使用暴露的工具: MCP客户端可以通过JSON-RPC协议调用TWSLA MCP服务器暴露的日志分析工具,例如:
- 'search_log': 搜索TWSLA数据库中的日志条目。
- 参数:'filter_log_content' (字符串,用于过滤日志内容的正则表达式,空表示无过滤), 'limit_log_count' (数字,返回的最大日志数量,范围100-10000), 'time_range' (字符串,日志的时间范围,例如 '"2025/05/07 05:59:00,1h"' 或 '"start,end"')。
- 示例用途:LLM客户端请求搜索过去1小时内包含"error"的日志,以获取具体错误详情。
- 'count_log': 统计日志数据。
- 参数:'count_unit' (枚举类型,统计单位,如'time'、'ip'、'domain'、'country'、'normalize'), 'time_range' (字符串,时间范围), 'top_n' (数字,限制返回前N个结果)。
- 示例用途:LLM客户端请求统计过去24小时内访问量最高的IP地址,以发现潜在异常来源。
- 'extract_data_from_log': 从日志中提取结构化数据。
- 参数:'extract_pattern' (字符串,提取数据的正则表达式模式,如'ip=([0-9.]+)'), 'time_range' (字符串,时间范围), 'pos' (数字,指定捕获组的位置)。
- 示例用途:LLM客户端请求从Web服务器日志中提取所有请求响应时间,用于性能分析。
- 'import_log': 导入日志到TWSLA数据库。
- 参数:'log_path' (字符串,日志文件或目录路径,支持ZIP、TAR、EVTX等格式), 'filename_pattern' (字符串,用于过滤文件名的正则表达式)。
- 示例用途:LLM客户端请求导入新收集的日志文件到数据库,以便后续分析。
- 'get_log_summary': 生成指定时间范围内的日志活动摘要。
- 参数:'time_range' (字符串,时间范围), 'error_words' (字符串,定义错误级别的关键词列表), 'warning_words' (字符串,定义警告级别的关键词列表), 'error_top_n' (数字,返回前N个错误模式)。
- 示例用途:LLM客户端请求获取上周的日志摘要,包括错误和警告的统计,以便快速了解系统健康状况。
- 'search_log': 搜索TWSLA数据库中的日志条目。
这些工具使LLM能够以编程方式查询和分析日志数据,从而实现智能化的系统监控、故障诊断和安全分析。
信息
分类
AI与计算