[精讚] [會員登入]
704

[CENTOS7] 使用 logrotate 來整理mongo日誌檔

解決 mongo 的日誌檔不斷長大的問題

此文完整連結 http://n.sfs.tw/12980

複製連結 [CENTOS7] 使用 logrotate 來整理mongo日誌檔@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-25 13:02:22 最後編修
2018-12-27 14:25:56 By 張○○
 

自動目錄

Unix 系統中的日誌檔存放在 /var/log/  中,可供我們查錯及觀察。日誌檔最大的問題是會不斷的長大。

但是其他的日誌檔如果不定時去清空,也許就會長大到非常的可怕的地步,尤其是mongo,裡面都是記一堆廢物

手動清空

如果要將記錄內容清空,移除再建立是一個方法,但不是很好的方法,可以採用下面這個指令

例如:

# cat /dev/null > /var/log/mongodb/mongod.log

或是

# echo '' > /var/log/mongodb/mongod.log

就可以輕鬆的將記錄檔清空。

 

因為架設的 mongodb伺服器的log不斷長大,已經塞爆我的空間,於是採用 logrotate來處理我的記錄檔。

使用 logrotate來定時壓縮及分檔備份

 

一、安裝(內建已安裝)

系統 centos7

# yum install logrotate

二、全域設定(保持不動)

logrotate的設定檔為 /etc/logrotate.conf,這裡設定的是全域參數,可以保留不動

# 執行週期
weekly

# 保存幾份資料,4代表會有4+1個
rotate 4

# 壓縮完是否會建一個新的空檔?
create

# 備份檔附檔名加註日期
dateext

# 是否用gz壓縮,預設無
#compress

# 下面是預設的不必動

include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

個別的設定檔放在 /etc/logrotate.d/

mongodb 的log檔在 /var/log/mongodb/mongod.log

建立一個新的設定檔

# cd /etc/logrotate.d/
# touch mongo
# vi mongo

修改內容如下

/var/log/mongodb/mongod.log {
    missingok
    notifempty
    copytruncate
    rotate 10
    compress
    size 300M
    daily
    create 0600 root root
}

missingok 如果找不到 log 檔也沒關係
notifempty 如果檔案為0就略過
copytruncate 先複製 log 檔的內容再清空,因為wildfly會寫到原檔,這個參數一定要設定。
rotate 4  建立4個備份,注意這不算入原本那個
compress  壓縮成gz
size 300M 至少要300m才建立備份

三、測試

# logrotate -f /etc/logrotate.conf

<正確的話沒任何的回應>

或是

# logrotate -f /etc/logrotate.d/mongo

<正確的話沒任何的回應>

壓縮前

總計 8.0G

-rw-r-----. 1 mongod mongod 7.9G 12月 27 14:37 mongod.log


壓縮後,大概花5分鐘

總計 504M

-rw-r-----. 1 mongod mongod 1.2M 12月 27 14:47 mongod.log

-rw-r-----. 1 mongod mongod 502M 12月 27 14:38 mongod.log.1.gz

果然都是廢物

 

四、加入排程

不必加入排程,因為yum 裝完後就已經有在 /etc/cron.daily/ 中存在

除非你要改成自己的排程

10 0 * * 0 /usr/sbin/logrotate /etc/logrotate.conf

 

 

參考連結

[1] [FREEBSD] 使用 logrotate 來管理及備份日誌檔@新精讚

[2] https://ihower.tw/blog/archives/3565

[3] https://www.jianshu.com/p/ea7c2363639c 這裡有參數的說明

[4] [CENTOS7] 使用 logrotate 來整理wildfly日誌檔

 

 

你可能感興趣的文章

[Linux] 刪除last/lastb登出入記錄 linux shell的登出入記錄

[Centos6] 安裝wordpress Centos 6下安裝wordpress,非常簡單

DNS壓力測試工具queryperf 要怎麼知道我安裝的DNS是否能耐受的住網路上的攻擊或大量查詢,這裡有一個免費的工具 queryperf

[Centos7] 新的防火牆firewalld Centos7新的防火牆firewalld 和前面的iptables有很大的不同

[Centos7] 安裝phpMyAdmin Centos 7有新的方式可以安裝phpmyadmin,不必再採用過去的tarball安裝法。

[Centos8] 安裝phpMyAdmin Centos 8目前只能採用tarball安裝法

Linux ext3 系統下刪除檔案救回全記錄 今天一個不小心,下了 rm 的指令,從此奮戰一個下午,終於把檔案救回來,以下是全記錄...

[Centos6 7] 掛載磁碟 只是掛載新磁碟

[SELINUX] php 呼叫系統程式(使用exec, system等)執行網路服務 這近想透過PHP呼叫系統的程式來執行網路的服務,怎麼測試都失敗…

[Centos7] 安裝nodejs8+yarn 安裝nodejs 8+ yarn的過程記錄

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[CodeIgniter3] 解決無法上傳特定檔案(.sb2)的問題 上傳時出現The filetype you are attempting to upload is not allowed,要怎麼解決?

維修冰箱 維修冰箱

好用的3+2碼郵遞區號查詢系統推薦 網路上找到用地址輸入判斷3+2碼郵遞區號的辨識率不高,除了這個網站…

[PHP] 檢查檔案是否是圖檔 使用getimagesize函數檢查檔案是否是圖檔

[CodeIgniter 3] 資料庫的使用方法整理1/2 --Select的使用 [CodeIgniter 3] 資料庫的使用方法整理:Select的使用