当前位置: 首页 > news >正文

ElasticSearch 可观测性最佳实践

ElasticSearch 概述

ElasticSearch 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别(大数据时代)的数据。ES 也使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RestFul API 来隐藏 Lucene 的复杂性,从而让全文检索变得简单。

所以,ElasticSearch 的监控显得尤为重要,可以帮助我们进行性能优化、资源管理、容量规划、故障检测和预防,及时发现和解决问题,确保系统的高效和稳定运行。

  • 实时性:ElasticSearch 能够实时地存储、检索和分析数据,使得用户能够快速获得最新的搜索结果和分析数据;
  • 分布式:ElasticSearch 采用分布式架构,能够水平扩展,处理 PB 级结构化或非结构化数据,同时具有高可用性和容错性;
  • 多样化的搜索和分析功能:ElasticSearch 支持全文搜索、结构化查询、过滤、地理空间查询和复杂的分析功能。

观测云

观测云是一个统一实时监测平台,它提供全面的系统可观测性解决方案,帮助用户快速实现对云平台、云原生、应用及业务的监控需求。观测云的核心功能包括:基础设施监测,日志采集和分析,用户访问监测(RUM),应用性能监测(APM),服务可用性监测(拨测),安全巡检,智能监控等等。

DataKit 提供 ElasticSearch 指标和日志的采集,安装好 DataKit 之后,开通 ElasticSearch 采集器,即可采集 ElasticSearch 指标和日志到观测云。

部署 DataKit

登录观测云控制台,点击「集成」 -「DataKit」 - 「Linux」,拷贝第 2 步中的安装命令。

安装完成后,DataKit 会提示您使用 datakit monitor 来检查 DataKit 的运行状态,如下图所示:

采集器配置

指标采集配置

Tips: ElasticSearch 版本 >= 6.0.0

适用于虚拟机部署的 ElasticSearch 监控,使用主机安装方式安装 DataKit 后,在 /usr/local/datakit/conf.d/db 目录下,复制 elasticsearch.conf.sample 为 elasticsearch.conf

# 根据实际情况进行修改,如果有账号密码,可进行如下配置
servers = ["http://user:pass@localhost:9200"]
# 若账号密码有特殊字符,也可以在这里添加账号密码
  # HTTP Basic Authentication
   username = "xxx"
   password = "yyy"
   
# 重启DK
datakit service -R
日志采集配置

采集 ElasticSearch 的日志,可在 elasticsearch.conf 中 将 files 打开,并写入 ElasticSearch 日志文件的绝对路径。

[[inputs.elasticsearch]]
  ...
[inputs.elasticsearch.log]
files = ["/path/to/your/file.log"]

开启日志采集以后,默认会产生日志来源(source)为 elasticsearch 的日志。

执行 datakit monitor 显示如下:

关键指标

指标描述单位
status_code集群状态count
os_cpu_percent集群CPU使用率count
os_mem_used_percent集群内存使用率count
jvm_mem_heap_used_percent集群堆内存使用率count
number_of_data_nodes数据节点count
number_of_pending_tasks待处理任务数count
active_primary_shards活跃主分片count
active_shards活跃分片count
initializing_shards初始化中分片count
relocating_shards迁移中的分片count
indices_lifecycle_error_count错误状态索引count
unassigned_shards未分配的分片count
primaries_docs_count主分片文档数量count
primaries_docs_deleted主分片已删除文档数量count
total_docs_count文档数量count
total_docs_deleted已删除文档数量count
total_flush_total_time_in_millisflush总时间ms
total_refresh_totalflush总数count
total_store_size_in_bytes存储大小B
total_merges_current_docs当前正在运行的文档合并数count
total_merges_total_docs合并文档的总数count
total_indexing_index_current当前正在运行的索引操作数count
total_indexing_index_total索引操作的总数count
total_search_query_current当前查询数count
total_search_query_total总查询数count
total_search_query_time_in_millis执行查询操作花费时间ms
total_search_fetch_time_in_millis执行获取操作花费时间ms

视图

登录观测云控制台,点击「场景」 -「新建仪表板」,模板库系统视图中,输入 “ElasticSearch ”, 选择“ElasticSearch 监控视图”,点击“确定”。

监控器

  • 查询耗时过长

  • 当前文档存储空间不足

  • 集群状态异常

  • 查询拒绝率过高

总结

通过观测云监控 ElasticSearch 关键指标,可以帮助我们优化查询、提前容量规划及告警,及时响应和处理出现的各种问题,同时对于系统优化和业务开展提供了数据支撑。

相关文章:

  • ABAP 长文本编辑器
  • ONE Deep模型:LG AI Research的开源突破
  • hadoop-配置ssh免密登录
  • C语言自定义类型【联合】和【枚举】详解
  • Redis Sentinel(哨兵模式)高可用性解决方案
  • 案例2:逻辑回归预测糖尿病
  • 计算机网络面试篇
  • 基于开源 AI 大模型、AI 智能名片及 S2B2C 商城小程序源码的个人 IP 用户运营策略研究
  • 从零开始搭建向量数据库:基于 Xinference 和 Milvus 的文本搜索实践
  • C++语法之命名空间二
  • Kali Linux 2025.1a 发布:新增工具、年度主题更新
  • 【前端】-jQuery(带你让你深入了解学习使用jQuery)
  • 在 Elasticsearch 中探索基于 NVIDIA 的 GPU 加速向量搜索
  • Ubuntu20.04安装并配置Pycharm2020.2.5
  • 再学:delegateCall使用及合约升级
  • TypeScript模块 vs JavaScript模块:现代化开发的模块化之道
  • 绿盟科技春招面试
  • 游戏开发全流程及其工具详解
  • 【QA】策略模式在QT有哪些应用
  • JavaScript进阶篇:六、JavaScript 作用域与闭包
  • 一周文化讲座|城市移民与数字时代的新工作
  • 一企业采购国产化肥冒充“挪威化肥”:7人被抓获
  • 特色业务多点开花,苏州银行擦亮金融为民底色
  • 王耀庆化身“罗朱”说书人,一人挑战15个角色
  • 苏丹宣布与阿联酋断交
  • 六大车企一季报:比亚迪近92亿净利稳居第一,多家车企营收下滑