Spring boot 使用logback AOP实现HTTP请求日志入MongoDB
MongoDB安装与远程访问
安装MongoDB
1.1 为软件包管理系统导入公钥
Ubuntu 软件包管理工具为了保证软件包的一致性和可靠性需要用 GPG 密钥检验软件包。使用下列命令导入 MongoDB 的 GPG 密钥 ( MongoDB public GPG Key http://docs.mongodb.org/10gen-gpg-key.asc)_:`sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927`
1.2 为MongoDB创建列表文件
使用下列命令创建 /etc/apt/sources.list.d/mongodb.list 列表文件Unbuntu 12.xx
echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Unbuntu 14.xx
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
1.3 重载软件包数据库
使用如下命名重载本地软件包数据库
sudo apt-get update
1.4 安装MOngoDB软件包
安装MongoDB最新的稳定版本–(这个过程有点漫长)
sudo apt-get install -y mongodb-org
至此MongoDB就安装好了
MongoDB默认的数据文件和日志文件分别存储在下面的位置 :
数据文件:/var/lib/mongodb
日志文件:/var/log/mongodb
你可以修改/etc/mongod.conf 文件来改变相应的存储位置。
1.5 检查MongoDB是否成功启动
通过检查 /var/log/mongodb/mongod.log 文件来确定 mongod 进程是否已经成功启动。
或者查看进程ps -ef | grep mongod
MongoDB权限设置
- 数据库是由超级用户来创建的,一个数据库可以包含多个用户,一个用户只能在一个数据库下,不同数据库中的用户可以同名
- 如果在 admin 数据库中不存在用户,即使 mongod 启动时添加了 –auth 参数,此时不进行任何认证还是可以做任何操作
- 在 admin 数据库创建的用户具有超级权限,可以对 MongoDB 系统内的任何数据库的数据对象进行操作
- 特定数据库比如 test1 下的用户 test_user1,不能够访问其他数据库 test2,但是可以访问本数据库下其他用户创建的数据
- 不同数据库中同名的用户不能够登录其他数据库。比如数据库 test1 和 test2 都有用户 test_user,以 test_user 登录 test1 后,不能够登录到 test2 进行数据库操作
查看 admin 数据库中的用户信息,因为是刚建立的数据库所以 user 为空
use admin
switched to db admin
db.system.users.find(); # 默认 admin 数据库中不存在用户创建超级权限用户
db.createUser(
{
user: "Admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
创建某数据库的普通用户
db.createUser(
{
user: "user",
pwd: "user",
roles: [ { role: "readWrite", db: "dazhiLogs" }]
}s
)
运行MongoDB
安装好MongoDB之后,默认是开启的,但是不可以远程访问,通过如下操作使它可以远程访问3.1 修改绑定ip
vi /etc/mongod.conf
注释掉#bindIp: 127.0.0.1
3.2:重启MongoDB以开启认证方式启动MongoDB
/usr/bin/mongod --config /etc/mongod.conf --auth &
3.3:开启端口
`iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT `
好啦 到了这里 关于Mongo的准备工作就足够了
logback配置MongoDB
在logback.xml文件中配置日志输入MongoDB
在pom.xml中引入mongodb驱动
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.4.2</version>
</dependency>
<depe