目前在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的乙個指令碼檔案...