用途:对已导出的网络数据(Zeek 日志、Suricata eve.json、生成的报告)做临时只读 SQL 分析,适合跨数据包、跨日志的聚合统计。
主要能力:由 analysis-mcp 提供 analysis_status、analysis_datasets、analysis_query 三个工具,引擎为内存中 DuckDB,沙箱锁定。Zeek 表保留真实列名(如 id_orig_h、id_resp_p、uid),各 Zeek 日志通过 uid 与 conn.log 关联,可做会话透视与计数类查询(如按连接数统计 top talkers、服务分布、Suricata 告警签名频次)。
使用方式:先由 nsm_analyze(skill nsm-session-pivot)生成 Zeek 日志与 eve.json;再用 analysis_status 查看沙箱状态与数据集数量;用 analysis_datasets 读取表名、行数与列名;用 analysis_query 每次执行一条只读语句。可分析的文件需放在 ~/.openclaw/analysis 等允许根目录下。
限制:只读,拒绝 INSERT/UPDATE/DELETE/DROP/CREATE/ATTACH/COPY/INSTALL/SET,且每次仅一条语句;查询默认 30 秒超时;结果默认上限 500 行,truncated: true 表示只是分页,需用 COUNT(*) 取真实总数;Zeek 列均为文本,需显式转换类型;行数反映已加载数据而非实际存在;超过大小上限的文件会被跳过;0 个数据集表示无导出,而非网络无活动。数据来源的固有缺陷(如抓包姿态问题)会使 SQL 结果不可靠。相关环境变量包括 ANALYSIS_QUERY_TIMEOUT、ANALYSIS_MAX_RESULT_ROWS、ANALYSIS_EXTRA_ROOTS、ANALYSIS_MAX_FILE_BYTES、ANALYSIS_MAX_ROWS。