当前位置:首页 » 《随便一记》 » 正文

K8S日志备份脚本

26 人参与  2024年05月15日 14:15  分类 : 《随便一记》  评论

点击全文阅读


需求说明:

       如果你现在运维一个K8S平台,此平台由于各种原因最初架构设计根本没有ELK之类的日志工具,然而研发部又天天向你要日志,实时日志也就算了,关键是要几个月以前哪天哪个点的,而生产环境大于天,没有领导批准绝对不乱动。

问题分析:

       鉴于以上原因,需要写一个脚本把应用日志导出进行长久备份。

       1、Pod日志最大保存70M左右,时限大概是2个小时

       2、根据应用个数,日志大小,每天产生量,保留时限计算需要硬盘大小

       3、具体逻辑是:

             根据应用名称获取所有Pod具体名字,挨个导出Pod日志,保留在当天的日志目录内,

             并且一直不断的循环导出。

应用场景:

        生产环境未设计日志长久保存机制的临时解决方案,谁成想竞临时三年之久并仍在继续。

#!/bin/bash#AUTHOR       : Created by YaoButing#PLATFORM     : CentOS Linux release 7.8.2003(2003)#VERSION      : 3.0#DATE         : 2021-09-08#DESCRIPTION  : This script is used to Auto download the k8s logs .################################################################################变量设置初始值NUMBER=100#/data/k8s-logs日志备份目录,根据需要提前规划计算好磁盘大小cd /data/k8s-logswhile (($NUMBER>0))do   #检查当日的日志目录是否存在,不存在则创建      if [ -e /data/k8s-logs/`date "+%Y-%m-%d"` ]     then    echo "...........................目录已存在..........................."    else        mkdir /data/k8s-logs/`date "+%Y-%m-%d"`ficd /data/k8s-logs/`date "+%Y-%m-%d"`/    #下面两个01是一个编号,一个完整应用日志导出模块,根据应用个数复制添加即可####---  01  ---#################  导出    ABC    日志  ################### CSDN为命名空间,其替换自己的namespace,ABC为应用名称for pod in ` kubectl get pod -n CSDN | grep ABC | awk '{print $1}' `    do        #每个Pod日志输出15s后停止,这个需要实际测试自己的Pod日志完全输出需要的时间        timeout 15 kubectl logs -f $pod  -n CSDN > /data/k8s-logs/`date "+%Y-%m-%d"`/ABC-`date "+%Y-%m-%d-%H-%M-%S"`.log   echo "                                      $pod                                           日志已导出......"done    #将导出的应用所有Pod日志压缩打包tar -zcPvf /data/k8s-logs/`date "+%Y-%m-%d"`/ABC-`date "+%Y-%m-%d-%H"`.tar.gz /data/k8s-logs/`date "+%Y-%m-%d"`/ABC-`date "+%Y-%m-%d-%H"`*.log    #删除导出的.log文件,只保留压缩包,节省空间rm -rf /data/k8s-logs/`date "+%Y-%m-%d"`/*.log    ####---  01  ---#################  导出    ABC    日志  ################### sleep具体时间同样需要计算,要查看一个‘Pod保存日志的最长时限’,然后减去‘导出所有Pod日志消耗时间’,就是下面的时间,如果应用太多则可能不需要sleepsleep 3600done


点击全文阅读


本文链接:http://zhangshiyu.com/post/108976.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1