首页/云/云网络与负载均衡速查/流日志查询与常见分析

流日志查询与常见分析

流日志投递到日志服务后可用 SQL 分析:统计被拒绝的连接、找出访问量突出的源地址、定位某端口的流量走向。这是排查安全组拦截与异常外联的高效手段。

流日志用来回答什么

流日志把 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窗口内的包数与字节数用于估算流量规模,不等于连接数
各厂商字段命名略有差异,建好日志库后先取一条样本记录确认字段名,再写聚合语句,能省掉大量试错。
流日志按采集条目计费,对高流量网卡全量采集会产生可观费用;排查型场景可先只对问题实例或子网开启。

易错点

  • 把聚合后的条目数当作连接数统计,得出错误结论;需要连接数时要按五元组去重
  • 查询时间范围开得过大导致超时或费用飙升,应先缩小窗口定位再逐步扩大
  • 只给部分网卡开了流日志,结论覆盖不到全部实例,误判为「没有异常流量」
  • 忽略流日志的分钟级延迟,用规则变更后几秒内的数据下结论

数据来源与参考

  • 阿里云 流日志字段说明
  • 阿里云日志服务 SLS 查询语法
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌