docker mongo / audit

347 阅读1分钟

这是我参与2022首次更文挑战的第25天,活动详情查看2022首次更文挑战

在最近的工作中需要在docker中安装mongodb并且需要记录mongodb的日志,所以在网上搜索了一些资料,整理如下:

mongodb分为社区版和企业版,只有企业版才有审计功能。官方给的镜像是不支持审计的,需要自己手动修改镜像hub.docker.com/r/percona/p…

安装docker:

www.runoob.com/docker/ubun…

下载docker镜像:

docker pull mongo

ps:带审计功能的需要去下载其他镜像比如:hub.docker.com/r/percona/p… 并且手动修改

配置:

准备本地映射conf文件

├── conf
│   ├── mongo.conf
├── data
└── log
    └── mongo.log

chmod 777 mongo.log

修改配置文件讲如下信息写入配置文件 vi mongo.log

port=27017
dbpath=/data/db/
logpath=/data/log/mongo.log
logappend=true
maxConns=10000
auth=true
oplogSize=2048

带审计功能的日志需要额外添加auditLog配置项,配置如下 vi mongo.log audit

storage:
  dbPath: /data/db/
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /data/log/mongo.log

net:
  port: 27017

auditLog:
  destination: file
  format: JSON
  path: /data/log/audit.json
  filter: '{ atype:{ $in: ["authCheck","createCollection","createDatabase"] },"param.ns":{$nin:[  "admin.system.version"]},"param.command":{$nin:[  "isMaster","ismaster","saslStart","saslContinue","listCollections","listDatabases","listIndexes","collStats","find","getlasterror","buildinfo","getLastError","aggregate"]  }  }'

setParameter: { auditAuthorizationSuccess: true }

启动实例:

docker run -itd --name mongdb_test --privileged -p 27777:27017 -v /root/mongodb/data/:/data/db -v /root/mongodb/log/:/data/log -v /root/mongodb/conf/:/data/configdb -v /root/mongodb/conf/mongo.conf:/data/configdb/mongod.conf mongo --config /data/configdb/mongod.conf --bind_ip_all

-v 指定配置文件启动

--bind_ip_all 允许所以IP访问

--restart=always Docker服务重启容器也启动

--privileged 拥有真正的root权限

检查:

docker ps

测试:

进入docker容器或者外部直接连接

docker exec -it mongodb bash
mongo
> use admin  #切换数据库,如果没有的话就是创建库
> db.createUser({user:'super',pwd:'super', roles:[{role:'root', db:'admin'}]})  #创建用户
> db.auth("super","super")  #切换用户
> db.test.find().pretty()   #查找所有用户

学习资料:

www.cnblogs.com/xuchen0117/… blog.csdn.net/weixin_4239… www.percona.com/blog/2017/0… www.cnblogs.com/moumouLiu/p…
https://severalnines.com/database-blog/audit-logging-mongodb
hub.docker.com/r/percona/p…