配置完成後,需要新增crontab
#!/usr/bin/env bash
# @author yakir.king
# @date 2020/8/3 20:14
# # 清除多餘日誌
# 清除規則
## 1、保留個數,kafka預設按照小時儲存日誌,每小時儲存乙個,約定保留檔案個數,預設72個
## 2、保留時間,預設儲存72小時
## 3、儲存大小,為避免服務出問題導致頻繁刷日誌,將 磁碟撐滿,每個檔案保留大小均不可超過1g,超過1g的檔案將被清理。
### 3.1 為保留出問題的現場,所以需要保留第乙個超過1g的檔案。
# 保留檔案個數,預設72
retain_files_num=72
# 保留檔案時間,預設72小時,單位:小時
retain_files_time=72
# 儲存檔案大小,預設1g,單位:m
retain_file_mb=1024
# 日誌儲存目錄
log_dir=/export/kafka/logs
# 保留個數方法,由於日誌按照小時儲存,所以使用保留時間方法即可。
function retain_files_num()
# 保留時間方法
# 傳入引數為日誌檔案字首,如server.log.2020-08-01-11 傳入引數為server
function retain_files_date()
# 確認給定時間之前的時間
delete_date=`date +%y-%m-%d-%h -d "$ hours ago"`
# 獲取所有日誌,將日誌的時間戳獲取
# 遍歷所有日誌檔案,擷取日誌檔案的時間戳部分,與delete_date對比,小於等於這個時間的,刪除。
for log_file in `ls -1 $/$.log.20*`;do
log_file_date=`ls -1 $ | awk -f . ''`
if [[ $ < $ ]]; then
echo "當前日誌檔案:$, 儲存時間已超過$個小時,刪除中……"
rm -f $/$
fidone
done
}# 儲存大小方法
# 傳入引數為日誌檔案字首,如server.log.2020-08-01-11 傳入引數為server
function retain_files_size()
# 判斷出檔案大小
# 判斷超過1g的檔案個數,超過兩個刪除新檔案(保留舊的檔案,事件現場)。
big_file_num=`ls -lh $/$.log.20* | grep -v total | grep g | wc -l `
if [[ $ > 1 ]];then
flag=1
for log_file in `ls -lh $/$.log.20* | grep -v total | grep g | awk ''` ;do
if [[ $ -gt 1 ]] ;then
echo "當前日誌檔案:$, 大小已超過$m,刪除中……"
rm -f $/$
fi((flag++))
done
fiif [[ $ == 1 ]];then
echo "剩餘1個超過$m的檔案,請檢查檔案過大內容,如有問題解決問題後清除。"
fiecho "$/$.log的保留檔案大小正常"
done
}# 執行保留時間方法
retain_files_date server controller kafka-authorizer kafka-request log-cleaner state-change
# 執行保留大小方法
retain_files_size server controller kafka-authorizer kafka-request log-cleaner state-change
每小時執行一次即可(原因:曾經發生過每小時生成45g錯誤日誌,監控告警到處理時日誌已經增長到磁碟的93%)。
1 * * * * /bin/bash $/oplogs_cleaner.sh >> oplogs_cleaner.log 2>&1
Kafka日誌清理
kafka日誌清理目前主要有兩種策略 日誌刪除 日誌壓縮 日誌壓縮就是根據key來保留最後一條訊息。kafka提供log.cleanup.policy引數進行相應配置,預設值 delete,還可以選擇compact。日誌刪除 配置預設值 說明log.retention.check.interval....
linux清理日誌指令碼
1 刪除日誌的命令 find 目錄路徑 mtime 天數 name 檔名 exec rm rf 例如 bin bash find usr local tomcat logs mtime 7 name log exec rm rf 說明 find linux查詢命令,使用者查詢指定條件的檔案 usr ...
Kafka日誌及Topic資料清理
在介紹手動刪除操作之前,先簡單的介紹一下kafka消費offset原理。一 kafka消費offset 在通過client端消費kafka中的訊息時,消費的訊息會同時在zookeeper和kafka log中儲存,如上圖紅線所示。當手動刪除kafka某一分片上的訊息日誌時,如上圖藍線所示,此是只是將...