设为首页 收藏本站
查看: 1049|回复: 0

[经验分享] MongoDB日志切换(Rotate Log Files)方法及注意事项

[复制链接]

尚未签到

发表于 2018-10-26 11:57:38 | 显示全部楼层 |阅读模式
  MongoDB日志切换(Rotate Log Files)方法及注意事项
  转载自:http://duoyun.org/topic/512047a5cd0cc40a0a04c381
  MongoDB日志默认不会切换,生产系统尤其是压力大的系统,日志滚动速度非常快,我们上线系统最大的一个mongod进程的log每天增长5G多。目前采取策略是每天切换一次,保存一周的日志。
  目前采取的方法:
  · SIGUSR1 方法
  killall -SIGUSR1 mongod
  每天0点定时执行来达切换日志。
  大部分情况下并无问题,但近期集中出现了两台服务器日志切换时出现问题,0点到0点20分左右,日志是空的。mongod 或者config报警,进程重启(自动),该bug至少要到2.5.x才修复。MongoDB的稳定性目前确实不尽人意。
  · 采取mongo shell logRotate 来避免该bug
  use admin
  db.runCommand( { logRotate : 1 } )
  此方法需要在mongos,mongod,config server运行,不能一次性切换所有日志。
  logRotate命令也有‘bug’,这两天出现了两次(版本2.2.2):
  Sat May 4 00:01:02 [conn96028478] ERROR: Failed to rename /export/data/mongodb/log/mongod.log to /export/data/mongodb/log/mongod.log.2013-05-03T16-01-02 Fatal Assertion 16175
  0xaffd31 0xac5323 0x70f4f1 0x6e8d71 0x6ea5e2 0x6eb59c 0x832c68 0x8363b0 0x7b072d 0x7b3a53 0x5703f2 0xaedfc1 0x32ad2077f1 0x32acee570d
  /export/servers/mongodb/bin/mongod(_ZN5mongo15printStackTraceERSo+0x21) [0xaffd31]
  /export/servers/mongodb/bin/mongod(_ZN5mongo13fassertFailedEi+0xa3) [0xac5323]
  /export/servers/mongodb/bin/mongod() [0x70f4f1]
  /export/servers/mongodb/bin/mongod(_ZN5mongo12_execCommandEPNS_7CommandERK***NS_7BSONObjEiRNS_14BSONObjBuilderEb+0x51) [0x6e8d71]
  /export/servers/mongodb/bin/mongod(_ZN5mongo11execCommandEPNS_7CommandERNS_6ClientEiPKcRNS_7BSONObjERNS_14BSONObjBuilderEb+0xd52) [0x6ea5e2]
  /export/servers/mongodb/bin/mongod(_ZN5mongo12_runCommandsEPKcRNS_7BSONObjERNS_11_BufBuilderINS_16TrivialAllocatorEEERNS_14BSONObjBuilderEbi+0x2ac) [0x6eb59c]
  /export/servers/mongodb/bin/mongod(_ZN5mongo11runCommandsEPKcRNS_7BSONObjERNS_5CurOpERNS_11_BufBuilderINS_16TrivialAllocatorEEERNS_14BSONObjBuilderEbi+0x38) [0x832c68]
  /export/servers/mongodb/bin/mongod(_ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1_+0xc10) [0x8363b0]
  /export/servers/mongodb/bin/mongod() [0x7b072d]
  /export/servers/mongodb/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE+0x3a3) [0x7b3a53]
  /export/servers/mongodb/bin/mongod(_ZN5mongo16MyMessageHandler7processERNS_7MessageEPNS_21AbstractMessagingPortEPNS_9LastErrorE+0x82) [0x5703f2]
  /export/servers/mongodb/bin/mongod(_ZN5mongo3pms9threadRunEPNS_13MessagingPortE+0x411) [0xaedfc1]
  /lib64/libpthread.so.0() [0x32ad2077f1]
  /lib64/libc.so.6(clone+0x6d) [0x32acee570d]
  Sat May 4 00:01:02 [conn96028478]
  ***aborting after fassert() failure
  Sat May 4 00:01:02 Got signal: 6 (Aborted).
  Sat May 4 00:01:02 Backtrace:
  0xaffd31 0x558bb9 0x32ace32900 0x32ace32885 0x32ace34065 0xac535e 0x70f4f1 0x6e8d71 0x6ea5e2 0x6eb59c 0x832c68 0x8363b0 0x7b072d 0x7b3a53 0x5703f2 0xaedfc1 0x32ad2077f1 0x32acee570d
  /export/servers/mongodb/bin/mongod(_ZN5mongo15printStackTraceERSo+0x21) [0xaffd31]
  /export/servers/mongodb/bin/mongod(_ZN5mongo10abruptQuitEi+0x399) [0x558bb9]
  /lib64/libc.so.6() [0x32ace32900]
  /lib64/libc.so.6(gsignal+0x35) [0x32ace32885]
  /lib64/libc.so.6(abort+0x175) [0x32ace34065]
  /export/servers/mongodb/bin/mongod(_ZN5mongo13fassertFailedEi+0xde) [0xac535e]
  /export/servers/mongodb/bin/mongod() [0x70f4f1]
  /export/servers/mongodb/bin/mongod(_ZN5mongo12_execCommandEPNS_7CommandERK***NS_7BSONObjEiRNS_14BSONObjBuilderEb+0x51) [0x6e8d71]
  /export/servers/mongodb/bin/mongod(_ZN5mongo11execCommandEPNS_7CommandERNS_6ClientEiPKcRNS_7BSONObjERNS_14BSONObjBuilderEb+0xd52) [0x6ea5e2]
  /export/servers/mongodb/bin/mongod(_ZN5mongo12_runCommandsEPKcRNS_7BSONObjERNS_11_BufBuilderINS_16TrivialAllocatorEEERNS_14BSONObjBuilderEbi+0x2ac) [0x6eb59c]
  /export/servers/mongodb/bin/mongod(_ZN5mongo11runCommandsEPKcRNS_7BSONObjERNS_5CurOpERNS_11_BufBuilderINS_16TrivialAllocatorEEERNS_14BSONObjBuilderEbi+0x38) [0x832c68]
  /export/servers/mongodb/bin/mongod(_ZN5mongo8runQueryERNS_7MessageERNS_12QueryMessageERNS_5CurOpES1_+0xc10) [0x8363b0]
  /export/servers/mongodb/bin/mongod() [0x7b072d]
  /export/servers/mongodb/bin/mongod(_ZN5mongo16assembleResponseERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE+0x3a3) [0x7b3a53]
  /export/servers/mongodb/bin/mongod(_ZN5mongo16MyMessageHandler7processERNS_7MessageEPNS_21AbstractMessagingPortEPNS_9LastErrorE+0x82) [0x5703f2]
  /export/servers/mongodb/bin/mongod(_ZN5mongo3pms9threadRunEPNS_13MessagingPortE+0x411) [0xaedfc1]
  /lib64/libpthread.so.0() [0x32ad2077f1]
  /lib64/libc.so.6(clone+0x6d) [0x32acee570d]
  对应源码:
  class LogRotateCmd : public Command {
  public:
  LogRotateCmd() : Command( "logRotate" ) {}
  virtual LockType locktype() const { return NONE; }
  virtual bool slaveOk() const { return true; }
  virtual bool adminOnly() const { return true; }
  virtual bool run(const string& ns, BSONObj& cmdObj, int, string& errmsg, BSONObjBuilder& result, bool fromRepl) {
  fassert(16175, rotateLogs());
  return 1;
  }
  } logRotateCmd;
  rotateLogs()返回结果不对。
  bool rotateLogs() {
  return loggingManager.rotate();
  }
  rotateLogs()->rotate()
  bool rotate() {
  if ( ! _enabled ) {
  cout

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626750-1-1.html 上篇帖子: 使用HAProxy作为MongoDB分片集群mongos负载均衡 下篇帖子: MongoDB日志切换(Rotate Log Files)指南
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表