采集策略

更新时间: 2023-09-07 10:11:10

日志审计提供一键式跨账号采集云产品日志及中心化存储功能。对于已开通日志审计的阿里云产品,日志服务默认采集所有符合限定条件的云产品日志。而通过采集策略,可对账号、地域或实例等因素进行限制,实现精细化的日志采集目的。本文介绍如何配置采集策略。

产品支持

采集策略目前支持RDS、PolarDB-X 1.0、PolarDB、SLB、ALB、VPC、DNS、Kubernetes容器和IDaaS,详细说明如下所示。
云产品采集对象属性说明
RDSRDS实例账号:account.idRDS实例所属的阿里云账号ID。
地域:regionRDS实例所属的地域,例如:cn-shanghai。
实例ID:instance.idRDS实例ID。
实例名:instance.nameRDS实例名。
DB类型:instance.db_typeDB类型,可取值为mysql、pgsql、mssql。
DB版本号:instance.db_versionDB版本号,例如:8.0。
标签:tag.* 用户自定义的标签名。

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

PolarDBPolarDB集群账号:account.idPolarDB集群所属的阿里云账号ID。
地域:regionPolarDB集群所属的地域,如cn-shanghai。
集群ID:cluster.idPolarDB集群ID。
集群名:cluster.namePolarDB集群名称。
集群兼容的DB类型:cluster.db_typePolarDB集群兼容的DB类型,目前只支持MySQL。
集群兼容的DB版本:cluster.db_versionDB版本号,可选值为8.0、5.7和5.6。
标签:tag.*用户自定义的标签名。

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

PolarDB-X 1.0PolarDB-X 1.0实例账号:account.idPolarDB-X 1.0实例所属的阿里云账号ID。
地域:regionPolarDB-X 1.0实例所属的地域,例如:cn-shanghai。
实例ID:instance.idPolarDB-X 1.0实例ID。
实例名:instance.namePolarDB-X 1.0实例名。
SLBSLB实例账号:account.idSLB实例所属的阿里云账号ID。
地域:regionSLB实例所属的地域,例如:cn-shanghai。
实例ID:instance.idSLB实例ID。
实例名:instance.nameSLB实例名。
网络类型:instance.network_typeSLB网络类型,包括专有网络(VPC)和经典网络(Classic)。
VPC ID:instance.vpc_idSLB实例所属的专有网络VPC ID。
地址类型:instance.address_typeSLB实例的地址类型,包括阿里云内网(intranet)和公网(internet)。
标签:tag.* 用户自定义的标签名。

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

ALBALB实例账号:account.idALB实例所属的阿里云账号ID。
地域:regionALB实例所属的地域,例如:cn-shanghai。
实例ID:instance.idALB实例ID。
实例名:instance.nameALB实例名。
VPC ID:instance.vpc_idALB实例所属的专有网络VPC ID。
地址类型:instance.address_typeALB实例的地址类型,包括阿里云内网(Intranet)和公网(Internet)。
标签:tag.* 用户自定义的标签名。

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

VPCVPC实例账号:account.idVPC实例所属的阿里云账号ID。
地域:regionVPC实例所在的地域。
实例ID:instance.idVPC实例ID。
实例名:instance.nameVPC实例名。
标签:tag.*用户自定义的标签名。

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

DNSVPC实例账号:account.idVPC实例所属的阿里云账号ID。
地域:regionVPC实例所在的地域。
实例ID:instance.idVPC实例ID。
实例名:instance.nameVPC实例名。
标签:tag.*用户自定义的标签名。

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

Kubernetes容器(Kubernetes审计日志)Kubernetes集群地域:regionKubernetes集群所属地域,例如:cn-shanghai。
集群ID:cluster.idKubernetes集群ID。
集群名:cluster.nameKubernetes集群名称。
集群类型:cluster.typeKubernetes集群类型,包括专有版Kubernetes Kubernetes、托管版Kubernetes ManagedKubernetes、Serverless Kubernetes ASK。
网络类型:cluster.network_modeKubernetes集群的网络类型,包括专有网络(VPC)和经典网络(Classic)。
标签:tag.* 用户自定义的标签名。

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

Kubernetes容器(Kubernetes事件中心)Kubernetes集群地域:regionKubernetes集群所属地域,例如:cn-shanghai。
集群ID:cluster.idKubernetes集群ID。
集群名:cluster.nameKubernetes集群名称。
集群类型:cluster.typeKubernetes集群类型,包括专有版Kubernetes、托管版Kubernetes、Serverless Kubernetes。
网络类型:cluster.network_modeKubernetes集群的网络类型,包括专有网络和经典网络。
标签:tag.* 用户自定义的标签名。

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

Kubernetes容器( Ingress访问日志)Kubernetes集群地域:regionKubernetes集群所属地域,例如:cn-shanghai。
集群ID:cluster.idKubernetes集群ID。
集群名:cluster.nameKubernetes集群名称。
集群类型:cluster.typeKubernetes集群类型,包括专有版Kubernetes、托管版Kubernetes、Serverless Kubernetes。
网络类型:cluster.network_modeKubernetes集群的网络类型,包括专有网络(VPC)和经典网络(Classic)。
标签:tag.* 用户自定义的标签名。

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

日志内容:log.*日志内容。
IDaaSIDaaS应用身份服务实例账号:account.idIDaaS应用身份服务实例所属的阿里云账号ID。
实例ID:instance.idIDaaS应用身份服务实例ID。
实例名:instance.nameIDaaS应用身份服务实例名。

配置采集策略

  1. 登录日志服务控制台
  2. 日志应用区域的审计与安全页签下,单击日志审计服务
  3. 选择云产品接入 > 全局配置,单击修改
  4. 单击目标云产品右侧的采集策略
  5. 配置采集策略。
    日志服务支持通过默认采集策略模式或高级编辑模式配置采集策略。默认采集策略模式配置简单,当默认采集策略模式无法满足您的需求时,可开启高级编辑模式,灵活配置复杂的采集策略。
    说明
    • 您可以根据实际需求,配置多条采集策略。
    • 在高级编辑模式下,您可以手动编辑策略语句,但在手动编辑策略语句后,无法返回到默认采集策略模式。
    • 在高级编辑模式下,清空策略语句并保存,再次打开可恢复到默认采集策略模式。
    • 默认采集策略
      1. 待添加策略区域,配置如下参数,并单击添加策略
        说明 如果打开默认采集策略的保留开关,则说明采集策略的最后一行为accept "*"(默认策略--接受);如果关闭默认采集策略的保留开关,则说明采集策略的最后一行为drop "*"(默认策略--丢弃)
        采集策略-002
        参数说明
        动作通过您配置的采集策略,执行相应的动作。更多信息,请参见策略语法
        属性选择采集对象的属性,不同采集对象对应的属性不同。更多信息,请参见产品支持
        操作符选择操作符,例如选择完全匹配,则对应的操作符为==。更多信息,请参见策略语法
        属性取值输入属性的值,支持配置多个属性值。
      2. 已添加策略区域,确认策略配置结果。
        您也可以修改已添加的采集策略以及调整采集策略的顺序。
        • 单击目标采集策略右侧的编辑,修改已添加的采集策略。
        • 单击目标采集策略右侧的上下箭头,调整采集策略的顺序。
        采集策略-003
      3. 确认无误后,单击确定
    • 高级编辑模式
      1. 开启高级编辑模式
      2. 规则文本框中,配置采集策略,并单击确定

        详细的语法说明请参见策略语法

        采集策略-001
  6. 全局配置页面,单击确定

策略语法

  • 动作
    • 保持(keep):当采集对象满足采集策略时继续执行下一条策略,由后续策略判断是否采集日志。不满足则拒绝采集日志,不再做后续策略判断。
    • 拒绝(drop):当采集对象满足采集策略时拒绝采集日志,不再执行下一条策略。不满足则继续执行下一条策略,由后续策略判断是否采集。
    • 接受(accept):当采集对象满足采集策略时采集日志,不再执行下一条策略。不满足则继续执行下一条策略,由后续策略判断是否采集。
    动作
  • 匹配模式
    匹配模式说明
    完全匹配通过字符串的完全匹配,进行采集策略的匹配。
    • 操作符:==
    • 示例:keep instance.db_type == "mysql"表示MySQL类型的RDS实例通过当前判断。
    通配符匹配通过通配符星号(*)和半角问号(?)进行采集策略的匹配。星号(*) 表示0个或多个字符,半角问号(?)表示一个字符。
    • 操作符:==
    • 示例:
      • keep instance.name == "backend*" 表示实例名以backend开头的实例,通过当前判断。
      • keep instance.name == "active?"表示实例名以active开头且其后面还有一个任意字符的实例,通过当前判断。
    正则表达式匹配通过正则表达式进行采集策略的匹配。
    • 操作符:~=
    • 示例:keep instance.name ~= "^\d+$"表示纯数字的实例名通过当前判断。
    说明 默认为部分匹配,如果需要完全匹配,需要在开头和结尾加上^和$。
    数值比较对数值进行比较。
    • 操作符:
      • 直接比较:>、>=、=、<=、<
      • 闭区间比较:: [*, 100],支持用星号(*)表示无边界。
    • 示例:
      • keep tag.level >= 2表示tag.level大于等于2的实例,通过当前判断。
      • keep tag.level : [*, 10]表示tag.level小于等于10的实例,通过当前判断。
      • keep tag.level : [1, 10]表示tag.level位于[1, 10]之间的实例,通过当前判断。
    逻辑关系
    • 关键字:
      • 且:使用and、AND、&&等关键词,不区分大小写。
      • 或:使用or、OR等关键词,不区分大小写。
      • 否:使用not,NOT,感叹号(!)等关键词,不区分大小写。
    • 示例:
      • keep (tag.level > 10) and (region == "cn-shanghai")表示tag.level大于10且位于上海的实例,通过当前判断。
      • keep (tag.level > 10) or (region == "cn-shanghai")表示tag.level大于10或位于上海的实例,通过当前判断。
      • keep not region == "cn-shanghai"表示非上海的示例,通过当前判断。
    全局匹配如果策略中没有指定属性名,则表示全局匹配。例如:
    • keep "abc"表示含有abc字符串的采集项都可以通过当前判断。
    • accept "*"表示接受所有采集项。
    说明
    • 全局匹配,必须带双引号(" ")。
    • 仅在高级编辑模式下,支持全局匹配。
  • 字符转义

    采集策略中,需要对星号(*)、反斜线(\)等特殊字符进行转义,例如:keep instance.name == "abc\*"表示实例名为abc*的实例通过当前判断。

常见案例

  • 采集特定区域的实例日志
    例如:只采集中国区域的实例日志,采集策略如下所示。
    # 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 "*"
阿里云首页 日志服务 相关技术圈