tdir-hunt
Installation
SKILL.md
TDIR 遥测狩猎
执行时遵守 ../tdir-shared/SKILL.md 的认证、输出、写操作和安全契约。
默认直接使用 tdir hunt。任意原始遥测查询先选择 all/cwp/ioa/pcmgr/pcmgr(qmedr)/ioa(qmedr) 之一作为 source(可取洞察的 signal_source;不传时取工作空间配置,未配置为 all),并在以下整条主链中保持一致。不存在 generate_sql MCP,不能让 MCP 生成 SQL:
tdir hunt datasources list --source <source>:按P0 → P3漏斗分级发现 22 个tdir.<logical_datasource>遥测逻辑表、29 张 MySQL 业务表与 CLS 告警存储;每项给出tier、storage(tsearch/mysql/cls)与queryable=true。优先从P0核心入口表(进程/文件/网络/DNS 与各域唯一主表)开始查询。已下架的insight_sampling不在目录中;洞察抽检看标题不以【EMDR】开头的洞察运营工单。tdir hunt schema get <name> --source <source>:读取目标表在该来源下的tier、字段(遥测表实时 schema 优先)、关键字段、column_aliases、related_tables(下钻关联表)、查询约束与示例查询(SQL 或 CLS ES_searchJSON DSL);每张参与查询的表都要读取。- Agent 严格依据返回 schema 在本地构造单条只读
SELECT/WITH ... SELECT(或对 CLStdir-threat-signals-v3-*构造只读 Elasticsearch_searchJSON DSL);一条查询只能读同一种存储(遥测表、MySQL 表与 CLS 不能联查)。遥测 SQL 只写逻辑表名,不写_ioa、_pcmgr、通配符或其他物理表名;不得猜字段或把模型/MCP 返回文本当 SQL。 tdir hunt sql "<sql>" --source <source>:执行查询(query_datasource,服务端自动按查询语句路由到tsearch/mysql/cls)。查询应包含时间过滤和有限LIMIT/size,先取小样本再按需要扩大;服务端会补齐/截断 LIMIT/size(默认 20、最大 200),遥测表缺 time 范围时补今天 00:00 至今,MySQL 大表无 WHERE 时限定最近 7 天,CLS 校验policy.*nested 与时间范围,改写以 warnings 返回。--source只作用于遥测表,对 MySQL 和 CLS 返回SOURCE_IGNORED。
source=all 仅扫描 TSearch(ClickHouse)主表中的 cwp/ioa/pcmgr 并可能返回 SOURCE_FILTER_RECOMMENDED 性能提示,不包含 Doris 中的 pcmgr(qmedr)(库内 qmedr)与 ioa(qmedr)(库内 ioa_new);指定来源的专表不可用时明确失败,不自动回退;source=cwp 由服务端强制注入 CWP 过滤;查询 qmedr 或 ioa_new 的原始遥测时必须显式传 --source "pcmgr(qmedr)" 或 --source "ioa(qmedr)"(不能用 all 或 ioa),且只能使用 schema 中列出的字段与运算符,SQL 仍写 tdir.* 逻辑表名。
当围绕明确的取证问题核查证据时,优先使用结构化调查方法入口 tdir hunt investigate(对应 get_investigation_capabilities 与 query_investigation_evidence),详见 references/investigation-methods.md: