在Ubuntu上配置MongoDB的审计日志可以帮助你监控和记录数据库的活动。以下是详细的步骤来配置MongoDB的审计日志:
如果你还没有安装MongoDB,可以使用以下命令进行安装:
sudo apt update
sudo apt install -y mongodb
确保MongoDB服务正在运行:
sudo systemctl start mongod
sudo systemctl enable mongod
MongoDB的审计日志配置可以通过修改MongoDB的配置文件来完成。默认情况下,配置文件位于 /etc/mongod.conf。
使用你喜欢的文本编辑器打开配置文件:
sudo nano /etc/mongod.conf
在配置文件中找到 security 部分,并添加或修改以下内容:
security:
  authorization: enabled
  auditLog:
    destination: file
    format: JSON
    path: /var/log/mongodb/audit.json
    filter: '{ "severity": { "$gte": 1 } }'  # 只记录严重级别大于等于1的事件
destination: 审计日志的输出位置,可以是 file 或 syslog。format: 日志格式,可以是 JSON 或 CSV。path: 日志文件的路径。filter: 审计日志的过滤条件,可以根据需要调整。确保日志目录存在并且MongoDB有权限写入:
sudo mkdir -p /var/log/mongodb
sudo chown mongodb:mongodb /var/log/mongodb
保存并关闭配置文件后,重启MongoDB服务以应用更改:
sudo systemctl restart mongod
你可以通过查看日志文件来验证审计日志是否正常工作:
tail -f /var/log/mongodb/audit.json
你应该能够看到一些审计日志条目。
MongoDB允许你通过审计策略来控制哪些操作会被记录。你可以在MongoDB shell中设置审计策略:
mongo
在MongoDB shell中,使用以下命令设置审计策略:
db.getSiblingDB("$cmd").systemVersion.find().pretty()
db.getSiblingDB("$cmd").auditLog.createUser({
  user: "auditUser",
  roles: [
    { role: "readWrite", db: "admin" },
    { role: "clusterMonitor", db: "admin" }
  ]
})
这将创建一个具有读取和写入权限以及集群监控权限的用户,用于审计日志。
你可以使用各种工具来监控和分析审计日志,例如ELK Stack(Elasticsearch, Logstash, Kibana)或Splunk。
通过以上步骤,你应该能够在Ubuntu上成功配置MongoDB的审计日志。