Working with Auditing

1. Enabling Audit Log

auditLog:
  destination: file
  format: JSON
  path: /var/log/mongodb/audit.json

2. Configuring Audit Filters

FormDetail
auditLog.filterBSON predicate on audit events
runtimeConfigurationsetAuditConfig command

3. Auditing Authentication Events

ActionDetail
authenticateLogin attempts
logoutDisconnection
authCheckPrivilege checks (verbose)

4. Auditing Authorization Events

ActionDetail
createUser / dropUserUser lifecycle
grantRolesToUser / revokePrivilege changes

5. Auditing DDL Operations

ActionDetail
createCollection / dropCollectionSchema lifecycle
createIndex / dropIndexIndexes
dropDatabaseDB removal

6. Auditing DML Operations

AspectDetail
Enablefilter on {atype:"authCheck", "param.command":"insert"}
CautionVolume can be huge

7. Auditing Administrative Actions

ActionDetail
replSetReconfigReplica set topology changes
shutdownServer shutdowns
setParameterRuntime config changes

8. Using Audit Log File

DestinationDetail
fileJSON or BSON output
syslogOS syslog
consoleStdout

9. Understanding Audit Event Structure

FieldDetail
atypeAction type
tsTimestamp
usersActing principals
rolesActive roles
paramAction-specific args
result0 = success

10. Analyzing Audit Logs

ToolUse
jqFilter JSON events on CLI
SIEMForward to Splunk / Elastic
AtlasBuilt-in audit log viewer