2023年8月1日发(作者:)
MongoDB的安装配置与开启审计⽇志MongoDB的安装配置与开启审计⽇志欢迎来到知道的越多,不知道的越多系列!1、Mongo的安装教程(Linux)1、下载安装包tar -zxvf mongodb-linux-x86_ ./mongodb-linux-x86_64-4.0.6 /usr/local/mongodb4、进去mongodb⽂件夹cd /usr/local/mongodb/5、创建db的⽬录和⽇志⽂件夹mkdir -p ./data/dbmkdir -p ./logstouch ./logs/6、创建mongo配置⽂件 6.1、conf配置⽂件形式:vim #端⼝号port=27017#数据⽬录dbpath=/usr/local/mongodb/data/db#⽇志⽬录logpath=/usr/local/mongodb/logs/#后台启动fork=true#追加⽇志输出logappend=true#允许远程IP连接(所有)bind_ip=0.0.0.0 6.2、yml配置⽂件形式:processManagement: fork: truenet: bindIp: 127.0.0.1 port: 27017storage: dbPath: 数据存放路径/data/dbsystemLog: destination: file path: log/ logAppend: truestorage: journal: enabled: true7、配置⽂件启动 7.1、conf配置⽂件启动:./bin/mongod --config 7.2、yml配置⽂件形式启动:./bin/mongod --config 8、连接到mongo./bin/mongo2、安装中遇到的问题:1、配置⽂件启动时报错error while loading shared libraries: .10: cannot open shared object file: No such file or directory原因:没有装.10库解决⽅案:安装yum -y install compat-openssl102、配置⽂件启动时报错error while loading shared libraries: .35: cannot open shared object file: No such file or directory原因:没有装net-snmp解决⽅案:安装yum install net-snmp3、创建mongo账户1、Read:允许⽤户读取指定数据库2、readWrite:允许⽤户读写指定数据库3、dbAdmin:允许⽤户在指定数据库中执⾏管理函数,如索引创建、删除,查看统计或访问e4、userAdmin:允许⽤户向集合写⼊,可以找指定数据库⾥创建、删除和管理⽤户5、clusterAdmin:只在admin数据库中可⽤,赋予⽤户所有分⽚和复制集相关函数的管理权限。6、readAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的读权限7、readWriteAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的读写权限8、userAdminAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的userAdmin权限9、dbAdminAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的dbAdmin权限。10、root:只在admin数据库中可⽤。超级账号,超级权限1)创建管理员账户切换到admin数据库use admin添加账户(root:最⾼权限任意操作,userAdminAnyDatabase:管理⽤户权限)User({ user: "root", pwd: "Zz@123456", roles: [{ role: "root", db: "admin" }] })修改⽂件, 增加配置auth=true或者yml格式的加⼊这个配置security: authorization: enabled重启MongoDB服务#停掉服务kill -9 PID#根据配置⽂件启动服务./bin/mongod --config 连接mongo./mongo认证:(未认证查看或操作)use ("root","Zz@123456") #返回1,认证成功2)创建普通⽤户管理员账户认证use ("root","Zz@123456")切换到指定库use 指定库名创建普通账户,给定权限User({ user: "user", pwd: "123456", roles: [{ role: "readWrite", db: "test数据库名称" }] })注意:创建成功,⽆需重启更新⾓⾊权限(root最⾼权限)User("root",{roles : [{"role" : "root","db" : "admin"}]})4、开启mongo审计功能1、概述在数据库安全的⽣命周期中,包括:保护、检测、响应及补救。检测的核⼼就是审计(Audit)。审计功能可以⽤来记录⽤户对数据库的所有相关操作。这些记录可以让系统管理员在需要的时候分析数据库在什么时段发⽣了什么事情。mongodb分为社区版和企业版,只有企业版MongoDB Enterprise才有审计功能。mongodb的企业版下载链接:yum install net-snmp cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi注意:配置⽂件采⽤yml格式auditLog: destination: 审计展⽰类型(console窗⼝展⽰、syslog系统⽇志保存、file⽂件保存。) format: 在JSON⽂件或者BSON⽂件中 path: 保存路径 filter: ⽇志过滤条件setParameter: { auditAuthorizationSuccess: true }# 审计⽇志设置(此过滤能满⾜绝⼤部分的⽇志记录,减少记录⽆效⽇志)auditLog: destination: file format: JSON path: /usr/local/mongodb/data/auditLog/ filter: '{ atype:{ $in: ["authCheck","createCollection","createDatabase"] },"":{$nin:[ "n"]},"d":{$nin:[ "isMaster","ismaster","saslStart","saslContinue","listCollections","listDatabases","listIndexes","collStats","find","getlasterror","buildinfo","getLastError","aggregate"] } }'setParameter: { auditAuthorizationSuccess: true }注意:⽇志则保存在中,可通过tail -f 实时在线查看⽇志打印情况。5、⽇志详情介绍任何⼀种数据库都有各种各样的⽇志,MongoDB也不例外。MongoDB中有4种⽇志,分别是系统⽇志、Journal⽇志、oplog主从⽇志、慢查询⽇志等。这些⽇志记录着MongoDB数据库不同⽅⾯的踪迹。下⾯分别介绍这⼏种⽇志。1、系统⽇志系统⽇志在MongoDB数据库中很重要,它记录着MongoDB启动和停⽌的操作,以及服务器在运⾏过程中发⽣的任何异常信息。配置系统⽇志的⽅法⽐较简单,在启动mongod时指定logpath参数即可mongod -logpath=/data/log/mongodb/ -logappend系统⽇志会向logpath指定的⽂件持续追加。2、Journal⽇志(⼀般配置⽂件中开启)journaling(⽇记) ⽇志功能则是 MongoDB ⾥⾯⾮常重要的⼀个功能 , 它保证了数据库服务器在意外断电 、 ⾃然灾害等情况下数据的完整性。它通过预写式的redo⽇志为MongoDB增加了额外的可靠性保障。开启该功能时,MongoDB会在进⾏写⼊时建⽴⼀条Journal⽇志,其中包含了此次写⼊操作具体更改的磁盘地址和字节。因此⼀旦服务器突然停机,可在启动时对⽇志进⾏重放,从⽽重新执⾏那些停机前没能够刷新到磁盘的写⼊操作3、oplog主从⽇志Replica Sets复制集⽤于在多台服务器之间备份数据。MongoDB的复制功能是使⽤操作⽇志oplog实现的,操作⽇志包含了主节点的每⼀次写操作。⼀个mongod实例中的所有数据库都使⽤同⼀个oplog,也就是所有数据库的操作⽇志(插⼊,删除,修改)都会记录到oplog中4、慢查询⽇志MongoDB中使⽤系统分析器(system profiler)来查找耗时过长的操作。系统分析器记录固定集合e中的操作,并提供⼤量有关耗时过长的操作信息,但相应的mongod的整体性能也会有所下降。因此我们⼀般定期打开分析器来获取信息。默认情况下,系统分析器处于关闭状态,不会进⾏任何记录。可以在shell中运⾏filingLevel()开启分析器filingLevel(``level``,
2023年8月1日发(作者:)
MongoDB的安装配置与开启审计⽇志MongoDB的安装配置与开启审计⽇志欢迎来到知道的越多,不知道的越多系列!1、Mongo的安装教程(Linux)1、下载安装包tar -zxvf mongodb-linux-x86_ ./mongodb-linux-x86_64-4.0.6 /usr/local/mongodb4、进去mongodb⽂件夹cd /usr/local/mongodb/5、创建db的⽬录和⽇志⽂件夹mkdir -p ./data/dbmkdir -p ./logstouch ./logs/6、创建mongo配置⽂件 6.1、conf配置⽂件形式:vim #端⼝号port=27017#数据⽬录dbpath=/usr/local/mongodb/data/db#⽇志⽬录logpath=/usr/local/mongodb/logs/#后台启动fork=true#追加⽇志输出logappend=true#允许远程IP连接(所有)bind_ip=0.0.0.0 6.2、yml配置⽂件形式:processManagement: fork: truenet: bindIp: 127.0.0.1 port: 27017storage: dbPath: 数据存放路径/data/dbsystemLog: destination: file path: log/ logAppend: truestorage: journal: enabled: true7、配置⽂件启动 7.1、conf配置⽂件启动:./bin/mongod --config 7.2、yml配置⽂件形式启动:./bin/mongod --config 8、连接到mongo./bin/mongo2、安装中遇到的问题:1、配置⽂件启动时报错error while loading shared libraries: .10: cannot open shared object file: No such file or directory原因:没有装.10库解决⽅案:安装yum -y install compat-openssl102、配置⽂件启动时报错error while loading shared libraries: .35: cannot open shared object file: No such file or directory原因:没有装net-snmp解决⽅案:安装yum install net-snmp3、创建mongo账户1、Read:允许⽤户读取指定数据库2、readWrite:允许⽤户读写指定数据库3、dbAdmin:允许⽤户在指定数据库中执⾏管理函数,如索引创建、删除,查看统计或访问e4、userAdmin:允许⽤户向集合写⼊,可以找指定数据库⾥创建、删除和管理⽤户5、clusterAdmin:只在admin数据库中可⽤,赋予⽤户所有分⽚和复制集相关函数的管理权限。6、readAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的读权限7、readWriteAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的读写权限8、userAdminAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的userAdmin权限9、dbAdminAnyDatabase:只在admin数据库中可⽤,赋予⽤户所有数据库的dbAdmin权限。10、root:只在admin数据库中可⽤。超级账号,超级权限1)创建管理员账户切换到admin数据库use admin添加账户(root:最⾼权限任意操作,userAdminAnyDatabase:管理⽤户权限)User({ user: "root", pwd: "Zz@123456", roles: [{ role: "root", db: "admin" }] })修改⽂件, 增加配置auth=true或者yml格式的加⼊这个配置security: authorization: enabled重启MongoDB服务#停掉服务kill -9 PID#根据配置⽂件启动服务./bin/mongod --config 连接mongo./mongo认证:(未认证查看或操作)use ("root","Zz@123456") #返回1,认证成功2)创建普通⽤户管理员账户认证use ("root","Zz@123456")切换到指定库use 指定库名创建普通账户,给定权限User({ user: "user", pwd: "123456", roles: [{ role: "readWrite", db: "test数据库名称" }] })注意:创建成功,⽆需重启更新⾓⾊权限(root最⾼权限)User("root",{roles : [{"role" : "root","db" : "admin"}]})4、开启mongo审计功能1、概述在数据库安全的⽣命周期中,包括:保护、检测、响应及补救。检测的核⼼就是审计(Audit)。审计功能可以⽤来记录⽤户对数据库的所有相关操作。这些记录可以让系统管理员在需要的时候分析数据库在什么时段发⽣了什么事情。mongodb分为社区版和企业版,只有企业版MongoDB Enterprise才有审计功能。mongodb的企业版下载链接:yum install net-snmp cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi注意:配置⽂件采⽤yml格式auditLog: destination: 审计展⽰类型(console窗⼝展⽰、syslog系统⽇志保存、file⽂件保存。) format: 在JSON⽂件或者BSON⽂件中 path: 保存路径 filter: ⽇志过滤条件setParameter: { auditAuthorizationSuccess: true }# 审计⽇志设置(此过滤能满⾜绝⼤部分的⽇志记录,减少记录⽆效⽇志)auditLog: destination: file format: JSON path: /usr/local/mongodb/data/auditLog/ filter: '{ atype:{ $in: ["authCheck","createCollection","createDatabase"] },"":{$nin:[ "n"]},"d":{$nin:[ "isMaster","ismaster","saslStart","saslContinue","listCollections","listDatabases","listIndexes","collStats","find","getlasterror","buildinfo","getLastError","aggregate"] } }'setParameter: { auditAuthorizationSuccess: true }注意:⽇志则保存在中,可通过tail -f 实时在线查看⽇志打印情况。5、⽇志详情介绍任何⼀种数据库都有各种各样的⽇志,MongoDB也不例外。MongoDB中有4种⽇志,分别是系统⽇志、Journal⽇志、oplog主从⽇志、慢查询⽇志等。这些⽇志记录着MongoDB数据库不同⽅⾯的踪迹。下⾯分别介绍这⼏种⽇志。1、系统⽇志系统⽇志在MongoDB数据库中很重要,它记录着MongoDB启动和停⽌的操作,以及服务器在运⾏过程中发⽣的任何异常信息。配置系统⽇志的⽅法⽐较简单,在启动mongod时指定logpath参数即可mongod -logpath=/data/log/mongodb/ -logappend系统⽇志会向logpath指定的⽂件持续追加。2、Journal⽇志(⼀般配置⽂件中开启)journaling(⽇记) ⽇志功能则是 MongoDB ⾥⾯⾮常重要的⼀个功能 , 它保证了数据库服务器在意外断电 、 ⾃然灾害等情况下数据的完整性。它通过预写式的redo⽇志为MongoDB增加了额外的可靠性保障。开启该功能时,MongoDB会在进⾏写⼊时建⽴⼀条Journal⽇志,其中包含了此次写⼊操作具体更改的磁盘地址和字节。因此⼀旦服务器突然停机,可在启动时对⽇志进⾏重放,从⽽重新执⾏那些停机前没能够刷新到磁盘的写⼊操作3、oplog主从⽇志Replica Sets复制集⽤于在多台服务器之间备份数据。MongoDB的复制功能是使⽤操作⽇志oplog实现的,操作⽇志包含了主节点的每⼀次写操作。⼀个mongod实例中的所有数据库都使⽤同⼀个oplog,也就是所有数据库的操作⽇志(插⼊,删除,修改)都会记录到oplog中4、慢查询⽇志MongoDB中使⽤系统分析器(system profiler)来查找耗时过长的操作。系统分析器记录固定集合e中的操作,并提供⼤量有关耗时过长的操作信息,但相应的mongod的整体性能也会有所下降。因此我们⼀般定期打开分析器来获取信息。默认情况下,系统分析器处于关闭状态,不会进⾏任何记录。可以在shell中运⾏filingLevel()开启分析器filingLevel(``level``,
发布评论