ES索引清理脚本-总结

ES索引清理脚本-总结

之前写过一个日格式的索引清理脚本,目前所在公司用的是「周」格式清理,所以再更新一下

前言

脚本流程:通过时间匹配历史索引 -> 记录到文件 -> 按照记录文件清理
关键:因为在Filebeat 的配置文件中定义了索引的命名格式,索引我们主要按照这种格式匹配索引,然后清理

「周格式」

"%{[fields.servicename]}-%{+yyyy.ww}"

针对周的索引格式,需要定义具体xx周之前的清理目标

- 先在date 参数中找到 ,当前周属于一年中的第几周
[root@k8s-master ~]# date +%W
28

- 那xx周之前的可以这么定义
[root@k8s-svr-master ~]# CLEAR_TIME=`date -d "4 week ago" +%Y.%W`
# 这里的2022.24 是指一年中的 第24周,
[root@k8s-svr-master ~]# echo $CLEAR_TIME
2022.24

实际要清理的索引名称会是这样
xxx-xxx-2022.24 

filebeat.ym中定义的索引格式

「日格式」

- index: "{[fields.servicename]}-%{+yyyy.MM.dd}"

针对这种索引格式,需要定义具体xx日之前的时间
当前日期获取)(因为索引是2022.07.17 这种格式的所以此处选择使用第二种)
[root@k8s-master ~]# date +%F
2022-07-17
或
[root@k8s-master ~]# date +%Y.%m.%d
2022.07.17

5日之前的时间可以这样取
[root@k8s-svr-master ~]# CLEAR_TIME=`date -d "5 day ago" +%Y.%m.%d`
[root@k8s-svr-master ~]# echo $CLEAR_TIME
2022.07.09

实际索引应该名称会是这样的
.monitoring-es-7-2022.07.09 

一、清理脚本:ES有密码,索引按(周、日)时间命名的清理脚本

#/bin/bash
#[ES引清理脚本]
#Author: zhb | Time: 2022.07.13 12:00 | Version: v1.0
#crontab: 30 00 * * * /opt/clear_es_index/script/Clear_ES_Index.sh >> /opt/clear_es_index/clean_info.log 2>> /opt/clear_es_index/clean_error.log

# 清理xxx周前的索引
CLEAR_TIME=`date -d "4 week ago" +%Y.%W`   

# 如果是日格式的索引,则将下边这行注释取消,更改日期即可使用
#CLEAR_TIME=`date -d "30 day ago" +%Y.%m.%d`

TODAY=$(date +%F-%H:%M)
ES_Clear_Dir=/opt/clear_es_index
ES_IP=<替换为实际IP或域名>
ES_PORT=<替换为实际端口>

#如果配置的有账号密码 就需要修改如下配置
ES_USER=<替换为实际用户>
ES_PASSWORD=<替换为实际密码>

#查找匹配清理日期的索引
curl -s -XGET --user $ES_USER:$ES_PASSWORD $ES_IP:$ES_PORT/_cat/indices | awk '{print $3}' | grep $CLEAR_TIME > $ES_Clear_Dir/index.$CLEAR_TIME

#开始清理(清理此处有带参数--user $ES_USER:$ES_PASSWORD,如果不需要可以去掉)
echo ">>>>>>>>>>于 $TODAY 开始清理"$CLEAR_TIME"的索引<<<<<<<<<<"

for i in `cat $ES_Clear_Dir/index.$CLEAR_TIME`
    do
    sleep 3
    curl -s -XDELETE --user $ES_USER:$ES_PASSWORD $ES_IP:$ES_PORT/$i
done

echo  ">>>>>>>>>>清理完成<<<<<<<<<<"
这里稍做解释,curl 账号密码访问 ES

可以看到上边的脚本中有一个 --user 的参数,是curl 请求时带用户密码访问ES,下边有2种方法

--user $ES_USER:$ES_PASSWORD


方法1:curl --user 用户名:密码 http://<ES的IP>:端口

方法2:添加证书(root-ca.pem)到文件 /etc/pki/tls/certs/ca-bundle.crt 【未实验】
curl -k --header "Content-Type: application/json;charset=UTF-8" --user 用户名:密码 -XPUT https://IP:9200/_template/history_dbl_template -d '{...}'

二、for循环直接手动批量删除

# 根据想删除的情况来过滤,比如很长时间以前的、大数据量等
# 同样,如果有密码需要带 --user参数
[root@k8s-node1 opt]# curl -s -XGET <ES的IP>:<ES的端口>/_cat/indices | grep 2021-* > 2021_all.index

[root@k8s-node1 opt]# for i in `cat 2021_all.index`;do curl -s -XDELETE  <ES的IP>:<ES的端口>/$i;done

三、kibana 索引管理中手动删除

【索引管理】

在这里插入图片描述

Tips,最好在删除索引前都确认一下,索引删除之后没有备份是无法还原的哦

参考
Curl带账号密码访问ES https://blog.youkuaiyun.com/czltx224/article/details/103879323
利用Curator清理ES历史索引 https://www.cnblogs.com/nf01/articles/15480020.html

清理脚本 https://blog.youkuaiyun.com/qq_36196879/article/details/103040226?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.control

### 关于面包板电源模块 MB102 的 USB 供电规格及兼容性 #### 1. **MB102 基本功能** 面包板电源模块 MB102 是一种常见的实验工具,主要用于为基于面包板的小型电子项目提供稳定的电压输出。它通常具有两路独立的稳压输出:一路为 5V 和另一路可调电压(一般范围为 3V 至 12V)。这种设计使得它可以满足多种芯片和传感器的不同工作电压需求。 #### 2. **USB 供电方式** MB102 支持通过 USB 接口供电,输入电压通常是标准的 5V DC[^1]。由于其内部集成了 LM7805 稳压器以及可调节电位器控制的直流-直流变换电路,因此即使输入来自电脑或其他低功率 USB 设备,也能稳定地向负载供应电力。不过需要注意的是,如果项目的功耗较高,则可能超出某些 USB 端口的最大电流能力(一般是 500mA),从而引起不稳定现象或者保护机制启动断开连接的情况发生。 #### 3. **兼容性分析** 该型号广泛适用于各种微控制器单元 (MCU),特别是那些像 Wemos D1 R32 这样可以通过杜邦线轻松接入并共享相同逻辑级别的系统[^2]。另外,在提到 Arduino Uno 板时也表明了良好的互操作性,因为两者均采用相似的标准接口定义与电气特性参数设置[^4]: - 对于需要 3.3V 工作环境下的组件来说,只需调整好对应跳线帽位置即可实现精准匹配; - 当涉及到更多外围扩展应用场合下,例如带有多重模拟信号采集任务的情形里,利用 MB102 提供干净无干扰的基础能源供给就显得尤为重要了[^3]。 综上所述,对于打算构建以单片机为核心的原型验证平台而言,选用具备良好声誉记录且易于获取配件支持服务链路上下游资源丰富的品牌产品——如这里讨论过的这款特定类型的配电装置不失为明智之举之一。 ```python # 示例 Python 代码展示如何检测硬件状态 import machine pin = machine.Pin(2, machine.Pin.IN) if pin.value() == 1: print("Power supply is stable.") else: print("Check your connections and power source.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值