ES监控方法以及核心指标

文章目录

  • 1. 监控指标采集
    • 1.1 部署elasticsearch_exporter
    • 1.2 prometheus采集elasticsearch_exporter的暴露指标
    • 1.3 promethues配置告警规则或者配置grafana大盘
  • 2. 核心告警指标
    • 2.1 es核心指标
    • 2.2 es容量模型建议
  • 3. 参考文章

探讨es的监控数据采集方式以及需要关注的核心指标,便于日常生产进行监控和巡检。


1. 监控指标采集

监控指标的采集方式使用promethues + elasticsearch_exporter的方式采集es的指标,并通过promethues协议暴露出来。本文探讨es的采集监控方式,以及常用核心监控告警配置。

1.1 部署elasticsearch_exporter

elasticsearch_exporter的 下载地址 选择合适的版本下载,并解压,使用如下方法启动。

# 不带鉴权方式
./elasticsearch_exporter --web.listen-address=":9114" --es.uri=http://127.0.0.1:9200
# 带鉴权方式
./elasticsearch_exporter --web.listen-address=":9114" --es.uri=http://admin:pass@127.0.0.1:9200

确定metrics指标暴露出来后,就可以通过prometheus配置target进行指标采集

# 通过promethues协议暴露指标
curl http://localhost:9114/metrics

在这里插入图片描述

1.2 prometheus采集elasticsearch_exporter的暴露指标

配置prometheus的指标采集任务

  - job_name: esstatic_configs:- targets: ['172.19.0.2:9114','172.19.0.3:9114','172.19.0.4:9114']labels:instance: es

在这里插入图片描述

1.3 promethues配置告警规则或者配置grafana大盘

再次不进行扩展。

2. 核心告警指标

es的指标很多,相关的指标含义可以参考 官网文档,本文将摘选出核心的指标,作为es集群的核心监控并配置相关的告警。

2.1 es核心指标

es性能指标有以下三类:

  • es本身的指标
  • 主机层面的指标
  • JVM垃圾回收指标

es层面指标

指标名称指标说明参考值备注
进程进程进程存在 == 1
指标名称指标说明参考值备注
elasticsearch_cluster_health_status{status=“green”}集群状态!==1green( 所有的主分片和副本分片都正常运行)、yellow(所有的主分片都正常运行,但不是所有的副本分片都正常运行)red(有主分片没能正常运行)
elasticsearch_cluster_health_relocating_shards前节点正在迁移到其他节点的分片数量<=20通常为0,集群中有节点新加入或者退出时该值会增加
elasticsearch_cluster_health_initializing_shards正在初始化的分片<=50如果数据写入,通常持续有小幅度值出现
elasticsearch_cluster_health_unassigned_shards未分配的分片数<=1通常为0,当有节点的副本分片丢失该值会增加
elasticsearch_cluster_health_number_of_pending_tasks队列中等待的任务<=20绝大部分情况下元数据更改的队列基本上保持为零
elasticsearch_cluster_health_active_shards活跃的分片数量<=3w通常按照容量模型,单个集群的总分片不应该超过3w
暂无指标单shard数据存储大小<=50g通常按照容量模型,单个分片的最大存储数据量不应该超过50g

机器层面指标

指标名称指标说明参考值备注
elasticsearch_process_cpu_percentCPU使用率<=80%机器的cpu使用率不能过高
elasticsearch_filesystem_data_free_bytes磁盘可用空间>=30%机器的磁盘是使用率不能过高,否则可能会触发只读风险
elasticsearch_process_open_files_count进程打开的文件描述符<=60w需要配置ulimit,匹配相关的进程进行文件读写,通常不能低于60w
elasticsearch_transport_rx_packets_total节点之间网络入流量根据机器的规格调整节点之间网络入流量,根据机器的网络网卡规格调整,如果单节点的出入网络过高则说明需要扩容了
elasticsearch_transport_tx_packets_total节点之间网络出流量根据机器的规格调整节点之间网络出流量,根据机器的网络网卡规格调整,如果单节点的出入网络过高则说明需要扩容了

JVM指标

指标名称指标说明参考值备注
MemHeapUsedM/MemHeapMaxMJvm 堆内内存使用率<= 60%

2.2 es容量模型建议

根据公有云以及es的维护、使用的相关经验,单个es集群的容量不是无上限,整理出es的容量模型,需要进行注意及时扩容或者做数据分流

1.【公有云 ES 最佳实践】
1.1 集群总分片数 < 30000,单个索引分片大小建议不超过 50g,单节点分片数量 < 4000
1.2 节点数超过 20 节点添加专有 master 节点,即 data:master ≤ 20:1
1.3 cpu/mem/disk 建议比例
搜索场景:比例 1:2:32
日志场景:比例 1:4:192 ~ 1:4:384
1.4 单节点性能规格参考
写入性能: 16c/64g、 jvm 32G 单节点可支持 2w docs/s 写入
存储容量 = 源数据 * (1 + 副本数量) * 1.45 * (1 + 0.5)≈ 源数据 * (1 + 副本数量)

2.【社区建议】
2.1 数据加速、查询聚合等场景:单节点磁盘最大容量 = 单节点内存大小(GB)* 10。
日志写入、离线分析等场景:单节点磁盘最大容量 = 单节点内存大小(GB)* 50。
通常情况:单节点磁盘最大容量 = 单节点内存大小(GB)* 30。
2.2单个数据节点的shard数量 = 当前节点的内存大小 * 30(小规格实例参考)
单个数据节点的shard数量 = 当前节点的内存大小 * 50(大规格实例参考)

3.其他指标
cpu < 60%
jvm内存 < 80%
磁盘util < 60%
磁盘使用率 < 70%
集群所有index,必须至少1主 + 1从副本
集群读写拒绝率 < 0.1%
集群无节点 old gc
单节点承载最大数据量 < 1T
ES版本 >= 6.8

3. 参考文章

  • es监控官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/457641.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运维必会篇-日志(错误日志,二进制日志,查询日志,慢查询日志)

日志 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过 程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时&#xff0c;建议首先查看此日 志。 该日志是默认开启的&#x…

统一身份认证系统架构设计与实践总结

随着互联网的快速发展和应用的普及&#xff0c;人们在各个网站和应用上需要不同的账号和密码进行身份认证。为了解决这个问题&#xff0c;统一身份认证系统应运而生。本文将总结统一身份认证系统的架构设计与实践经验&#xff0c;帮助读者了解如何设计和实现一个高效、安全的统…

代码随想录算法训练营第二八天 | 分割 子集

目录 复原IP地址子集子集 II LeetCode 93.复原IP地址 LeetCode 78.子集 LeetCode 90.子集II 复原IP地址 一些字符串的基本操作不会 s.insert(i 1, ‘.’); s.deleteCharAt(i 1); class Solution {List<String> result new ArrayList<>();public List<St…

uniapp canvas游标卡尺效果

效果 根据公司业务仿照写的效果。原项目从微信小程序转uniapp,未测试该效果在android端效果。 uniapp直接使用canvas不可做子组件,否则无效果显示,其次显示时要考虑页面渲染超时的问题。 如效果所见,可以设置取值精度。 gitee地址:project_practice: 项目练习 - Gitee.…

【sentinel流量卫兵配置持久化到Nacos】

sentinel流量卫兵配置持久化到Nacos 概述&#xff1a; 一、添加配置二、配置说明限流规则配置&#xff1a;降级规则配置&#xff1a;热点规则配置&#xff1a;授权规则配置&#xff1a;系统规则配置&#xff1a; 三、服务整合 概述&#xff1a; 控制台配置的参数&#xff0c;默…

python 动态显示数据。

界面显示动态的数据。 from time import sleep import serialimport tkinter as tklis[1,10,40] # 打开串行端口 ser serial.Serial(COM3, 9600) # 9600为波特率&#xff0c;根据实际情况进行调整# 创建窗口和画布 window tk.Tk() canvas tk.Canvas(window, width400, heig…

国产航顺HK32F030M: 超声波测距模块串口通信数据接收与处理

参考代码 /************************************************************************************************** * file usart_async_tx_no_int_rx_rxneint.c * brief 异步串口通信例程, 通过查询TXE标志发送数据,通过RXNE中断接收数据,当中断接收到数据后会将 * …

多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测

多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测 目录 多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预…

JS 基本语句

函数调用&#xff0c;分支&#xff0c;循环&#xff0c;语句示例。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

elementPlus实现动态表格单元格合并span-method方法总结

最近在做PC端需求的时候&#xff0c;需要把首列中相邻的同名称单元格合并。 我看了一下elementPlus官网中的table表格&#xff0c;span-method可以实现单元格合并。 我们先看一下官网的例子&#xff1a; 合并行或列 多行或多列共用一个数据时&#xff0c;可以合并行或列。 …

Docker Compose实例

目录 一、前提说明 二、简单的Docker容器部署案例 1. Dockerfile 配置 2. docker-compose.yml 配置 3. application.properties 配置 4. pom.xml 配置 5. 上传文件 6. 创建基础Docker镜像 7. docker-compose.yml编排 8. 停止并删除容器编排 一、前提说明 在配置好Do…

Swin-UMamba:结合基于ImageNet的预训练和基于Mamba的UNet模型

摘要 https://arxiv.org/pdf/2402.03302v1.pdf 准确的医学图像分割需要整合从局部特征到全局依赖的多尺度信息。然而&#xff0c;现有方法在建模长距离全局信息方面面临挑战&#xff0c;其中卷积神经网络&#xff08;CNNs&#xff09;受限于其局部感受野&#xff0c;而视觉转换…