CronJob刪除ElasticSearch日誌

2021-10-03 13:37:48 字數 1448 閱讀 1842

目前在k8s平台內,通過pod掛載hostpath將程式形成的日誌檔案傳輸儲存到宿主機指定目錄上,然後fluentd根據指定目錄去蒐集日誌檔案(json格式),然後通過呼叫elasticsearch(以下簡稱es)的api將日誌儲存到es中,那麼問題來了,日誌檔案大了怎麼清理?

1. 每個工作節點上的日誌檔案

2. es內索引和日誌檔案

1. 針對宿主機上的日誌檔案,可以簡單設定crontab任務定時清理,手動設定稍微複雜一點,但是簡單快速。

cat >log_clean.sh << eof

#!/bin/bash

echo "log_clean====`date`" >> /root/script/log_clean.log

find /var/log/logfile/ -mtime +3 -name "*.log" -exec rm -rf {} \;

eof

設定crontab

crontab -e 

#每天一點清理

0 1 * * * /bin/bash /root/script/log_clean.sh

#重啟crontab使其生效

service crond restart

2. 針對es內的日誌檔案通過呼叫api刪除介面即可

#下面幾處ip:port均為es的vip和埠

#檢視es內索引檔案

#呼叫api刪除index

curl -xdelete 'http://ip:port/***(此處是索引)'

#上面是手動刪除,接下來是啟動乙個cronjob來刪除

cat >cronjob-log-clean.yaml<< eof

apiversion: batch/v1beta1

kind: cronjob

metadata:

name: cronjob-log-clean

namespace: efk-log

spec:

schedule: "* * */1 * *"

jobtemplate:

spec:

template:

spec:

containers:

- name: log-clean

image: centos

args:

- /bin/sh

- -c

- curl -x delete  "http://ip:port/logstash-`date '+%y.%m.%d' -d '-5 days'`"#此處是清理往前第五天的日誌

restartpolicy: onfailure

eof

尤其注意細節,有些地方需要修改,如果還是有問題,多找幾篇看看,就能發現規律了

Cronjob 快速入門

cronjob 快速入門 cron 是unix,solaris,linux下的乙個十分有用的工具。通過 ron指令碼能使計畫任務定期地在系統後台自動執行。這種計畫任務在unix,solaris,linux下術語為cron jobs。crontab cron 表 則是用來記錄在特定時間執行的cron的...

Cronjob 快速入門

cronjob 快速入門 cron 是unix,solaris,linux下的乙個十分有用的工具。通過 ron指令碼能使計畫任務定期地在系統後台自動執行。這種計畫任務在unix,solaris,linux下術語為cron jobs。crontab cron 表 則是用來記錄在特定時間執行的cron的...

Crontab使用和Cronjob簡介

以下為轉貼 cron 是unix,solaris,linux下的乙個十分有用的工具。通過 ron指令碼能使計畫任務定期地在系統後台自動執行。這種計畫任務在unix,solaris,linux下術語為cron jobs。crontab cron 表 則是用來記錄在特定時間執行的cron的乙個指令碼檔案...