MongoDB日志切割的三種方式總結(jié)
線上運(yùn)行的服務(wù)會(huì)產(chǎn)生大量的運(yùn)行及訪問日志,日志里會(huì)包含一些錯(cuò)誤、警告及用戶行為等信息。通常服務(wù)會(huì)以文本的形式記錄日志信息,這樣可讀性強(qiáng),方便于日常定位問題。但當(dāng)產(chǎn)生大量的日志之后,要想從大量日志里挖掘出有價(jià)值的內(nèi)容,則需要對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步的存儲(chǔ)和分析。
任何一種數(shù)據(jù)庫都有各種各樣的日志,MongoDB也不例外。MongoDB中有4種日志,分別是系統(tǒng)日志、Journal日志、oplog主從日志、慢查詢?nèi)罩镜?。這些日志記錄著MongoDB數(shù)據(jù)庫不同方面的蹤跡
MongoDB 默認(rèn)是不會(huì)進(jìn)行切割日志的,除非我們配置了 logRotate = rename,并且重啟 MongoDB 服務(wù),才會(huì)進(jìn)行切割日志的,那么為了避免實(shí)際中我們一個(gè)日志文件過大,我們需要對(duì)日志進(jìn)行切割,有兩個(gè)辦法:
方法如下
1. 通過 MongoDB 管理命令進(jìn)行切割
使用該命令時(shí)需要在 MongoDB 運(yùn)行時(shí)指定日志文件路徑。--logpath [file] ,或者在配置文件中指定。
use admin db.runCommand({logRotate:1})
2. 通過 Linux 系統(tǒng)自帶的服務(wù) logrotate 進(jìn)行切割
首先我們需要配置 MongoDB 參數(shù) logRotate = reopen, logappend = true,然后通過 Linux 系統(tǒng)自帶的 logrotate。配置文件放置在 /etc/logrotate.d/, 切割配置文件示例:
/opt/mongodb/log/mongodb.log { rotate 180 daily size 100M olddir /opt/mongodb/log/oldlog copytruncate dateext compress notifempty missingok }
3. 通過向進(jìn)程發(fā)送 SIGUSR1 信號(hào)來切割日志
如果我們的進(jìn)程 id 是19555,那么我們可以通過以下命令來切割日志的。只要我們執(zhí)行了該命令,日志就會(huì)立即進(jìn)行切割。
kill -SIGUSR1 19555
總結(jié)
到此這篇關(guān)于MongoDB日志切割的三種方式的文章就介紹到這了,更多相關(guān)MongoDB日志切割內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。