选择采集范围
先回答两个问题:需要观察哪些应用?数据在网卡上是明文还是密文?采集范围决定可见性和资源开销,检测规则决定哪些观察值得生成事件。
选择输入方式
| 目标 | 推荐方式 | 能看到什么 |
|---|---|---|
| 明文 HTTP、数据库、DNS 或镜像流量 | network | 连接、协议及可见的应用数据 |
| OpenSSL / Go TLS 加密应用 | endpoint | 应用侧明文及进程、服务归因 |
| 受支持的 quic-go HTTP/3 | goquic endpoint | 按 QUIC stream 分隔的应用明文 |
| 测试规则或解析器 | NDJSON / PCAP / stream 回放 | 固定样本;不证明现场采集能力 |
capture.application_source 为 network 或 endpoint。同一应用事务只由选定来源参与规则,避免网络明文和端点流重复计数;端点模式仍可采集网络元数据。该配置不是跨探针去重机制。
限定网络采集
在新目录生成网络配置,接口名称按主机实际设置:
sh
netflowscout configure --mode network --service network-app --interface eth0 \
--filter 'tcp port 80 or udp port 53' --out ./network.json
netflowscout check --config ./network.json过滤语法支持 tcp、udp、ip、ip6、port N、host IP、not/and/or 和括号。未知表达式会拒绝启动。
过滤位置
当前过滤在用户态执行,不会降低进入内核环的包量。高流量环境应先限制镜像口、接口或上游流量范围,再观察丢包计数。
限定应用采集
通过端点的 match.executable 精确匹配目标,按需加真实 UID、cgroup 路径范围。多个服务使用带排除和优先级的 policies;配置示例见端点与 TLS。
connections 是端口/协议/角色的路由提示,不是严格流量白名单:其他端口仍可能由插件签名识别。明确限制采集目标应使用进程选择器和互斥策略。
从采集到事件
需要保留协议原始数据时,可启用本地原始数据留存:网络使用 PCAP,端点明文使用可回放 stream;可持续保存或由检测事件触发。
例如“访问 /admin/export 才上报”应在 HTTP 检测规则判断,而不是将 URL 放入包过滤器。TLS 密文不能从网卡按 URL 过滤;需要端点明文。
先小范围接入一个服务,验证业务完整性和输出,再增加协议、目标数和规则。持续检查内核丢包、桥接丢弃、分析输入拒绝、规则迟到与 WAL 积压,不能只看 CPU。