MongoDB集群日志轮转切割

日志文件查看

           

 MongoDB自带机制

            这样会使mongo关闭当前日志文件,重启一个新的日志文件,不需要停止mongodb服务

            

            这种方式简单,但是不够灵活

            2.向进程发送 SIGUSR1 信号来切割日志

             

 定时任务轮转日志

                  

复制代码
#!/bin/sh

logfile=/var/log/mongodb  #Mongodb日志存放目录
days=7 #代表删除7天前的备份,即只保留最近7天的备份
/bin/kill -SIGUSR1 `cat /data/tianyiyun/mongod/mongos/log/mongos.pid` #切割日志
find $logfile/ -mtime +$days -delete #删除7天前的备份文件
                                                        
cut_mongodb_log.sh    
复制代码
复制代码
#!/bin/sh

MONGO_CMD=/usr/local/mongodb/bin/mongo
KEEP_DAY=7

#flush mongod log
datadir=/data/mongodb
port=27017
role=mongod
destdir=/data/backup/mongolog/${role}
if [ ! ‐d "${destdir}" ]; then
  mkdir ‐p ${destdir}
fi
$MONGO_CMD ‐‐authenticationDatabase admin admin ‐ubackup ‐p"*****" ‐‐eval
"db.runCommand({logRotate:1})" ‐‐port $port
mv ${datadir}/mongod.log.????‐??‐??T??‐??‐?? ${destdir}/
find $destdir ‐name "mongod.log.*" ‐mtime +${KEEP_DAY} ‐exec rm ‐rf {} \;
sample.sh
复制代码
复制代码
#内容
pidfilepath = /data/tianyiyun/mongod/mongos/log/mongos.pid
logpath = /var/log/mongodb/mongos.log
logappend = true

bind_ip = 0.0.0.0
port = 37017
fork = false

#监听的配置服务器,只能有1个或者3个configs为配置服务器的副本集名字
keyFile=/data/tianyiyun/conf/keyFile.key




configdb = configs/192.168.0.113:31000,192.168.0.171:31000,192.168.0.57:31000
#设置最大连接数
maxConns = 20000
mongos.conf
复制代码

    crontab -e
    0 0 * * * /data/tianyiyun/cut_mongodb_log.sh    #表示每天凌晨执行备份

  mongodb配置文件格式  

      MongoDB目前支持两种配置文件格式,第一种就是普通的key=value这种格式,跟MySQL一样

      第二种是yaml格式,而且新版本的MongoDB更推荐使用yaml格式的配置文件写法

复制代码
#内容
pidfilepath = /data/tianyiyun/mongod/mongos/log/mongos.pid
logpath = /var/log/mongodb/mongos.log
logappend = true

bind_ip = 0.0.0.0
port = 37017
fork = false

#监听的配置服务器,只能有1个或者3个configs为配置服务器的副本集名字
keyFile=/data/tianyiyun/conf/keyFile.key





configdb = configs/192.168.0.113:31000,192.168.0.171:31000,192.168.0.57:31000
#设置最大连接数
maxConns = 2000
普通格式
复制代码
复制代码
systemLog:
  destination: file
  logAppend: true
  path:  /var/log/mongodb/mongos.log

processManagement:
  fork: false
  pidFilePath: /data/tianyiyun/mongod/mongos/log/mongos.pid

# network interfaces
net:
  port: 37017
  bindIp: 0.0.0.0
  maxIncomingConnections: 2000

sharding:
   configDB: configs/192.168.0.57:31000,192.168.0.171:31000,192.168.0.113:31000


security:
   keyFile: /data/tianyiyun/conf/keyFile.key
   clusterAuthMode: keyFile


setParameter:
  diagnosticDataCollectionEnabled: false
yaml格式 
复制代码

 

日志生产量

       

      find /var/log/mongodb/ -mtime +1 -delete

      

     修改日志保留时长

     

 日志保存目录切换

       1.阻塞io数明显异常偏大

       

    2.cpu负载明显偏大

         

   3.根分区磁盘占用率到达98%

       导致磁盘读写变得很卡,主机上的mongodb应用服务也不能正常处理请求

    4.切换日志目录

      

     supervisorctl stop shard3
     rm -fr /var/log/mongodb
     ln -s /data/mongodb_log/ /var/log/mongodb
    supervisorctl start shard3

posted @   不懂123  阅读(344)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示