一、日志审计服务简介
阿里云日志服务作为行业领先的日志大数据解决方案,一站式提供数据收集、清洗、分析、可视化和告警功能。日志审计服务功能了提供多账户下跨多云产品审计相关日志进行实时自动化中心化采集,并提供审计需要的存储、查询、信息汇总支持。覆盖Actiontrail、OSS、SLB、RDS、DRDS、API网关等基础产品并支持自由对接到其他生态产品或自有SOC中心。
日志审计服务具有如下共功能和优势:
-
实时中心化采集
- 多云产品支持: 支持阿里云SLB、OSS、RDS等多个主流产品。
- 一键式采集:一次性配置采集策略后,即可完成跨账号自动实时发现新资源并实时采集日志。
- 跨账号:支持将多个主账号下的日志采集到一个主账号下的Project中。
- 中心化存储:将采集到的日志存储到某个地域的中心化Project中,方便后续查询分析、可视化与告警、二次开发等。
-
支持丰富的审计功能
- 继承日志服务现有的所有功能,包括查询分析、加工、报表、告警、导出等功能,支持审计场景下中心化的审计等需求。
- 生态开放对接:与开源软件、阿里云大数据产品、第三方SOC软件无缝对接,充分发挥数据价值。
二、日志审计一键采集功能介绍
一键进行云产品日志采集是日志审计服务的一大特色,而其中的一个重点功能就是资源的实时自动发现。使用者只需要在日志审计控制台上,针对具体的云产品开通日志审计功能即可,不需要逐个对云资源进行日志采集的开关控制。下面我们以阿里云关系型数据库RDS为例举例说明,如何便捷的进行日志采集。
1、传统的日志采集功能
需要使用者按照RDS SQL执行日志采集指南,逐个对要采集的RDS实例开启日志采集功能。如果有RDS实例扩缩容的场景,也需要使用者手动操作。
缺点:
- 不支持跨账号、跨地域。
- 不支持实例发现。
- 不支持中心化。
如下图,某客户有账号1、账号2,如果需要采集所有RDS日志,需要分别建立多个logstore,且需要手动逐个建立RDS实例与logstore的采集关系,维护成本较大。
2、日志审计一键采集功能
有了日志审计功能之后,传统采集的问题就不需要在发愁了。如下图,只需要在中心账号1下面,开通RDS日志审计功能,剩下的事情就放心交给审计服务去做好了,您可以轻松地在logstore-center中查看到您所拥有的所有账号下的、所有支持采集地域下的RDS实例日志。
有了日志审计一键采集功能,可以享受到的便捷服务:
- 实例自动发现,免去了相关运维的工作。
- 跨账号采集、中心化存储,为数据分析提供了更多的想象空间。
之前日志审计存在了一点小的缺陷,就是用户开通某个云产品的日志审计之后,会自动实现所有实例的采集,但是这也造成了会造成把用户不需要关心的实例日志也一起采集到了中心logstore。于是,我们推出了日志审计采集策略功能,可对账号、地域或实例等因素进行限制,达到精细化的日志采集目的。
三、日志审计采集策略
1、采集策略应用场景
某客户因业务需求,线上的RDS实例都部署在北京或上海机房,其他地域的RDS实例主要是用来进行开发测试。另外,上海、北京也会有一些打有level=low标签的实例,用于存储一些非线上的业务数据。
因此,该客户从线上业务出发,只需要采集位于上海、北京,且没有打level=low标签的RDS实例。而日志审计的采集策略功能,正好满足了客户这方面的需求。
## 采集语法
keep region == ("cn-shanghai" or "cn-hangzhou") # 只采集北京、上海的实例
drop tag.level == "low" # 如果实例被打了level=low标签,则丢弃。
accept "*" # 接受所有符合当前条件的实例
2. 采集策略语法简介
采集策略语法一般情况下由如下部分组成,并以keep region == ("cn-shanghai" or "cn-beijing")加以说明:
参数 | 说明 | 举例 |
---|---|---|
动作 | 通过您配置的采集策略,执行相应的动作,详情请参见策略语法。 | keep |
属性 | 选择采集对象的属性,不同采集对象对应的属性不同,详情请参见产品支持。 | region |
操作符 | 选择操作符,例如选择完全匹配,则对应的操作符为==,详情请参见策略语法。 | == |
属性取值 | 输入属性的值,支持配置多个值。 | ("cn-shanghai" or "cn-beijing") |
动作
- 保持(keep):当采集对象满足采集策略时继续执行下一条策略,由后续策略判断是否采集日志。不满足则拒绝采集日志,不再做后续策略判断。
- 拒绝(drop):当采集对象满足采集策略时拒绝采集日志,不再执行下一条策略。不满足则继续执行下一条策略,由后续策略判断是否采集。
- 接受(accept):当采集对象满足采集策略时采集日志,不再执行下一条策略。不满足则继续执行下一条策略,由后续策略判断是否采集。
采集对象的属性及取值
目前支持RDS、DRDS、SLB三种阿里云产品。
云产品 | 采集对象 | 属性 | 说明 |
---|---|---|---|
RDS | RDS实例 | 账号:account.id | RDS实例所属的阿里云账号ID。 |
地域:region | RDS实例所属的地域,例如:cn-shanghai。 | ||
实例ID:instance.id | RDS实例ID。 | ||
实例名:instance.name | RDS实例名。 | ||
DB类型:instance.db_type | DB类型,可取值为mysql、pgsql、mssql。 | ||
DB版本号:instance.db_version | DB版本号,例如:8.0。 | ||
标签:tag.* | 用户自定义的标签名。将tag.中的星号()替换为您自定义的标签名。 | ||
DRDS | DRDS实例 | 账号:account.id | DRDS实例所属的阿里云账号ID。 |
地域:region | DRDS实例所属的地域,例如:cn-shanghai。 | ||
实例ID:instance.id | DRDS实例ID。 | ||
实例名:instance.name | DRDS实例名。 | ||
SLB | SLB实例 | 账号:account.id | SLB实例所属的阿里云账号ID。 |
地域:region | SLB实例所属的地域,例如:cn-shanghai。 | ||
实例ID:instance.id | SLB实例ID。 | ||
实例名:instance.name | SLB实例名。 | ||
网络类型:instance.network_type | SLB网络类型,可取值为classic、vpc。 | ||
VPC ID:instance.vpc_id | SLB的VPC ID。 | ||
标签:tag.* | 用户自定义的标签名。将tag.中的星号()替换为您自定义的标签名。 |
匹配模式
3. 采集策略处理流程
4. 操作流程说明
日志服务支持通过简易编辑模式或高级编辑模式配置采集策略。简易编辑模式配置简单,当简易编辑模式无法满足需求时,可开启高级编辑模式,灵活配置复杂的采集策略。
4.1 简易编辑模式
- 在待添加策略区域,配置如下参数,并单击添加策略
-
在已添加策略区域,确认策略配置结果。您也可以修改已添加的采集策略以及调整采集策略的顺序。
- 单击目标采集策略右侧的编辑,修改已添加的采集策略。
- 单击目标采集策略右侧的上下箭头,调整采集策略的顺序。
4.2 高级编辑模式
开启高级编辑模式。在规则文本框中,配置采集策略,并单击确定。
5. 常见案例
- 采集特定区域的实例日志例如:只采集中国区域的实例日志,采集策略如下所示。
# only scan cn region
keep region == "cn-*"
# accept by default
accept "*"
- 采集特定标签的实例日志例如:只采集所有标签打上type值是production(大小写不敏感)的实例日志,采集策略如下所示。
# only scan "production" instances
keep tag.type ~= "(?i)^production$"
# accept by default
accept "*"
- 复杂场景例如:只采集RDS MySQL实例日志,但是如果标签打上level: high的实例,无论数据库类型是MySQL、SQL Server或PostgreSQL,都采集,采集策略如下所示。
# accept all high level instances
accept tag.level == "high"
# only scan mysql
keep instance.db_type == "mysql"
# accept by default
accept "*"