首页主机资讯Ubuntu MongoDB的自动化运维怎么做

Ubuntu MongoDB的自动化运维怎么做

时间2026-01-21 17:19:05发布访客分类主机资讯浏览261
导读:Ubuntu 上 MongoDB 自动化运维实践 一 服务自启动与进程守护 使用 systemd 管理 MongoDB,创建或确认服务单元文件 /lib/systemd/system/mongod.service,关键配置示例: [Un...

Ubuntu 上 MongoDB 自动化运维实践

一 服务自启动与进程守护

  • 使用 systemd 管理 MongoDB,创建或确认服务单元文件 /lib/systemd/system/mongod.service,关键配置示例:
    • [Unit] 中 After=network.target
    • [Service] 中 User=mongodb、Group=mongodb、ExecStart=/usr/bin/mongod --config /etc/mongod.conf、Restart=always、RestartSec=3
    • [Install] 中 WantedBy=multi-user.target
  • 启用与验证:
    • 重载并开机自启:sudo systemctl daemon-reload & & sudo systemctl enable mongod
    • 启动与状态:sudo systemctl start mongod & & sudo systemctl status mongod
    • 实时日志:journalctl -u mongod -f
  • 简易自愈监控脚本(示例):
    • 脚本:if systemctl is-active --quiet mongod; then echo “MongoDB is running.”; else echo “MongoDB is down. Restarting…”; sudo systemctl restart mongod; fi
    • 定时:crontab -e 添加 */5 * * * * /path/to/monitor_mongod.sh
  • 常见问题速排:配置文件权限(chown mongodb:mongodb /etc/mongod.conf)、端口冲突(lsof -i :27017)、日志过大(journalctl --vacuum-size=100M)。

二 自动化备份与恢复

  • 备份策略选型
    • 逻辑备份:使用 mongodump,适合中小规模、灵活恢复;命令示例:mongodump --db mydb --out /backup/mongodump/20250107
    • 文件系统快照:如 LVM 快照,速度快、适合大库;流程:创建快照、挂载、拷贝、卸载、删除快照
    • 企业级工具:如 Percona Backup for MongoDB(PBM),支持 S3 存储与增量/时间点恢复
  • 定时备份脚本示例(含压缩与保留策略)
    • 关键点:使用具备 backup 角色的账号;避免硬编码密码(可用环境变量或配置文件);记录日志;压缩与清理旧备份
    • 示例片段:
      • BACKUP_DIR=“/backup/mongodb”;DATE=$(date +%Y%m%d_%H%M%S)
      • mongodump --uri=“mongodb://$MONGO_USER:$MONGO_PASS@localhost:27017/$DB” --out $BACKUP_DIR/$DATE
      • 成功/失败写日志;tar -zcvf $BACKUP_DIR/$DATE.tar.gz $BACKUP_DIR/$DATE
      • 清理:find $BACKUP_DIR -type d -mtime +30 -exec rm -rf { } ;
    • 定时:crontab -e 添加 0 2 * * * /usr/local/bin/mongodb_backup.sh
  • 恢复与验证
    • 逻辑恢复:mongorestore --db mydb /backup/mongodump/20250107/mydb
    • 时间点恢复(需 oplog):mongorestore --oplogReplay /backup/oplog-replay/
    • 定期做恢复演练与校验,确保备份有效与可用。

三 监控与告警

  • 轻量自研监控
    • systemd 自检 + 日志观测(journalctl)+ 定时脚本自检(见第一部分),适合小规模或起步阶段
  • Zabbix 监控示例
    • 安装 Zabbix Agent;在 /etc/zabbix/zabbix_agentd.conf 配置 Server/Hostname
    • 自定义键值(示例):
      • UserParameter=mongodb.connections, mongo --eval “printjson(db.serverStatus().connections)”
      • UserParameter=mongodb.queries, mongo --eval “printjson(db.serverStatus().opcounters)”
      • UserParameter=mongodb.storage, mongo --eval “printjson(db.serverStatus().storageEngine)”
    • Zabbix Server 端创建监控项与触发器(如连接数突增、查询异常、存储引擎异常等),实现可视化与告警。

四 远程访问与安全加固

  • 远程连接配置
    • 修改 /etc/mongod.conf 中的 bind_ip(如 0.0.0.0 或指定内网 IP),端口默认 27017
    • 防火墙放行:sudo ufw allow 27017/tcp 或云安全组放通
    • 重启服务并验证:sudo systemctl restart mongod;ss -lntp | grep 27017
  • 安全最佳实践
    • 启用 认证角色权限(创建具有 backup 角色的专用账号用于备份)
    • 限制来源 IP、使用 TLS/SSL 加密传输、最小权限原则、定期轮换凭据
    • 备份目录与传输链路加密,避免明文存储与传输。

五 一键化落地清单

  • 初始化与自启:部署官方仓库版本 → 放置并校验 mongod.service → systemctl enable/start → journalctl 观察
  • 备份流水线:编写备份脚本(含压缩与 30 天保留)→ 配置 crontab 每日 2:00 → 建立备份验证与清理例行任务
  • 监控告警:部署 Zabbix Agent → 配置自定义键值 → Server 端建立模板/触发器 → 接入邮件/企业微信/钉钉
  • 远程与安全:按需开放 bind_ip 与防火墙 → 开启认证与最小权限 → 备份账号专号专用、凭据托管
  • 例行巡检:每周查看 journalctl 与慢查询日志、每月做恢复演练与容量评估、每季度升级小版本与安全补丁

以上方案覆盖 自启动与自愈、定时备份与恢复、监控告警、远程与安全 四大核心域,可直接按规模与合规要求裁剪落地。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MongoDB的自动化运维怎么做
本文地址: https://pptw.com/jishu/788869.html
SecureCRT在Debian上如何使用SSL postgresql在ubuntu中如何恢复数据

游客 回复需填写必要信息