1.概述
当客户环境出现磁盘使用率告警或者客户环境因为磁盘使用率高导致服务出现异常时,通常需要运维登录服务器去手动查看并清理磁盘。
这个操作相当费时费力,并且链路很长,从客户发现→通知技术支持→通知运维→运维登录服务器处理→可能还需要研发协助。
因此磁盘清理工具诞生了,此工具旨在简化清理过程,让更多人能够执行磁盘清理,有权限登录服务器的角色都可以执行清理操作。
如:运维、技术支持二线、客户it人员
工具可以根据指定的清理策略,可以对磁盘进行轻度清理、深度清理和针对特定镜像或备份等清理操作。
请注意:不要将清理脚本作为一个日常定时清理的工具,我们BI服务本身就有特定的清理规则在定期执行。
清理脚本只是作为一个临时的手段去做清理,如果拿到脚本后想着每天定时去执行清理脚本,这就相当于破坏了我们服务原有的文件保留规则。
2.目前支持的操作系统
centos 7/8
redhat 7/8
ubuntu 20.04/22.04
3.工具安装方式
1. 🎉推荐方式:快速安装观远所有的BI运维工具
## 【温馨提示】如果是离线环境,请提前下载文件 guandata-operations-toolbox.tar.gz 传到服务器上
wget -O guandata-operations-toolbox.tar.gz http://dl.guandata.com/scripts/guandata-operations-toolbox.tar.gz
## 解压并执行安装操作
tar -xf guandata-operations-toolbox.tar.gz
cd guandata-operations-toolbox/ && bash install_guanbi_op_tools.sh
2. 手动下载工具
方式1: (通公网环境)添加到系统命令方式执行 (方便 推荐)
使用时自动下载最新工具,方便后续使用。
wget -O /usr/local/bin/guanbi_BIClean http://dl.guandata.com/best_practice_scripts/guanbi_BIClean
chmod +x /usr/local/bin/guanbi_BIClean
# ps:这是一个兜底步骤,有的用户环境 PATH变量没有包含 /usr/local/bin/
ln -s /usr/local/bin/guanbi_BIClean /usr/bin/guanbi_BIClean
方式2 (仅用于不通公网环境): 服务器直接下载二进制文件执行;
下载后传到服务器执行
# 手动下载文件 http://dl.guandata.com/best_practice/BIClean_amd64
# BIClean_amd64 上传至服务器
mv BIClean_amd64 /usr/local/bin/guanbi_BIClean
chmod +x /usr/local/bin/guanbi_BIClean
4.脚本使用方法
最佳实践
ps.清理规则详见帮助信息
###BI轻度清理
使用场景:当磁盘使用率高,并且不是那么紧急的情况下,此时服务还是正常运行,想做一些清理动作临时降低磁盘使用率,此动作不会影响到服务功能使用。
但会清理掉卡片和复杂报表的缓存数据。
guanbi_BIClean --soft_clean=true
###BI深度清理
使用场景:磁盘使用率已经满导致服务出现异常,或者磁盘马上就要满了非常紧急的情况下,根据清理规则快速去做一些深度清理动作。
请注意深度清理是存在一些风险的:
深度清理会清理1小时前的导出文件,清理后无法从下载中心再下载1小时前的文件,有需要请自行重新导出。并且深度清理时当前正在运行的后台任务可能会失败。
guanbi_BIClean --deep_clean=true
###清理镜像,只保留最新的3个版本
guanbi_BIClean --clean_dockerimages=3
###清理备份,只保留最近3天
guanbi_BIClean --clean_bi_backup=3
###清理guandata-store目录
轻度清理
guanbi_BIClean --clean_guandata_store=soft
深度清理
guanbi_BIClean --clean_guandata_store=deep
###进行磁盘分析
guanbi_BIClean --analysis=true
清理过程会输出到前台,也会存日志到日志文件中./bicleanlogs/clean.log
查看帮助
guanbi_BIClean -h
usage: BIClean [-h] [--version] [--soft_clean {true,false}]
[--deep_clean {true,false}] [--clean_dockerimages int]
[--clean_guandata_store {soft,deep}]
[--guandatastorePath string] [--clean_bi_backup int]
[--backupConfig string]
清理工具 版本1.0.0
optional arguments:
-h, --help show this help message and exit
--version 显示版本信息
--soft_clean {true,false}
BI整体轻度清理
示例: --soft_clean=true
使用场景:磁盘使用率高,此时服务还是正常运行,想做一些清理动作临时降低磁盘使用率,此动作不会影响到服务功能使用。
但会清理掉卡片和复杂报表的缓存数据。
清理规则:1.同一个服务的镜像保留最新的三个版本 2.备份保留近三天 3.轻度清理guandata-store目录下数据 4.执行spark-worker清理脚本/clean.sh
--deep_clean {true,false}
BI整体深度清理
示例: --deep_clean=true
使用场景:磁盘使用率已经满导致服务出现异常,或者磁盘马上就要满了,根据清理规则快速去做一些深度清理动作。
清理规则:1.同一个服务的镜像保留最新的一个版本 2.备份保留近一天 3.深度清理guandata-store目录下数据 4.重启spark-worker释放临时数据
--clean_dockerimages int
清理镜像,同一个服务有多个不同版本情况下,根据时间保留最新的几个镜像
示例: --clean_dockerimages=3 同一个服务只保留最近三个版本镜像
--clean_guandata_store {soft,deep}
清理 guandata-store 下数据
示例:--clean_guandata_store=soft
清理规则:清理report-cache,jstackData,complexReport_folder/cache_files目录下所有文件
示例:--clean_guandata_store=deep
清理规则:1.清理tmp,complexReport_folder/cache_files,report-cache,guanindex_cache_files,avro_cache,jstackData目录下所有数据
2.清理以下目录1小时前文件download_files,pagePdf_folder,cardBatchExport_folder,pageBatchPdf_folder,pageBatchPdf_folder,resource_atlas
--guandatastorePath string
当执行清理guandata-store路径,但是目录不是默认值时指定 (默认: --guandatastorePath=/home/guandata/data/guandata-store)
示例:--clean_guandata_store=soft --guandatastorePath=/home/guandata/data/guandata-store
示例2:轻度和深度清理的时候也可以指定这个路径
--soft_clean=soft --guandatastorePath=/home/guandata/data/guandata-store
--clean_bi_backup int
清理历史备份,指定保留最近几天的备份
示例: --clean_bi_backup=3 保留最近3天备份,之前的清理掉
--backupConfig string
当清理备份数据,但是备份配置文件不是默认路径时指定 (默认: --backupConfig=/home/guandata/data/backupScript/backupConfig.config)
示例:--clean_bi_backup=3 --backupConfig=/home/guandata/data/backupScript/backupConfig.config
示例2:轻度和深度清理的时候也可以指定这个路径
--soft_clean=soft --backupConfig=/home/guandata/data/backupScript/backupConfig.config
--analysis {true,false}
对磁盘占用进行分析,检查是否有异常目录或者文件占用的情况。
--guandata_data_path string
当进行磁盘分析功能时,指定BI的数据目录 (默认: --guandata_data_path=/home/guandata/data)
示例:--analysis=true --guandata_data_path=/home/guandata/data
--analysis_timeout int
当进行磁盘分析功能时,指定超时时间,默认为600s
示例: --analysis=true --analysis_timeout=600