KingbaseES R3 叢集cluster日誌切割和清理案例
案例說明:
對於KingbaseES R3叢集的cluster日誌預設系統是不做切割和清理的,隨著執行時長的增加,日誌將增長為一個非常大的檔案,佔用比較大的磁碟空間,並且在分析問題讀取大檔案時效率很低,所以本案例藉助Linux系統的Logrotate工具進行cluster日誌切割,將cluster日誌按需切割成小的檔案,並按需保留和清理。crond程序會按照清理的配置檔案按需自動完成對日誌的清理工作。
如下圖所示:
Logrotate說明:
logrotate是Linux系統自帶的日誌切割工具,可以按月、周、天來切割日誌檔案並壓縮,解決了日誌備份以及備份日誌的可讀性。其基於crontab執行,系統自動觸發。
logrotate配置檔案相關:
1)cron執行指令碼/etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 2)配置檔案/etc/logrotate.d/ 下 -rw-r--r--. 1 root root 178 Nov 24 2015 chrony -rw-r--r--. 1 root root 71 Jul 21 2015 cups -rw-r--r--. 1 root root 172 Nov 20 2015 iscsiuiolog -rw-r--r--. 1 root root 165 Nov 21 2015 libvirtd -rw-r--r--. 1 root root 163 Nov 21 2015 libvirtd.qemu -rw-r--r--. 1 root root 893 Nov 21 2015 mariadb -rw-r--r--. 1 root root 106 Mar 6 2015 numad -rw-r--r--. 1 root root 136 Jun 10 2014 ppp -rw-r--r--. 1 root root 408 Mar 6 2015 psacct -rw-r--r--. 1 root root 115 Nov 21 2015 samba -rw-r--r--. 1 root root 224 Sep 8 2015 syslog -rw-r--r--. 1 root root 100 Jun 16 2015 wpa_supplicant -rw-r--r--. 1 root root 100 Dec 3 2015 yum 3)配置檔案引數詳解 compress:對轉儲後的日誌檔案進行壓縮; nocompress:不對轉儲的日誌檔案進行壓縮; delaycompress:與 compress 一起使用,轉儲的日誌檔案到下一次轉儲進行壓縮; nodelaycompress:與 compress 一起使用,轉儲的日誌檔案本次轉儲進行壓縮; copytruncate:備份正在開啟的日誌檔案,將當前節點之前的檔案備份出來,然後清空原始檔; nocopytruncate:直接備份整個日誌檔案,不做切割處理; create mode owner group:使用指定屬性建立新檔案; nocreate:不建立新的日誌檔案; ifempty:如果檔案為空也轉儲; notifempty:如果是空檔案的話,不轉儲; missingok:如果日誌檔案丟失,不報錯繼續下一個日誌檔案轉儲; errors address:把轉儲時的錯誤資訊傳送到指定的Email 地址; mail address:把轉儲的日誌檔案傳送到指定的E-mail 地址; nomail:轉儲時不發郵件; olddir directory:轉儲後的日誌檔案放入指定的目錄,必須和當前日誌檔案在同一個檔案系統; noolddir:轉儲後的日誌檔案和當前日誌檔案放在同一個目錄下 prerotate/endscript:在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行; postrotate/endscript:在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行; daily:指定轉儲週期為每天; weekly:指定轉儲週期為每週; monthly:指定轉儲週期為每月; dateext:使用當前日期作為轉儲檔案的命名格式,沒有此配置轉儲檔案以1、3、4....為格式; dateformat:配合dateext使用,定義轉儲檔案格式,只支援%Y%m%d%s四個引數; rotate count:指定日誌檔案刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份; size size:當日志文件到達指定的大小時才轉儲,Size 可以指定 bytes 以及KB 或者MB;
一、kingbaseES叢集日誌切割和清理配置檔案
1、檢視配置檔案資訊
# 配置檔案儲存路徑
[root@node3 logrotate.d]# pwd
/etc/logrotate.d
# 配置檔案
[root@node3 logrotate.d]# ls -lh kingbase
-rw-r--r-- 1 root root 727 Mar 2 12:27 kingbase
2、檢視配置檔案內容
=此主機是一個測試環境,在此主機也部署了kingbaseES V8R6的叢集,部署完成後kingbaseES V8R6叢集對hamgr.log和kbha.log做了切割和清理,所以kingbase檔案裡,配置了hamgr.log和kbha.log的日誌切割和清理的配置資訊。因此,對於kingbaseES V8R3的的cluster.log的配置,只需新增到此檔案的尾部即可。對於生產環境,只部署了kingbaseES V8R3的叢集,所以你只需要建立kingbase的檔案,進行編輯,將cluster.log的配置寫入檔案即可。
[root@node3 logrotate.d]# cat kingbase
# Generate by sys_monitor.sh at Mon Mar 1 17:26:29 CST 2021
/home/kingbase/cluster/R6HA/KHA/kingbase/bin/../kbha.log {
weekly
maxsize 100M
su kingbase kingbase
create 0600 kingbase kingbase
rotate 3
copytruncate
dateext
}
/home/kingbase/cluster/R6HA/KHA/kingbase/hamgr.log {
weekly
maxsize 100M
su kingbase kingbase
create 0600 kingbase kingbase
rotate 3
copytruncate
dateext
}
/home/kingbase/cluster/kha/log/cluster.log {
daily
maxsize 2M
#su kingbase kingbase
#create 0600 kingbase kingbase
create 0600 root root
rotate 3
copytruncate
dateext
}
3、cluster.log日誌清理配置檔案
[root@node3 logrotate.d]# cat kingbase
# Generate by sys_monitor.sh at Mon Mar 1 17:26:29 CST 2021
/home/kingbase/cluster/kha/log/cluster.log {
daily # 按日清理
maxsize 2M # 日誌檔案大小為2M
#su kingbase kingbase
#create 0600 kingbase kingbase
create 0600 root root # 檔案屬主 root
rotate 3 # 只保留最近三個檔案
copytruncate
dateext
}
二、測試cluster.log日誌的清理
1、檢視cluster.log日誌資訊
[kingbase@node3 log]$ ls -lh cluster*
total 8.7M
-rw-r--r-- 1 root root 3.2M Mar 2 12:27 cluster.log
-rw-r--r-- 1 root root 266K Mar 2 12:33 cluster_restart.log
-rw-r--r-- 1 root root 110 Mar 1 13:58 clusterstop
.......
2、測試logrotate 手工切割和清理[root@node3 logrotate.d]# logrotate /etc/logrotate.d/kingbase
3、檢視切割後的cluster.log資訊
=如下所示,生成了‘cluster.log-20210302’的日誌檔案,當前的cluster.log日誌檔案內容被清空。=
[kingbase@node3 log]$ ls -lh cluster*
-rw-r--r-- 1 root root 17K Mar 2 12:35 cluster.log
-rw-r--r-- 1 root root 3.2M Mar 2 12:27 cluster.log-20210302 #切割後的歷史檔案
-rw-r--r-- 1 root root 266K Mar 2 12:34 cluster_restart.log
-rw-r--r-- 1 root root 110 Mar 1 13:58 clusterstop
三、總結
對與Linux系統下的日誌清理,可以藉助於logrotate工具。通過crond程序自動清理。使用者只需要按需做好配置檔案的配置,一切交給系統進行管理即可。