流日志用来回答什么
流日志把 VPC 内网卡的流量记录(五元组、协议、动作、包数与字节数)投递到日志服务,再用 SQL 做聚合分析。它擅长回答三类问题:哪些连接被安全组或 ACL 拒绝了、某个源地址在访问什么、某端口的流量走向如何。相比逐台实例登录排查,流日志能在几分钟内给出全局分布。
基本信息
| 数据来源 | 弹性网卡或交换机的流量记录,投递到日志服务 |
|---|---|
| 查询语法 | 日志服务标准 SQL,字段名以实际 schema 为准 |
| 常用字段 | srcaddr、dstaddr、srcport、dstport、protocol、action、packets、bytes |
| 分析思路 | 先筛 action=REJECT 找被拦流量,再按源或目的维度聚合 |
| 生效范围 | 只记录启用了流日志的网卡或交换机 |
典型使用场景
- 定位安全组误拦:找出被 REJECT 的目标端口与来源网段
- 排查异常外联:确认某台实例在向哪些外部地址发起连接
- 验证规则变更效果:调整安全组前后对比被拒绝流量的变化
- 流向梳理与容量评估:统计网段之间的流量分布,为拆分或迁移提供依据
- 带宽归因:找出流量排名靠前的实例与对端
常用 SLS 查询
常用 SLS 查询
-- 被拒绝流量的目标端口分布
* | select dstport, count(*) as cnt where action = 'REJECT' group by dstport order by cnt desc limit 20
-- 某源 IP 的访问去向
* | select dstaddr, dstport, count(*) as cnt where srcaddr = '10.10.1.15' group by dstaddr, dstport order by cnt desc limit 50
-- 按协议看流量占比
* | select protocol, sum(bytes) as total where action = 'ACCEPT' group by protocol order by total desc输出逐列读法
| 字段 | 含义 | 读数要点 |
|---|---|---|
| action | 该条流量的处理结果 | ACCEPT 放行,REJECT 被规则拒绝 |
| srcaddr / srcport | 源地址与源端口 | 源端口多为随机高位端口 |
| dstaddr / dstport | 目的地址与目的端口 | 结合服务端口判断是否为业务流量 |
| protocol | 协议号或名称 | 区分 TCP、UDP、ICMP |
| packets / bytes | 窗口内的包数与字节数 | 用于估算流量规模,不等于连接数 |
各厂商字段命名略有差异,建好日志库后先取一条样本记录确认字段名,再写聚合语句,能省掉大量试错。
流日志按采集条目计费,对高流量网卡全量采集会产生可观费用;排查型场景可先只对问题实例或子网开启。