一、前言
在日常ES运维过程中,经常会遇到一些业务需求,特别是会经常遇到一些故障需要紧急处理,所以这就需要我们平日多积攒一些运维脚本或命令,以便能快速定位和处理问题。今天分享两个自己整理的比较好用的脚本,我平时也经常在elasticsearch生产环境使用。
二、运维脚本
2.1、获取以xxx开头的索引及大小并按照索引前缀排序
有时为了统计某业务部门索引占用情况,可按照索引前缀获取所有索引索引名称和大小,并按照索引前缀进行排序。
#!/bin/bash # 定义 Elasticsearch 地址、端口、用户名和密码 ES_HOST="192.168.xxx.xxx" ES_PORT="9200" ES_USER="elastic" ES_PASS="xxxxx" # 定义输出文件路径 OUTPUT_FILE="/home/esuser/xxxx_indices_info.txt" # 临时文件存储 TEMP_FILE="/tmp/xxxx_indices_info.txt" # 获取以 xxxx 开头的索引名称、大小并按索引名称排序,写入到临时文件 curl -s -u ${ES_USER}:${ES_PASS} "${ES_HOST}:${ES_PORT}/_cat/indices?h=index,store.size&format=json" | jq -r '.[] | select(.index | startswith("xxxx")) | "\(.index)\t\(.["store.size"])"' > ${TEMP_FILE} # 检查临时文件是否生成 if [ ! -s ${TEMP_FILE} ]; then echo "No data found or failed to retrieve data from Elasticsearch." exit 1 fi # 清空输出文件 > ${OUTPUT_FILE} # 处理大小单位转换并写入输出文件 while IFS=$'\t' read -r index size; do # 检查大小是否为 null if [ "$size" == "null" ] || [ -z "$size" ]; then size_kb=0 else # 将大小转换为 KB if [[ $size == *kb ]]; then size_kb=$(echo $size | sed 's/kb//') elif [[ $size == *mb ]]; then size_kb=$(echo $size | sed 's/mb//' | awk '{printf "%.0f", $1 * 1024}') elif [[ $size == *gb ]]; then size_kb=$(echo $size | sed 's/gb//' | awk '{printf "%.0f", $1 * 1024 * 1024}') elif [[ $size == *tb ]]; then size_kb=$(echo $size | sed 's/tb//' | awk '{printf "%.0f", $1 * 1024 * 1024 * 1024}') else size_kb=$size fi fi # 输出索引名称和大小(KB),追加到输出文件 echo "${index} ${size_kb}" >> ${OUTPUT_FILE} done < ${TEMP_FILE} # 按索引名称排序并重定向到最终文件 sort -k1,1 ${OUTPUT_FILE} -o ${OUTPUT_FILE} # 删除临时文件 rm ${TEMP_FILE}
复制
命令注释:
- 定义 Elasticsearch 地址、端口、用户名和密码:将 ES_HOST、ES_PORT、ES_USER 和 ES_PASS 设置为你的 Elasticsearch 实例的地址、端口、用户名和密码。
- 定义输出文件路径:将结果写入到 /home/esuser/xxxx_indices_info.txt 文件。
- 获取以 xxxx 开头的索引信息:
- 使用 curl 命令获取所有索引的信息,并以 JSON 格式返回。
- 使用 jq 进行 JSON 解析并过滤出以 MIC 开头的索引,提取索引名称和大小。
- 检查并处理大小字段:将大小单位(如 KB、MB、GB、TB)转换为 KB。如果大小为 null 或空,则设置为 0 KB。
输出结果:
-
- 清空输出文件。
-
- 使用 echo “${index} ${size_kb}” >> ${OUTPUT_FILE} 将每行结果追加到输出文件。
-
- 按索引名称排序:使用 sort -k1,1 ${OUTPUT_FILE} -o ${OUTPUT_FILE} 按索引名称排序并重定向到最终文件。
-
- 删除临时文件:清理临时文件。
2.2、填充空索引加速各节点索引分片数量平衡
在日常ES运维过程中,经常遇到因为节点宕,或者平时ES节点需要重启维护,为了快速达到各节点索引分片平衡,可向集群中插入一些空索引,以便快速达到分片平衡,待平衡后,再抽时间逐步删除这些创建的空索引。
#!/bin/bash # Elasticsearch节点的IP地址和端口 ES_HOST="192.168.xxx.xxx:9200" # Elasticsearch超级用户的身份验证凭据 USERNAME="elastic" PASSWORD="xxxx" # 索引名称的前缀和数量 INDEX_PREFIX="test-null-index" INDEX_COUNT=10 # 索引的设置 INDEX_SETTINGS='{"settings": {"number_of_shards": 1, "number_of_replicas": 0}}' # 循环创建索引 for ((i=1; i<xxxx; i++)); do INDEX_NAME="${INDEX_PREFIX}-${i}" echo "Creating index: $INDEX_NAME" curl -XPUT -u "$USERNAME:$PASSWORD" "http://$ES_HOST/$INDEX_NAME" -H 'Content-Type: application/json' -d "$INDEX_SETTINGS"
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
阿里云 Elasticsearch Serverless 检索增强型 8.17 版来袭!
阿里云大数据AI技术
362次阅读
2025-04-18 10:24:15
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
SelectDB
128次阅读
2025-04-02 17:52:59
阿里云 Elasticsearch Serverless 检索增强型8.17版免费邀测!
阿里云大数据AI技术
60次阅读
2025-04-15 13:18:15
2025 XCOPS广州站:故障预测、根因分析全链路实战指南
铭毅天下Elasticsearch
44次阅读
2025-04-09 11:01:27
利用 EDB Postgres AI - WarehousePG 替换 Greenplum 实现数据仓库现代化
新智锦绣
37次阅读
2025-04-18 17:28:36
Elasticsearch 8.X 如何利用嵌入向量提升搜索能力?
铭毅天下Elasticsearch
37次阅读
2025-04-09 11:01:28
【视频上新】Coco AI 部署及使用详解
铭毅天下Elasticsearch
34次阅读
2025-04-09 11:01:26
为流复制优化TCP设置
新智锦绣
27次阅读
2025-04-10 11:52:27
深入解析 Coco AI:一款开源、跨平台的智能搜索与协作工具
铭毅天下Elasticsearch
26次阅读
2025-04-07 09:46:42
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?(建议收藏)
一臻数据
25次阅读
2025-04-03 09:58:54
TA的专栏
热门文章
Elasticsearch运维篇_ES启动失败常见问题及解决办法整理
2023-05-09 14612浏览
Centos 7 静默安装Oracle 11.2.0.4 单机版安装指南
2023-05-24 7647浏览
达梦数据库初始化数据库需特别注意的几个参数
2022-11-08 6922浏览
记一次Oracle数据库SQL执行超时产生ORA-609报错导致进程被abort问题分析及处理
2022-11-29 5512浏览
ORA-1652: unable to extend temp segment by 128 in tablespace导致流复制中断影响数据同步问题分析
2022-11-22 5451浏览
最新文章
企业版 YashanDB 23.2.4 分布式集群 数据库一主二备集群安装部署指南
2024-12-23 389浏览
企业版 YashanDB 23.2.4 YAC 单库多实例架构多活共享集群安装部署指南
2024-12-23 261浏览
打工人的心声:眼花缭乱的世界,疲惫的心和不安的未来
2024-12-05 181浏览
[【ClickHouse 运维系列】ClickHouse 集群从 22.5.1.2079 滚动升级到 24.8.6.70 流程步骤
2024-12-02 286浏览
金仓数据库 KingbaseES V9 详解:目录结构与配置文件 (上)
2024-11-27 292浏览
目录