Elasticsearch的运维
Elasticsearch 运维工作详解:从基础保障到性能优化
Elasticsearch(简称 ES)作为分布式搜索和分析引擎,其运维工作需要兼顾集群稳定性、性能效率及数据安全。以下从核心运维模块展开说明,结合实践场景提供可落地的方案:
一、集群架构与基础运维
1. 集群规划与部署
- 硬件配置标准:
角色 CPU 内存 存储 网络 数据节点 8 核 + 64GB+(堆内存≤32GB) SSD(NVMe 优先,RAID 0) 万兆内网 协调节点 4 核 + 32GB+ 普通 SSD 万兆内网 master 节点 4 核 + 32GB+ 普通 SSD 低延迟网络 - 部署最佳实践:
- 采用 3 节点以上 master 候选节点,避免脑裂(通过
discovery.seed_hosts
配置)。 - 数据节点与 master 节点分离,协调节点独立部署(高负载场景)。
- 操作系统调优:
vm.max_map_count=262144
(避免内存映射错误)、ulimit -n 65535
(文件句柄限制)。
- 采用 3 节点以上 master 候选节点,避免脑裂(通过
2. 集群健康监控
- 核心监控指标:
- 集群健康状态:通过
/_cluster/health
查看green
(全可用)、yellow
(部分副本缺失)、red
(数据丢失)。 - 节点负载:CPU 利用率(长期>70% 需警惕)、堆内存使用率(控制在 70% 以下)、磁盘利用率(<85%,避免自动分片冻结)。
- 索引性能:写入延迟(
indexing.slowlog.threshold.index.warn
设置预警阈值)、搜索耗时(search.slowlog.threshold.query.warn
)。
- 集群健康状态:通过
- 监控工具推荐:
- 官方工具:Elasticsearch Monitoring(X-Pack 内置)、Kibana 仪表盘。
- 开源方案:Prometheus+Grafana(通过 Elasticsearch Exporter 采集指标)。
二、日常运维操作与故障处理
1. 索引与数据管理
- 索引生命周期管理(ILM):
- 按时间创建索引(如
logs-2025-05
),通过 ILM 策略自动执行分片、副本、归档或删除。 - 示例策略:热数据(7 天内)保留 2 副本,冷数据(7-30 天)压缩存储,30 天后删除。
- 按时间创建索引(如
- 分片优化:
- 单个索引分片数 = 节点数 ×(1~3),避免分片过小(<5GB)或过大(>50GB)。
- 通过
/_cat/shards
查看分片分布,使用_cluster/reroute
手动平衡分片。
2. 常见故障排查
- 集群变红(Red 状态):
- 原因:主分片丢失(节点宕机、磁盘故障)。
- 处理:检查
/_cluster/allocation/explain
确定分片分配失败原因,优先恢复故障节点;若无法恢复,通过/_settings
关闭副本,重建索引。
- 脑裂问题:
- 原因:网络分区导致 master 节点选举异常。
- 预防:设置
discovery.zen.minimum_master_nodes
=(候选 master 节点数 / 2)+1,启用gateway.recover_after_nodes
参数。
三、性能优化与调优策略
1. 写入性能优化
- 批量写入(Bulk API):
- 控制批量大小:5-15MB 或 500-5000 条文档,通过
bulk.flush_threshold_size
调整。 - 临时降低副本数:写入时设置
index.number_of_replicas=0
,完成后恢复。
- 控制批量大小:5-15MB 或 500-5000 条文档,通过
- 索引设置优化:
- 关闭实时刷新:
index.refresh_interval=-1
(导入完成后恢复)。 - 调整合并策略:
index.merge.policy.max_merge_at_once
设为 10(加快冷数据合并)。
- 关闭实时刷新:
2. 搜索性能优化
- 查询缓存与分片路由:
- 对高频查询启用
_search?request_cache=true
(缓存聚合结果)。 - 设计映射时,为查询字段添加
doc_values
或keyword
类型(提升排序、聚合效率)。
- 对高频查询启用
- 热数据优化:
- 将高频访问索引置于 SSD 磁盘,启用
index.store.type=memory
(小索引场景)。
- 将高频访问索引置于 SSD 磁盘,启用
四、数据安全与灾备方案
1. 安全防护
- 访问控制:
- 启用 X-Pack Security,配置角色权限(如仅限特定 IP 访问 Kibana)。
- 对敏感数据字段加密(通过
encrypt
插件或上游系统预处理)。
- 防滥用策略:
- 设置查询超时
search.query.default_time_out=30s
,限制复杂聚合查询(避免 OOM)。
- 设置查询超时
2. 备份与恢复
- Snapshot 快照:
- 定期备份到 OSS/S3 存储(如每天凌晨 2 点),配置
repository
仓库:
yaml
PUT _snapshot/my_repo {"type": "s3","settings": {"bucket": "es-backups","endpoint": "s3.amazonaws.com","compress": true} }
- 定期备份到 OSS/S3 存储(如每天凌晨 2 点),配置
- 跨集群复制(CCR):
- 配置热备集群,实时同步主集群数据(适用于异地灾备):
yaml
PUT _ccr/auto_follow/my_follower_index {"source": {"cluster": "primary_cluster","index": "source_index"} }
五、版本升级与扩容策略
1. 滚动升级流程
- 关闭分片自动分配:
PUT _cluster/settings?preserve_existing=true
json
{"persistent": {"cluster.routing.allocation.enable": "primaries"} }
- 依次停止节点,升级 ES 版本(确保 JDK 版本兼容)。
- 升级完成后,启用分片分配并检查集群健康。
2. 集群扩容
- 横向扩容(添加节点):
- 新节点加入前,确认磁盘、内存配置与现有节点一致,通过
discovery.seed_hosts
自动发现。
- 新节点加入前,确认磁盘、内存配置与现有节点一致,通过
- 纵向扩容(升级硬件):
- 优先扩容协调节点内存(提升查询聚合性能),数据节点建议逐步替换(避免一次性重启导致分片重平衡)。
六、运维工具与自动化脚本
- 官方工具:Elasticsearch Service(托管服务,简化运维)、Elastic Agent(统一监控代理)。
- 自动化脚本示例:
- 磁盘预警脚本(Python):
python
import subprocess disk_usage = subprocess.check_output("df -h /data | tail -1 | awk '{print $5}'", shell=True).decode() if int(disk_usage.strip('%')) > 85:send_alert("ES磁盘利用率超阈值!")
- 告警规则模板:
- 堆内存使用率>75%、集群 Yellow 状态持续 10 分钟、节点 CPU>80% 持续 15 分钟时触发告警。
七、最佳实践与经验总结
- 避免过度设计:中小规模集群(<10 节点)无需复杂架构,优先保证硬件配置达标。
- 定期压力测试:通过
elasticsearch-migration-tool
或jmeter
模拟高并发写入 / 查询,验证集群瓶颈。 - 文档与预案沉淀:记录每次故障处理流程(如误删索引恢复步骤),形成标准化运维手册。
相关文章:
Elasticsearch的运维
Elasticsearch 运维工作详解:从基础保障到性能优化 Elasticsearch(简称 ES)作为分布式搜索和分析引擎,其运维工作需要兼顾集群稳定性、性能效率及数据安全。以下从核心运维模块展开说明,结合实践场景提供可落地的方案…...

Linux编辑器——vim的使用
vim是一款多模式的编辑器。 基本操作:vim打开默认是命令模式,也就是输入命令然后系统执行指令,想要写代码,只需输入字母i,就进入插入模式,写完代码想要退出,按一下Esc,退回到命令模…...

线性回归原理推导与应用(八):逻辑回归二分类乳腺癌数据分类
乳腺癌数据是sklearn中自带的数据集,需要通过相关特征对是否患有乳腺癌进行分类。 数据清洗与建模 首先加载相关库和相关数据 from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression import numpy as np import…...

Jenkins分配对应项目权限与用户管理
在日常开发过程中经常会出现用户和权限管理问题,没有配置trigger时,通常需要我们手动构建,但此时前端和后端的朋友没有build权限,导致每次dev环境测试都需要麻烦我们手动去构建,消息传达不及时则会降低开发效率。 现有…...

Mate桌面环境系统与终端模拟器参数配置
说明: MATE桌面环境在使用中会优化一些参数配置,例如:电源选项、屏幕配置、字体配置、终端模拟器(Mate Terminal)配置等等。 通常工程师会根据自己喜好调整一些参数,修改后参数的保存位置在/home/u…...

fabric 是一个开源框架,用于使用 AI 增强人类能力。它提供了一个模块化框架,用于使用一组可在任何地方使用的众包人工智能提示来解决特定问题
一、软件介绍 文末提供程序和源码下载 fabric 是一个开源框架,用于使用 AI 增强人类能力。它提供了一个模块化框架,用于使用一组可在任何地方使用的众包人工智能提示来解决特定问题。 二、What and why 什么和为什么 自 2023 年初和 GenAI 以来&…...

基于PDF流式渲染的Word文档在线预览技术
一、背景介绍 在系统开发中,实现在线文档预览与编辑功能是许多项目的核心需求,但在实际的开发过程中,我们经常会面临以下难点: 1)格式兼容性问题:浏览器原生不支持解析Word二进制格式,直接渲染会…...
华为仓颉语言初识:结构体struct和类class的异同
前言 华为仓颉语言是鸿蒙原生应用的一种新的编程语言,采用面向对象的编程思想,为开发者带来新的开发体验。不仅可以和 ArkTs 相互调用,更能提升应用程序的性能,更重要的是仓颉语言的特点结合了 java 和 C 的特点。对开发者来说比…...

数据仓库基础知识总结
1、什么是数据仓库? 权威定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 1)数据仓库是用于支持决策、面向分析型数据处理; 2)对多个异构的数据源有效集…...

vue2使用element中多选组件el-checkbox-group,数据与UI更新不同步
问题描述 使用element多选checkbox组件,点击勾选取消勾选,视图未变化,再次点击表单其他元素,多选组件勾选状态发生变化,视图和数据未同步 第一次尝试:再el-checkbox-group多选父组件上增加点击事件&…...

linux磁盘分区及挂载、fdisk命令详解
文章目录 1.Linux磁盘分区概念精要1.1 分区的定义1.2 多分区的必要性1.2.1 数据安全隔离1.2.2 提升存储效率1.2.3 防止系统资源耗尽1.2.4 fdisk用法介绍 2.服务器挂载磁盘实战详细步骤2.1检查磁盘情况及格式化2.2磁盘分区2.3 磁盘目录挂载2.3.1 创建挂载目录2.3.2 …...
anaconda 安装教程以及常用命令
安装教程 安装教程 常用命令 Conda是一个非常强大的包管理和环境管理工具,以下是一些常用命令: 环境管理命令 创建环境 创建指定Python版本的环境:例如,创建名为 myenv,Python版本为3.9的环境。conda create -n m…...
C/C++的OpenCV的锐化
图像锐化技术:使用 C/C的OpenCV 增强图像细节 ✨ 图像锐化是一种常见的图像处理技术,其目的是增强图像的边缘和细节,使图像看起来更清晰、更鲜明。这在很多应用中都非常有用,例如医学成像、卫星图像分析以及提升普通照片的视觉质…...

Eigen矩阵存储顺序以及转换
一、Eigen矩阵存储顺序 在矩阵运算和线性代数中,"行优先"(Row-major)和"列优先"(Column-major)是两种不同的存储方式,它们决定了多维数组(如矩阵)在内存中的布局顺序。 1. 行优先(Row-major) 定义:矩阵按行顺序存储在内存中,即第一行的所有元…...
OpenLayers 加载ArcGIS瓦片数据
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 随着GIS应用的不断发展,Web地图也越来越丰富,除了像ESRI、超图、中地数码这样GIS厂商有各自的数据源格式,也有Google…...

2025蓝桥杯WP
引言 在2025年蓝桥杯网络安全赛道中,我们面对涵盖Web安全、逆向工程、PWN、取证分析以及加密解密等多领域的挑战,要求选手具备扎实且全面的安全技术与实战能力。本文将以实战记录的形式,逐题详细还原解题思路与操作步骤,并配以相…...

数字人教师:开启教育智慧革新之旅
在科技浪潮的推动下,教育领域正经历一场由数字人教师引领的深刻变革,这不仅是技术与教育融合的创新实践,更是教育模式重塑的关键路径。 一、数字人教师的崛起:教育变革的必然选择 随着互联网、大数据、人工智能等前沿技术的飞速…...
Linux中Java开发、部署和运维常用命令
在Java开发、部署和运维过程中,Linux操作系统常用的一些命令可以帮助开发人员、运维人员管理系统、查看日志、控制进程等。以下是一些常见的Linux命令: 1. 文件和目录操作 ls:列出当前目录下的文件和文件夹。 ls -l:显示详细信息…...

详解srs流媒体服务器的集群
前言: 什么是集群 集群就是多台计算机或服务器等资源,联在一起像一台大机器一样工作。比如一群蚂蚁一起搬东西,这些蚂蚁就类似集群里的各个部分。 为什么要集群 性能更强:能把任务分到多个机器上做,一起处理更快&…...

ubuntu22.04 安装 SecureCRT8.7.3
用到的全部软件,都放在这个网盘里面了,自取。 链接: https://pan.baidu.com/s/1AR6Lj8FS7bokMR5IrLmsIw?pwd3dzv 提取码: 3dzv 如果链接失效了,关注公号:每日早参,回复:资源,即可免费获取&…...
Day 37
继续之前的学习 过拟合的判断 import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler import time import matpl…...

libvirt设置虚拟机mtu实现原理
背景 云计算场景下,可以动态调整虚拟机mtu,提高虚拟机网络性能。设置虚拟机(VM)virtio网卡的MTU(Maximum Transmission Unit)涉及 宿主机(Host)、QEMU/KVM、vhost-net后端 和 虚拟机内部的virtio驱动之间的协作。 原理分析 1.libvirt设置mtu分析 libv…...

AstroNex空间任务智能控制研究与训练数据集
数据集概述 AstroNex空间任务智能控制研究与训练数据集是朗迪锋科技基于Multiverse平台精心打造的首个全面覆盖航天器智能控制全周期的综合数据集产品。该数据集汇集了轨道动力学、姿态控制、机器视觉、环境感知等多维度数据,为航天器智能算法研发提供丰富的训练与…...

汽车副水箱液位传感器介绍
汽车副水箱液位传感器是现代车辆冷却系统中不可或缺的关键部件,其核心功能在于实时监测冷却液存量,确保发动机在最佳温度范围内稳定运行。随着汽车电子化程度不断提升,这一看似简单的传感器已发展成为集机械、电子、材料技术于一体的精密装置,其工作原理与技术演进值得深入…...
Docker+MobaXterm+x11实现容器UI界面转发本地
本文记录了搭建一个可直接ssh访问的container,并可通过x11转发界面的实现过程 0.1 实验环境 PC:windows 11 Server:Ubuntu 18.04 Docker image:Ubuntu 18.04 1. 获取Ubuntu 18.04的镜像 使用Dockerfile获取镜像,对…...

IEEE出版|2025年智能制造、机器人与自动化国际学术会议 (IMRA2025)
【重要信息】 会议官网:www.icimra.com 会议时间: 2025年11月14日-16日 会议地点: 中国湛江 截稿日期:2025年09月16日(一轮截稿) 接收或拒收通知:文章投递后5-7个工作日 会议提交检索:EI Compendex, Scopus IEEE出版|2025年…...

EasyRTC嵌入式SDK音视频实时通话助力WebRTC技术与智能硬件协同发展
一、概述 在万物互联的数字化浪潮下,智能硬件已广泛渗透生活与工业领域,实时音视频通信成为智能硬件实现高效交互的核心需求。WebRTC作为开源实时通信技术,为浏览器与移动应用提供免插件的音视频通信能力,而EasyRTC通过深度优化音…...

Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航 Higress 作为一款强大的 AI 原生 API 网关,致力于铺设 AI 与现实世界之间最短、最安全、最具成本效益的连接路径。其核心能力之一便是支持将现有的 OpenAPI 规范无缝转换为 MCP Server&#…...
多个vue2工程共享node_modules
手头有多个vue2项目,它们每个都需要一个node_modules,拷贝起来超级麻烦。于是想到能否共享一个node_modules呢?? 方法其实挺多,我选择了一个较简单的:符号连接法(win11平台) 创建方法很简单:比…...
蓝桥杯178 全球变暖
题目描述 你有一张某海域 NxN 像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上…...