# ---------------------------------- Cluster -----------------------------------

# Use a descriptive name for your cluster:    # 集群名称,用于定义哪些elasticsearch节点属同一个集群。 cluster.name: bigdata    # ------------------------------------ Node ------------------------------------ # 节点名称,用于唯一标识节点,不可重名 node.name: server3    # 1、以下列出了三种集群拓扑模式,如下: # 如果想让节点不具备选举主节点的资格,只用来做数据存储节点。 node.master:  false node.data:  true    # 2、如果想让节点成为主节点,且不存储任何数据,只作为集群协调者。 node.master:  true node.data:  false    # 3、如果想让节点既不成为主节点,又不成为数据节点,那么可将他作为搜索器,从节点中获取数据,生成搜索结果等 node.master:  false node.data:  false    # 这个配置限制了单机上可以开启的ES存储实例的个数,当我们需要单机多实例,则需要把这个配置赋值2,或者更高。 #node.max_local_storage_nodes: 1    # ----------------------------------- Index ------------------------------------ # 设置索引的分片数,默认为5  "number_of_shards" 是索引创建后一次生成的,后续不可更改设置 index.number_of_shards: 5    # 设置索引的副本数,默认为1 index.number_of_replicas: 1    # 索引的刷新频率,默认1秒,太小会造成索引频繁刷新,新的数据写入就慢了。(此参数的设置需要在写入性能和实时搜索中取平衡)通常在ELK场景中需要将值调大一些比如60s,在有_template的情况下,需要设置在应用的_template中才生效。  index.refresh_interval: 120s    # ----------------------------------- Paths ------------------------------------ # 数据存储路径,可以设置多个路径用逗号分隔,有助于提高IO。 # path.data: /home/path1,/home/path2 path.data:  /home/elk/server3_data    # 日志文件路径 path.logs:  /var/log/elasticsearch    # 临时文件的路径 path.work:  /path/to/work    # ----------------------------------- Memory ------------------------------------- # 确保 ES_MIN_MEM 和 ES_MAX_MEM 环境变量设置为相同的值,以及机器有足够的内存分配给Elasticsearch # 注意:内存也不是越大越好,一般64位机器,最大分配内存别才超过32G    # 当JVM开始写入交换空间时(swapping)ElasticSearch性能会低下,你应该保证它不会写入交换空间 # 设置这个属性为true来锁定内存,同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过 `ulimit -l unlimited` 命令    bootstrap.mlockall:  true    # 节点用于 fielddata 的最大内存,如果 fielddata  # 达到该阈值,就会把旧数据交换出去。该参数可以设置百分比或者绝对值。默认设置是不限制,所以强烈建议设置该值,比如 10%。 indices.fielddata.cache.size: 50mb    # indices.fielddata.cache.expire  这个参数绝对绝对不要设置!    indices.breaker.fielddata.limit 默认值是JVM堆内存的60%,注意为了让设置正常生效,一定要确保 indices.breaker.fielddata.limit 的值 大于 indices.fielddata.cache.size 的值。否则的话,fielddata 大小一到 limit 阈值就报错,就永远道不了 size 阈值,无法触发对旧数据的交换任务了。    #------------------------------------ Network And HTTP ----------------------------- # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0 network.bind_host: 192.168.0.1    # 设置其它节点和该节点通信的ip地址,如果不设置它会自动设置,值必须是个真实的ip地址 network.publish_host: 192.168.0.1    # 同时设置bind_host和publish_host上面两个参数 network.host: 192.168.0.1    # 设置集群中节点间通信的tcp端口,默认是9300 transport.tcp.port: 9300    # 设置是否压缩tcp传输时的数据,默认为false,不压缩 transport.tcp.compress:  true    # 设置对外服务的http端口,默认为9200 http.port: 9200    # 设置请求内容的最大容量,默认100mb http.max_content_length: 100mb    # ------------------------------------ Translog ------------------------------------- #当事务日志累积到多少条数据后flush一次。 index.translog.flush_threshold_ops: 50000    # --------------------------------- Discovery -------------------------------------- # 这个参数决定了要选举一个Master至少需要多少个节点,默认值是1,推荐设置为 N/2 + 1,N是集群中节点的数量,这样可以有效避免脑裂 discovery.zen.minimum_master_nodes: 1    # 在java里面GC是很常见的,但在GC时间比较长的时候。在默认配置下,节点会频繁失联。节点的失联又会导致数据频繁重传,甚至会导致整个集群基本不可用。    # discovery参数是用来做集群之间节点通信的,默认超时时间是比较小的。我们把参数适当调大,避免集群GC时间较长导致节点的丢失、失联。 discovery.zen. ping .timeout: 200s discovery.zen.fd.ping_timeout: 200s discovery.zen.fd. ping .interval: 30s discovery.zen.fd. ping .retries: 6    # 设置集群中节点的探测列表,新加入集群的节点需要加入列表中才能被探测到。  discovery.zen. ping .unicast.hosts: [ "10.10.1.244:9300" ,]    # 是否打开广播自动发现节点,默认为true discovery.zen. ping .multicast.enabled:  false   indices.store.throttle. type : merge indices.store.throttle.max_bytes_per_sec: 100mb
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。