MongoDB设置
该系统需要一个MongoDB副本集集群,用于实现数据冗余和高可用性。
对于生产部署,强烈建议使用多节点集群,以确保最佳性能和稳定性。
硬件要求
CPU:多核处理器
内存:单个节点至少 4GB
硬盘:建议使用SSD硬盘,以获得更好的性能
MongoDB代理只支持安装在64位操作系统中。
安装MongoDB
遵循MongoDB官方安装文档要求,选择合适你操作系统的安装流程。
配置MongoDB副本集
编辑MongoDB配置文件
sudo vi /etc/mongod.conf添加副本集配置
找到replication部分并添加以下代码:
replication:
replSetName: "rs0"此过程将指示MongoDB作为指定副本集 (本示例中为rs0 ) 的一部分启动。
重启MongoDB,以上配置将生效
sudo systemctl restart mongod初始化副本集
启动MongoDB shell,并连接到本地端口27017, (localhost - 27017),运行已安装的MongoDB实例。
如果你的MongoDB服务器运行在不同的主机或端口上,可以分别使用--host和--port选项进行指定。
mongosh --host localhost --port 27017然后,在MongoDB shell中运行下方命令:
rs.initiate()验证副本集配置
rs.status()rs.status()的输出将包括以下信息:
Set Name(set):副本集名称成员(成员):副本集成员列表 (成员阵列),包含hostname(主机名)、state(状态)、health(健康状况)、uptime(运行时间)、last heartbeat message(最后heartbeat消息) 等详细信息。
以下是一个简化示例,用于展示输出结果:
set: 'rs0',
members: [
{
_id: 0,
name: '127.0.0.1:27017',
health: 1,
state: 1,
stateStr: 'PRIMARY',
uptime: 1202009,
optime: { ts: Timestamp({ t: 1721191458, i: 1 }), t: Long('1') },
optimeDate: ISODate('2024-07-17T04:44:18.000Z'),
lastAppliedWallTime: ISODate('2024-07-17T04:44:18.441Z'),
lastDurableWallTime: ISODate('2024-07-17T04:44:18.441Z'),
syncSourceHost: '',
syncSourceId: -1,
infoMessage: '',
electionTime: Timestamp({ t: 1719989484, i: 2 }),
electionDate: ISODate('2024-07-03T06:51:24.000Z'),
configVersion: 1,
configTerm: 1,
self: true,
lastHeartbeatMessage: ''
}
]创建MongoDB凭证
启动MongoDB shell,并连接到本地端口27017, (localhost - 27017),运行已安装的MongoDB实例。
如果你的MongoDB服务器运行在不同的主机或端口上,可以分别使用--host和--port选项进行指定。
mongosh --host localhost --port 27017在MongoDB shell中,运行下方命令创建新用户:
use admin
db.createUser({
user: "<username>",
pwd: "<password>",
roles: [ { role: "readWrite", db: "<database>" } ]
})你可以自定义<username> (用户名)、 <password>(密码)和<database>(数据库名称)。
服务器监控
可通过Prometheus Blackbox Exporter轮询MongoDB服务器的可用性。
MongoDB特定的Prometheus指标也可以通过任何开源Prometheus MongoDB导出器来公开。
最后更新于