MongoDB日誌輪轉

來源:互聯網
上載者:User

標籤:mongodb 日誌輪轉

OverView

    MongoDB可使用標準的方法實現日誌輪轉,即擷取到當前日誌並開啟一個新的。為了實現它,mongod執行個體通過在檔案名稱末尾添加UTC(GMT)時間戳記的方式重新命名當前的記錄檔,然後開啟這個新的log檔案,關閉之前舊的log     檔案,並發送所有新的日誌資訊到新的log檔案中。


Rotation Setps

    MongoDB標準的日誌輪轉方法是通過日誌輪轉命令,或者讓mongod進程接受到一個SIGUSER1訊號,以下具體的實現方法


1 開啟mongod進程,保證appending enabled

   mongod -v --logpath /var/log/mongodb/server1.log --logappend

 2 在終端查看是否有mongo記錄檔

   ls /var/log/mongodb/server1.log*

3 如果是Windows系統,開啟mongo shell,進入admin資料庫並敲入輪轉命令,即

   use admin
   db.runCommand( { logRotate : 1 } )

  如果是Linux系統,則在終端運行 kill -SIGUSR1 <mongod process id>

4 再次查看結果是否有新的mongo記錄檔產生

   ls /var/log/mongodb/server1.log*


My auto script and crontab

以下是我用python寫的定時指令碼,每天產生一個新的log,超過10天的log自行刪除

#!/bin/env python
import sys
import os
import commands
import datetime,time

#get mongo pid
mongo_pid = commands.getoutput("/sbin/pidof mongod")
print mongo_pid

#send Sig to mongo
if mongo_pid != ‘‘:
    cmd = "/bin/kill -USR1 %s" %(mongo_pid)
    print cmd
    mongo_rotate = commands.getoutput(cmd)
else:
    print "mongod is not running..."

#clean log which > 10 days
str_now = time.strftime("%Y-%m-%d")
dat_now = time.strptime(str_now,"%Y-%m-%d")
array_dat_now = datetime.datetime(dat_now[0],dat_now[1],dat_now[2])
lns = commands.getoutput("/bin/ls --full-time /var/log/mongodb/|awk ‘{print $6, $9}‘")
for ln in lns.split(‘\n‘):
    ws = ln.split()
    if len(ws) != 2:
        continue
    ws1 = time.strptime(ws[0],"%Y-%m-%d")
    ws2 = datetime.datetime(ws1[0],ws1[1],ws1[2])
    if (array_dat_now - ws2).days > 10:
        v_del = commands.getoutput("/bin/rm -rf /var/log/mongodb//%s" % (ws[1]))


在root下crontab -e查看定時任務

0 2 * * * /home/jiangjianjian/mongo_log_rotate.py >/home/jiangjianjian/null 2>&1

MongoDB日誌輪轉

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.