日志审计:多账号下VPC Flow日志的采集与监控

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: VPC流日志的采集和监控在日志审计下的功能介绍及最佳实践

1.背景

1.1 日志审计

日志审计服务App是阿里云日志服务SLS(Simple Log Service)旗下的一款产品,它在继承了日志服务SLS的全部功能以外,还有强大的多账号管理及跨地域采集功能,支持通过资源目录(Resource Directory)的方式有组织性地统一地管理和记录多账号下云产品实例的日志信息,可以便于用户进行统一分析,问题排查,回溯复盘等操作。日志审计APP可以自动化、中心化地采集云产品日志并进行审计,其服务覆盖基础(操作审计、k8s)、存储(OSS、NAS)、网络(SLB、API网关、VPC)、数据库(RDS、PolarDB-X1.0,PolarDB)、安全(WAF、DDOS、SAS、CPS)等产品,还支持审计所需的存储、查询及信息汇总等功能。

1.2 VPC Flow 日志

VPC提供流日志功能,可以记录VPC网络中弹性网卡ENI(Elastic Network Interface)传入和传出的流量信息,帮助您检查访问控制规则、监控网络流量和排查网络故障。对于通过VPC 流日志公测申请的账号,日志审计默认对VPC创建流日志,则会捕获VPC中所有弹性网卡的流量,包括在开启流日志功能后新建的弹性网卡。流日志功能捕获的流量信息会以流日志记录的方式写入日志服务中。其日志字段主要内容参见VPC流日志功能,日志审计在保留全部日志字段的基础上,还富化了一个region字段,用以表示VPC实例所属地域。

2 开启VPC Flow 日志采集

2.1. 使用限制

流日志功能正在公测中,您可以使用阿里云账号开启公测申请,开启后会产生流量和日志存储费用,费用详情请参见流日志功能计费

图1 开启VPC 流日志采集

对于VPC Flow日志而言,并不是VPC内所有的ECS实例都支持捕获流日志信息,其中不支持捕获Flow日志信息的ECS实例族如下:

ecs.c1、ecs.c2、ecs.c4、ecs.ce4、ecs.cm4、ecs.d1、ecs.e3、ecs.e4、ecs.ga1、ecs.gn4、ecs.gn5、ecs.i1、ecs.m1、ecs.m2、ecs.mn4、ecs.n1、ecs.n2、ecs.n4、ecs.s1、ecs.s2、ecs.s3、ecs.se1、ecs.sn1、ecs.sn2、ecs.t1、ecs.xn4

如果弹性网卡绑定的ECS实例属于以上实例规格族的实例时,亦不支持开启该弹性网卡的流日志捕获。

2.2 多账号及跨域、自动采集能力

2.2.1 多账号汇总

日志审计对资源目录和自定义鉴权的支持使得其天然具备同时采集多账号下的VPC流日志信息的能力,下图是同时采集多个账号下VPC流日志的一个示例。

图2 日志审计采集VPC 流日志的多账号能力

2.2.2 跨域与中心化

在日志审计下开启VPC流日志采集之后,如果开启中心化,日志审计将自动将多账号、多地域下的流日志通过数据加工汇总到是sls下名为slsaudit-center-${center_account}-${region} 的project的vpc_log中。如果不开启中心化功能,则对于不同地域的VPC流日志将自动采集到对应region的对应project的slsaudit-region-${center_account}-${region}的vpc_log中,下图是一个VPC流日志跨域采集汇总的一个示例。

中心化选择

VPC实例所属地域A

审计中心所属地域C

区域A是否有日志

是否创建

数据加工

中心是否有日志

日志存储时间

开启中心化

A与C同地域

区域A有

不会创建

中心C有

取决中心化TTL

A与C不同地域

会创建

关闭中心化

A与C同地域

不会创建

中心C无

取决区域化TTL

A与C不同地域

表1 中心化和区域化区别

图3 日志审计采集VPC 流日志的跨地域功能

开启中心化后,日志审计在slsaudit-center-${center_account}-${region}下会创建3个VPC相关的内置报表,分别是VPC流日志概览、VPC流日志Reject中心、VPC流日志Traffic中心。如果关闭中心化,在日志审计仪表盘主页面对于每个有VPC实例的地域将会分别创建以上3个内置报表,如下图所示。

图4 左图中心化仪表盘Tree,右图关闭中心化仪表盘Tree

2.2.3 自动采集能力

日志审计开启VPC流日志采集功能之后,对于新创建的VPC实例,将会自动自动对齐开通流日志功能,并对满足条件的VPC下的所有ENI的流量信息会以流日志记录的方式写入日志审计。

2.3 精细化日志采集粒度

日志审计支持对VPC实例进行精细化采集粒度控制,用户可以通过账号、地域、实例ID、实例名、标签等属性进行精准采集设置。具体的采集策略可以参考日志审计采集策略一节。

图5 配置精准VPCFLowlog采集策略

云产品

采集对象

属性

说明

VPC

VPC实例

账号:account.id

VPC实例所属的阿里云账号ID

地域:region

VPC实例所属的地域,例如:cn-shanghai

实例ID:instance.id

VPC实例ID

实例名:instance.name

VPC实例名

标签:tag.*

用户自定义的标签名。

tag.*中的星号(*)替换为您自定义的标签名,

例如tag.level=high, tag.env=test

表2 采集策略说明

下面将进行几个简单的采集策略示例帮助用户理解如何进行精细化VPC流日志的采集。


# --------------example 1 ----------------

#only scan cn region

keep region == "cn-*"


# accept by default

accept "*"



#-------------example 2-------------------

# accept all high level instances and if not only accept vpc that name starts with test


accept tag.level == "high"


# only scan vpc name start with “test”

keep instance.name == "test*"


# accept by default

accept "*"

3.报表分析与展示

日志审计VPC流日志内置3种报表,一个是VPC Flow日志概览,一个是VPC Reject中心,一个是VPC Traffic中心。

3.1 VPC Flow 日志概览


图6 VPC流日志概览-Action统计、Accept和Reject统计、ENI详情等

图7 VPC流日志概览-Top字节数的源地址、目的地址、每分钟Action次数等

图8 VPC流日志概览-Action源地址运营商分布、Top目标端口、各协议的每分钟包数等

3.2 VPC Reject 中心

图9 Reject 信息汇总

图10 Reject Action详情

3.2 VPC Traffic 中心

图11 Traffic信息概览

图12 Traffic 每分钟字节数及各ENI分钟字节数和包数

4.最佳实践

4.1 VPC内ECS互相访问流量查看

本章节以下图场景为例,例如ECS1和ECS3是同一个VPC(vpc-bp1vh***********9l3e)内不同交换机下的2台云服务器。ECS1(172.16.2.*)和ECS3(172.16.1.*)之间存在一定的的互访流量,假设用户想要查看两者之间的流量随时间变化的详情,可以使用如下sql语句。

图13 VPC内不同交换机下ECS互相访问示意图


eni-id: eni-bp********8ze and dstaddr: "172.16.1.**" | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, dstaddr,sum(bytes*8/("end"-start)) as bandwidth group by time,dstaddr order by time asc limit 100


该SQL语句定义了时间time、带宽bandwidth(bps)、目的地址dstaddr三个参数,time和dstaddr为聚合列,并按time从小到大排序,取100条日志。其中参数eni-id的值为ECS1的弹性网卡实例ID,dstaddr的值为ECS3的私网IP地址。

图14 VPC内ECS1访问ECS3的流量带宽变化统计图

4.2 排查公网NAT网关中不同ECS的流量变化

首先登录公网NAT网关,创建NAT网关,在该网关下选择已经创建的VPC( vpc-bp1vh***********9l3e),该VPC下已经创建了交换机vsw-bp1s*******00mj(172.16.2.0/24)和vsw-bp19******kov2(172.16.1.0/24)

在该NAT网关下新购弹性公网IP (114.**.**.**7)并绑定,在公网NAT网关页面,找到刚才创建的NAT网关,并设置SNAT,然后创建SNAT条目,配置条目粒度为交换机粒度,选中vsw-bp1s*******00mj(172.16.2.0/24)和vsw-bp19******kov2(172.16.1.0/24),然后在公网IP地址列表选择刚刚创建的EIP(114.**.**.**7)。

图 15 公网NAT连接示意图


dstaddr: "114.**.**.**7" and action: ACCEPT and srcaddr: 172.16.1.* | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,sum(bytes*8/("end"-start)) as bandwidth group by time,srcaddr order by time asc limit 1000


输入以上SQL语句对日志进行聚合和排列,查看去往某一特定EIP地址的不同ECS实例的流量。其中dstaddr是指刚刚创建的公网EIP地址,srcaddr是指以上ECS几个实例的私网网段,生成流图时x轴为time,y轴为bandwidth,聚合列为srcaddr。其结果如下图所示:

图16 一小时内访问公网EIP的不同ECS源IP的流量示意图


4.3 跨区域跨VPC访问流量查看

如下图所示,首先登录云企业网控制台创建地域为上海的一个云企业网CEN实例(cen-o6lf*****f3kh),然后在此CEN实例下加载网络实例,选择同账号下分别位于青岛和上海的两个VPC实例进行加载。此时系统会自动创建的SLR角色AliyunServiceRoleForCEN,该角色允许转发路由器在目标VPC实例上创建ENI,作为VPC发往转发路由器的流量入口。

图17 CEN下加载不同地域VPC实例示例

图18 同CEN下不同VPC实例之间互相访问示意图


输入以下SQL进行查询, 其中vpc-uf6*****93kf是上海所在的VPC实例,srcaddr是青岛vpc-m5e*****ngyd实例下的交换机挂载的ECS实例i-m5eh******70mn的网段(172.31.*.*)


vpc-id: vpc-uf******93kf  and srcaddr : "172.31.*.*" and action: ACCEPT | select date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, sum(bytes*8/("end"-start)) as bandwidth from (select * from log where "end"!=start) group by time order by time asc limit 10


图18 同CEN下不同区域不同VPC实例下的ECS互相访问流量查看示例

5.参考链接

日志审计服务 https://help.aliyun.com/document_detail/164065.html

日志服务SLS https://help.aliyun.com/document_detail/48869.html

资源目录 https://help.aliyun.com/document_detail/94475.html

VPC流日志 https://help.aliyun.com/document_detail/127150.html

开启流日志公测申请 https://page.aliyun.com/form/act1463681010/index.htm

流日志功能计费 https://help.aliyun.com/document_detail/127150.html#title-cdd-pr7-r8m

VPC流日志字段 https://help.aliyun.com/document_detail/127150.html#title-wat-lmx-z21

日志审计采集策略 https://help.aliyun.com/document_detail/170316.html

公网NAT网关https://vpc.console.aliyun.com/nat/cn-hangzhou/nats

云企业网CEN https://cen.console.aliyun.com/cen/list?spm=a2c4g.11186623.0.0.7503558d6gRqA5

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
4月前
|
Kubernetes 监控 容器
k8s学习-CKA真题-监控Pod日志
k8s学习-CKA真题-监控Pod日志
78 0
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
27 0
|
2月前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
2月前
|
消息中间件 存储 监控
利用Scala编写公司内部监控软件的实时日志监控模块
在当今的软件开发领域,监控是确保系统稳定性和性能的关键一环。随着公司业务的不断扩展,我们迫切需要一套高效、可靠的实时日志监控系统,以及能够自动提交数据到网站的解决方案。本文将介绍如何利用Scala编写公司内部监控软件的实时日志监控模块,并探讨如何自动将监控到的数据提交到网站。
154 2
|
3月前
|
网络安全 数据安全/隐私保护
使用rsync+nxlog同步+采集应用日志并接入到GrayLog5.1【优化篇】
使用rsync+nxlog同步+采集应用日志并接入到GrayLog5.1【优化篇】
31 0
|
3月前
|
JSON NoSQL 网络安全
业务服务器免装插件,使用rsync+nxlog同步+采集应用日志并接入到GrayLog5.1
业务服务器免装插件,使用rsync+nxlog同步+采集应用日志并接入到GrayLog5.1
41 0
|
3月前
|
Prometheus 监控 Cloud Native
Prometheus VS ELK Stack:容器监控与日志管理工具的比较与选择
在容器化时代,有效的容器监控与日志管理工具对于确保应用程序的可靠性和可维护性至关重要。本文将比较两个主流工具,Prometheus和ELK Stack,探讨它们在容器监控和日志管理方面的特点、优势和适用场景,帮助读者做出明智的选择。
|
4月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
254 0

相关产品

  • 日志服务