ELK优化笔记

节点规划

  • 数据节点 :只存储索引数据和数据查询
    node.master: false 
    node.data: true
    
  • Master节点:不存储任何索引数据。该node主要协调各种创建索引请求或者查询请求,将这些请求合理分发到相关 的node服务器上
    node.master: true 
    node.data: false
    
  • 只读节点:不会被选作主节点,也不会存储任何索引数据。该服务器主要用 于查询负载均衡。在查询的时候,通常会涉及到从多个node服务器上查询数据,并请 求分发到多个指定的node服务器,并对各个node服务器返回的结果进行一个汇总处理, 最终返回给客户端。
    node.master: false 
    node.data: false
    

关闭data节点服务器中的http功能

针对ElasticSearch集群中的所有数据节点,不用开启http服务。将其中的配置 参数这样设置:http.enabled: false

可以在非数据节点上开启HTTP 功能,以及部署第三方插件。

一个服务器只部署一个数据节点

  • 服务器硬件配置建议:内存>64G,cpu 16C,
  • 服务器内存分配建议:以64G内存为例,jvm内存最大堆最大大小32G(不建议超32G), GC 算法建议使用GC1,默认CMS。如果大于128G可以跑两个ES实例。

    ES_MIN_MEM=32g
    ES_MAX_MEM=32g
    JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"
    JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=200 -Xss128m"
    

    如果在一个机器上跑多个ES实例,需设置 cluster.routing.allocation.same_shard.host:true 参数,防止同一个shard的主副本存在同一个物理机上, -Xss设置线程大小

  • Master节点建议CPU 内核数 >=16

  • 数据节点建议SSD+Reid 0

    比如100节点的ES集群,建议至少3个master 节点,10个只读节点,剩下全是数据节点。

系统参数设置

  • swapping设置: vm.swappiness = 1

  • mlockall配置文件设置:bootstrap.mlockall: true

  • ulimit设置
    ulimit -n 65536
    ulimit -l unlimited
    ulimit -s unlimited
    
  • segment memory内存优化:
    a. 删除不用使用索引;
    b. 关闭索引;
    c. 定期对不再更新的索引做optimize(合并segment memory);
  • 索引的settings进行优化:
    "index.translog.flush_threshold_ops":"10000" 
    "refresh_interval" : "1s"
    

    这两个参数第一是到translog数据达到多少条进行平衡,默认为5000,而这个过程相对而言是比较浪费时间和资源的。所以我们可以将这个值调大一些还是设为-1关闭,进而手动进行translog平衡。第二参数是刷新频率,默认为1s是指索引在生命周期内定时刷新,一但有数据进来能refresh像lucene里面commit,我们知道当数据addDoucment后,还不能检索到要commit之后才能行数据的检索,所以可以将其关闭,在最初索引完后手动refresh之,然后将索引setting里面的index.refresh_interval参数按需求进行修改,从而可以提高索引过程效率。

  • 索引副本数:

    "number_of_replicas": 0
    

    建议在索引过程中将副本数设为0,待索引完成后将副本数按需量改回来,这样也可以提高索引效率。

  • 分片数,计算公式:基于索引分片数=数据总量/单分片数

分片(Shard):一个索引会分成多个分片存储,分片数量在索引建立后不可更改,推荐【分片数*副本数=集群数量】 ,默认配置如下:

index.number_of_shards: 5 
number_of_replicas: 1

Elastic官方文档建议:一个Node中一个索引最好不要多于三个shards,配置total_shards_per_node参数,限制每个index每个节点最多分配多少个发片.

-------------the end-------------