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导出器来公开。
最后更新于