当前位置: 首页 > news >正文

机关网站内容建设雄安专业网站建设

机关网站内容建设,雄安专业网站建设,友情链接方面,广东省建设执业资格注册中心官方网站MongoDB数据库高并发商业实践优化运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡 引言 关于最近优雅草卓伊凡发布关于MongoDB的内容是由于我们的甲方上线了一个很老的产品#xff0c;但是他的用户量极大#xff0c;并且还有各种人搞事情#xff0c;不断的来GJ但是他的用户量极大并且还有各种人搞事情不断的来GJ上线刚开始还能勉强撑着但是随着用户量急剧上升包括他们的收入订单各方面以及请求次数的规模及上升老古董即便是java spring redis 配 cdn 加灵活带宽都抗不住问题而且上线后出问题后都很复杂这核心有一点就是数据库MongoDB 我们的版本是3.4.0 而云数据库也就是腾讯云买900多元一月 基础的云MongoDB数据库都是需要最低4.4版本的这个可就难了我们版本太老 升级的复杂度不亚于重构于是在这个环境下我们测试环境已经安排在重构但是生产环境顶着压力做优化既然是做优化那么在这么老版本的情况下就有很多挑战很庆幸在我们技术同事以及技术总监卓伊凡的带领下在7月23日终于得到了突破进展中途有特别多的问题由卓伊凡拆分一一记录和学习让我们对数据的深度理解也非常有帮助在过程中我们积累了很多知识可以逐步细化消化。 Loaded: loaded (/etc/systemd/system/mongod.service; enabled; preset: disabled) Active: activating (auto-restart) (Result: exit-code) since Wed 2025-07-23 21:38:10 CST; 1s ago Docs: What is MongoDB? - Database Manual - MongoDB Docs Process: 238158 ExecStart/opt/mongodb-3.4.0/bin/mongod —config /opt/mongodb-3.4.0/mongo.conf (codeexited, status217/USER) Main PID: 238158 (codeexited, status217/USER) CPU: 690us 在那天我们发现有不正常运行检查了MongoDB 的运行状态。 由于在教科书中有写到我们不能用root帐号运行也会造成频繁掉线的问题这就不得详细讲了 在生产环境中禁止使用 root 用户运行 MongoDB 是一项重要的安全最佳实践。以下从安全风险、权限管理、故障排查和性能影响四个方面详细阐述原因 一、安全风险为什么不能用 root 运行 MongoDB 1. 权限提升攻击风险 任意文件读写若 MongoDB 被攻击如通过注入漏洞root 权限的进程可直接访问/修改系统文件如 /etc/passwd、SSH 密钥。持久化后门攻击者可利用 root 权限在系统启动脚本中植入后门实现持久控制。 2. 最小权限原则失效 MongoDB 仅需读写数据目录和日志文件的权限root 权限远超实际需求。遵循 最小权限原则Least Privilege可降低单点故障的影响范围。 3. 防御纵深缺失 若 MongoDB 被攻破普通用户权限的进程最多只能影响数据目录而 root 权限将导致整个系统沦陷。 二、权限管理为什么需要专用用户 1. 文件所有权隔离 专用用户如 mongodb确保数据文件/data/mongodb和配置文件/opt/mongodb-3.4.0的所有权清晰。避免与其他服务如 MySQL、Nginx的文件权限冲突。 2. 进程隔离 systemd 可基于用户限制资源使用如 LimitNOFILE、MemoryMax [Service] Usermongodb Groupmongodb LimitNOFILE64000 MemoryMax8G # 限制 MongoDB 最大内存使用 3. 审计追踪 专用用户便于日志审计 # 查看 mongodb 用户的所有操作 sudo ausearch -ua mongodb 三、故障排查为什么 root 会掩盖问题 1. 权限错误被隐藏 root 用户可绕过文件权限检查导致配置错误如错误的目录权限在测试阶段不暴露上线后普通用户无法启动服务。 2. 系统资源竞争 root 进程可能无限制占用系统资源如内存、文件描述符导致其他服务崩溃。专用用户可通过 ulimit 限制资源使用 # 编辑 /etc/security/limits.conf mongodb hard nofile 64000 mongodb soft nofile 64000 其实这里 也存在一个文件描述 频繁导致掉线也解决的一个问题我们单独一篇来讲。 我们这个地方 也是修改了 四、性能影响使用专用用户会变慢吗 1. 无直接性能损耗 进程权限本身不影响 MongoDB 性能但错误的权限配置可能间接导致问题 例如root 用户创建的文件可能被 MongoDB 用户如 mongodb拒绝访问触发频繁的权限检查。 2. 资源限制优化性能 通过 systemd 限制 MongoDB 内存使用可避免系统 OOMOut of Memory [Service] MemoryMax32G # 适用于 64GB 系统防止 MongoDB 耗尽内存 3. 权限与磁盘 I/O 专用用户确保文件权限一致性避免因权限问题导致的磁盘 I/O 性能下降。 五、最佳实践如何正确配置专用用户 1. 创建专用用户和组 sudo groupadd -r mongodb sudo useradd -r -g mongodb -d /data/mongodb -s /bin/false mongodb 2. 设置正确的文件权限 sudo chown -R mongodb:mongodb /data/mongodb sudo chown -R mongodb:mongodb /opt/mongodb-3.4.0 3. 配置 systemd 服务文件 [Service] Usermongodb Groupmongodb WorkingDirectory/data/mongodb ExecStart/opt/mongodb-3.4.0/bin/mongod --config /opt/mongodb-3.4.0/mongo.conf 这就不得不提到我之前写的蜻蜓I即时通讯 水银版搭建方法中有关于数据库的启动因此这里非常不严谨 这个就非常的不对 六、对比实验root vs 专用用户的差异 指标 root 用户 专用用户 文件权限冲突 高可能覆盖系统文件 低仅访问数据目录 系统安全风险 极高权限提升攻击 低最小权限原则 故障排查复杂度 高权限错误被掩盖 低权限问题直接暴露 资源隔离能力 无可能耗尽系统资源 有可通过 systemd 限制 审计追踪可行性 困难与系统操作混淆 容易专用用户日志清晰 七、总结为什么必须使用专用用户 安全层面降低权限提升攻击风险遵循最小权限原则。管理层面实现进程隔离、文件权限清晰和审计追踪。故障排查避免权限错误被隐藏提高问题定位效率。性能影响正确配置下无负面影响反而可通过资源限制优化性能。 建议立即将 MongoDB 服务从 root 用户迁移至专用用户并通过 systemd 确保服务以正确用户身份运行。 我们做到了最终 是以MongoDB 运行。
http://www.zqtcl.cn/news/756689/

相关文章:

  • 有域名有空间怎么做网站怎么制作网站封面
  • 注册域名哪个网站好信息技术制作网站首页
  • 企业网站app制作价格国外外链平台
  • 泉州市网站设计企业网络有限公司经营范围
  • 电子商务网站创业计划书后台管理系统登录
  • 蚂蚁建站网页传奇游戏单职业
  • 标准通网站建设广州 flash 网站
  • 怎么做游戏自动充值的网站淘宝购物平台
  • 免费帮助建站营销策略怎么写
  • 12380 举报网站建设优秀个人网站
  • 简洁网站模板素材用wordpress上传源砖
  • 高密做网站电影html网页模板设计素材
  • 湖北网络营销网站襄阳网站建设-飞鱼网络
  • 想更新公司网站怎么做关于网站开发的自我评价
  • 找建筑工作哪个网站好新增网站 备案
  • 格力网站的建设情况wordpress mysql 密码重置
  • 网站access数据怎么做高端品牌网站建设的目的
  • 外贸买家网站凯里网站建设流程
  • 网站一年要多少钱国外的建筑设计网站
  • 手游发号网站模板ic外贸网站建设
  • 珠海网站制作案例tp5 商城网站开发
  • 母婴用品网站建设规划上海市建设工程 安全协会网站
  • 做室内设计特别好的网站网站服务器租用恒创
  • 慕课网站开发文档wordpress上传到空间
  • 行业垂直网站开发漳州最便宜的网站建设价格
  • 高级网站设计效果图网站设计制作哪些
  • 惠山区住房和建设厅网站营销推广方式都有哪些
  • 做网贷网站多少钱wordpress首页短代码
  • 网站网格湖南网页
  • 做网站的知名品牌公司用ps切片做网站