MongoDB Enterprise包含针对mongod
和mongos
实例的审核功能
。审核功能使管理员和用户可以跟踪具有多个用户和应用程序的部署的系统活动。
审核工具可以将审核事件写入控制台,syslog,JSON文件或BSON文件。要为MongoDB Enterprise启用审核,请参阅 配置审核。
有关审核日志消息的信息,请参阅系统事件审核消息。
启用后,审核系统可以记录以下操作[1]:
auditAuthorizationSuccess
设置为true
)。有关审核的操作的详细信息,请参阅审核事件操作,详细信息和结果。
使用审核系统,您可以设置过滤器以限制捕获的事件。要设置过滤器,请参阅“ 配置审核过滤器”。
[1] | 中止的事务中的操作仍会生成审核事件。但是,没有审核事件指示事务中止。 |
审核系统会将每个审核事件[2]写入内存中的审核事件缓冲区。MongoDB定期将此缓冲区写入磁盘。对于从任何单个连接收集的事件,这些事件具有总顺序:如果MongoDB将一个事件写入磁盘,系统将保证已将该连接的所有先前事件写入磁盘。
如果审核事件条目对应于影响数据库持久状态的操作(例如,对数据的修改),则MongoDB将始终在将审核事件写入磁盘之前,将该条目写入 日志。
也就是说,在将操作添加到日志之前,MongoDB会在触发该操作的连接上写入所有审核事件,直到并包括该操作的条目。
这些审核保证要求MongoDB journaling
启用后才能运行
。
警告
如果服务器在将事件提交到审核日志之前终止,则MongoDB可能会丢失事件。在MongoDB提交审核日志之前,客户端可能会收到事件确认。例如,在审核聚合操作时,服务器可能在返回结果之后但在刷新审核日志之前崩溃。
[2] | 审核配置可以包括一个筛选器,以限制要审核的事件。 |