简单ELK配置实现生产级别的日志采集和查询实践

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

概述

生产问题

  • 集群规模如何规划?
  • 集群中节点角色如何规划?
  • 集群之脑裂问题如何避免?
  • 索引分片如何规划?
  • 分片副本如何规划?

集群规划

  • 准备条件
    • 先估算当前系统的数据量和数据增长趋势情况。
    • 现有服务器的配置如CPU、内存、磁盘类型和容量的了解。
  • 建议设置
    • ElasticSearch推荐的最大JVM堆空间是30~32G,一般可以设置为30Gheap ,大概能处理的数据量 10 T。单个索引数据量建议不超过5T,如果有100T数据量可以部署20个节点。
    • 官方建议:节点分片最好按照JVM内存来进行计算,每Gb内存可以为20个分片,假设我们的JVM设置为30G,那么分片数据量最大600个。如果分片数量就是非常多,那么整个集群分片数量最好不要超过10万。
    • 集群规划满足当前数据规模+一定估算适量增长规模,后续再按需扩展即可。
  • 业务场景
    • 用于构建垂直领域的搜索的业务搜索功能,一般的数据量级几千万到数十亿量级,需要部署3-5台ES节点的规模。
    • 用于大规模数据的实时OLAP(联机处理分析),经典的如ELK Stack,数据规模可能达到千亿或更多,这是可能需要几十到上百ES节点的规模。

集群角色

ES为了处理大型数据集,实现容错和高可用性,ES可运行多服务器组成分布式环境下也称为集群;集群内的节点的cluster.name相同,形成集群的每个服务器称为节点。ES 为分配不同的任务,定义了以下几个节点角色:Master,Data Node,Coordinating Node,Ingest Node:

  • 主节点(Master Node):主要职责是负责集群层面的相关操作,管理集群变更,如创建或删除索引,跟踪哪些节点是群集的一部分,并决定哪些分片分配给相关的节点。

    • 主节点也可作为数据节点,但稳定的主节点对集群的健康是非常重要的,默认情况下任何一个集群中的节点都有可能被选为主节点,索引数据和搜索查询等操作会占用大量的cpu、内存、io资源,为了确保集群稳定,特别是非小型规模的集群(如10台以内)分离主节点和数据节点是推荐做法。
    • 通过配置node.master:true(默认)使节点具有被选举为Master的资格。主节点全局唯一并从有资格成为Master的节点中选举。
# 设置如下,后续所有节点设置可以通过这三个切换配置
node.master: true
node.data: false
node.ingest: false

  • 数据节点(Data Node):主要是存储索引数据的节点,执行数据相关操作:CRUD、搜索,聚合操作等。

    • 数据节点对cpu,内存,I/O要求较高, 在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点。
    • 通过配置node.data: true(默认来是一个节点成为数据节点)。
  • 预处理节点(Ingest Node):预处理操作运行在索引文档之前,即写入数据之前,通过事先定义好的一系列processors(处理器)和pipeline(管道),对数据进行某种转换。

    • processors和pipeline拦截bulk和index请求,在应用相关操作后将文档传回给index或bulk API。
    • 如果想在某个节点上禁用ingest,则可以配置node.ingest: false。
  • 协调节点(Coordinating Node):作为处理客户端请求的节点,只作为接收请求、转发请求到其他节点、汇总各个节点返回数据等功能的节点;客户端请求可以发送到集群的任何节点(每个节点都知道任意文档的位置),节点转发请求并收集数据返回给客户端。

    • 协调节点将请求转发给保存数据的数据节点,每个数据节点则先在本地执行请求,并将结果返回给协调节点。协调节点收集完每个节点的数据后将结果合并为单个全局结果,在这过程中的结果收集和排序可能需要很多CPU和内存资源。
    • 上述三个节点角色配置为false则为协调节点。

一个节点可以充当一个或多个角色,默认三个角色都有。

  • 集群角色建议设置
    • 小规模集群,基本不需严格区分。
    • 中大规模集群(十个以上节点),应考虑单独的角色充当。特别并发查询量大,查询的合并量大,可以增加独立的协调节点。角色分开的好处是分工明确,互不影响。

脑裂问题

所谓脑裂问题,就是同一个集群中的不同节点,对于集群的状态有了不一样的理解,比如集群中存在两个mas

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值