Kafka 操作日誌清理指令碼

2021-10-08 19:56:00 字數 2128 閱讀 8308

配置完成後,需要新增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某一分片上的訊息日誌時,如上圖藍線所示,此是只是將...