MongoDB审计日志记录了您对数据库执行的所有操作。通过审计日志记录,您可以对数据库进行故障分析、行为分析、安全审计等操作,有效帮助您获取数据的执行情况。

前提条件

目前只有副本集实例和分片集群实例支持审计日志,单节点实例暂不支持该功能。

开启和关闭审计日志只能通过控制台操作。详情请参见开启审计日志关闭审计日志

查询审计日志可以通过控制台或者API来完成。具体操作,请参见通过控制台查询和下载审计日志,通过DescribeAuditRecords查询审计日志。

实例为副本集实例时,您可以通过控制台设置审计的数据库操作类型。详情,请参见审计设置

集群版实例暂不支持您自行设置审计的数据库操作类型。开启审计日志时,系统自动将admin,slow,query,insert,update,delete数据库操作作为审计项。

开启审计日志

  1. 登录MongoDB管理控制台
  2. 在控制台左上方选择地域。
  3. 单击目标实例ID。

    您也可以单击目标实例右侧的 > 管理

  4. 在实例基本信息页面,单击左侧导航栏中的数据安全性 > 审计日志
  5. 单击开启审计,弹出开启日志提示框。
    说明
    开启审计日志时,CloudDBA索引推荐功能将同步开启。关于CloudDBA索引推荐,请参见推荐索引
  6. 单击确定,开启审计日志。

    开启审计日志后,您可以做以下操作。

查询和下载审计日志

  1. 登录MongoDB管理控制台
  2. 在控制台左上方选择地域。
  3. 单击目标实例ID。

    您也可以单击目标实例右侧的 > 管理

  4. 在实例基本信息页面,单击左侧导航栏中的数据安全性 > 审计日志
  5. 导出文件下,您可以查询、导出以及下载审计日志。
    • 查询:您可以输入数据库名字(DB)、数据库的登录账户名(User)、集合中的任何一个词或者记录(Keyword),选择或者输入起始时间、截止时间来按条件查询审计日志。如表 1所示。
      表 1. 审计日志文件列表
      参数 说明
      数据库名 若在查询时指定数据库的名字,则显示实例中指定数据库的审计日志。

      若查询时没有指定数据库名,则显示实例中所有数据库的审计日志。

      账号名 若在查询时指定了登录数据库的账户名,则显示实例中指定账户的数据库的审计日志。

      若查询时没有指定登录数据库的账户名,则显示实例中所有数据库的审计日志。

      客户端IP 若查询时指定了登录数据库的客户端IP,则显示实例中指定登录客户端IP的数据库的审计日志。

      若查询时没有指定登录数据库的客户端IP,则显示实例中所有数据库的审计日志。

      执行语句 若查询时指定了Keyword,则显示实例中包含Keyword执行语句的数据库审计日志。

      若查询时没有指定Keyword,则显示实例中所有数据库的审计日志。

      消耗时间(微秒) 数据库语句的执行时间。
      返回记录数 数据库语句执行后返回的记录数。
      线程ID -
      执行时间 语句的执行时间。
    • 导出文件:导出审计日志文件。
      说明
      如果满足过滤条件的语句总量超过100万条,则只会导出100万条。 导出语句的速度为900行/秒,100万条语句的导出时间预估为20分钟。
    • 文件列表:查看导出的审计日志文件列表,如表 2所示。
      表 2. 导出审计日志文件列表
      参数 说明
      文件ID 系统自动生成的审计日志文件ID。
      文件状态 审计日志文件有两种文件状态。
      • 未开始:系统还未开始或者正在导出审计日志文件。
      • 归档完成:成功导出审计日志文件。
        说明
        只有归档完成的文件才能被下载。
      审计日志起始时间 审计日志的起始时间。
      审计日志结束时间 审计日志的结束时间。
      下载地址 单击下载地址,将审计日志下载至本地。
      日志文件大小 审计日志文件的大小。

关闭审计日志

  1. 登录MongoDB管理控制台
  2. 在控制台左上方选择地域。
  3. 单击目标实例ID。

    您也可以单击目标实例右侧的 > 管理

  4. 在实例基本信息页面,单击左侧导航栏中的数据安全性 > 审计日志
  5. 单击关闭审计,弹出关闭日志提示框。
    说明
    关闭审计日志后,对日志的采集将会关闭,也无法对后继的数据库操作进行审计,且之前保存的审计日志也将清除。
  6. 单击确定,关闭审计日志。

审计设置

MongoDB副本集实例在开启审计日志后,支持您自行设置审计哪些数据库操作。

  1. 登录MongoDB管理控制台
  2. 在控制台左上方选择地域。
  3. 单击目标实例ID。

    您也可以单击目标实例右侧的 > 管理

  4. 在实例基本信息页面,单击左侧导航栏中的数据安全性 > 审计日志
  5. 单击审计设置
  6. 审计设置对话框中,设置审计的数据库操作类型。
    您可以选择以下数据库操作。
    • admin:运维操作;
    • slow:慢查询;
    • query:查询;
    • insert:插入;
    • update:更新;
    • delete:删除;
    • command:协议命令。例如,aggregate聚合方法等。
    说明
    • 在2018年7月份之前开启审计日志的实例,审计日志中默认审计操作类型有admin,slow,insert,update,delete,command。没有设置query查询操作,如有需要,可通过审计设置功能设置。
    • 2018年7月份之后开启审计日志的实例,审计日志中默认审计操作类型有admin,slow,query,insert,update,delete,command。
  7. 单击确定,完成设置。