温馨提示×

linux mongodb配置如何审计

小樊
44
2026-10-19 01:50:23
栏目: 云计算

在 Linux 上配置 MongoDB 审计(Audit),核心是通过 MongoDB Enterprise 的 Audit Log(社区版不支持完整审计,只能用慢查询日志等代替)。下面按「是否能用 Enterprise」和「社区版替代方案」说明。


一、MongoDB Enterprise 审计配置(推荐)

✅ 只有 MongoDB Enterprise 支持完整审计功能

1. 修改配置文件(mongod.conf)

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

或输出到 syslog:

security:
  auditLog:
    destination: syslog
    format: JSON

2. 指定审计过滤器(可选)

例如只审计 admin 库和删除操作:

security:
  auditLog:
    destination: file
    format: JSON
    path: /var/log/mongodb/auditLog.json
    filter: '{ "atype": { "$in": ["delete", "drop", "authCheck"] } }'

3. 重启 MongoDB

systemctl restart mongod

4. 查看审计日志

tail -f /var/log/mongodb/auditLog.json

示例记录:

{
  "ts": { "$date": "2024-01-01T10:00:00Z" },
  "op": "command",
  "ns": "admin.$cmd",
  "user": "admin",
  "atype": "authenticate"
}

二、社区版 MongoDB 的审计替代方案

方案 1:开启慢查询日志(最常用)

operationProfiling:
  slowOpThresholdMs: 100
  mode: all

查看:

tail -f /var/log/mongodb/mongod.log

⚠️ 只能看到执行语句,看不到“谁执行的”


方案 2:Linux auditd 监控文件和操作

auditctl -w /var/lib/mongodb -p rwxa -k mongodb

查看:

ausearch -k mongodb

方案 3:用 MongoDB 角色 + 日志

  • 限制用户权限
  • 通过 db.currentOp() 分析实时操作

三、生产建议

  • ✅ 使用 Enterprise + JSON 审计日志
  • ✅ 审计日志单独磁盘
  • ✅ 配合 ELK / Splunk 分析
  • ✅ 定期归档和清理

如果你告诉我:

  • MongoDB 版本
  • 是否 Enterprise
  • 审计目标(安全合规 / 问题排查)

我可以给你一套 可直接用的配置模板。

0 踩