系统参数:
# 修改linux内核内存分配策略
sysctl vm.overcommit_memory=1
# 尽可能少的使用swap
sysctl vm.swappiness=0
# 修改tcp-backlog(socket监听队列的值)
sysctl net.core.somaxconn=1024
# 修改mmap计数
sysctl vm.max_map_count=262144
vim /etc/security/limits.conf
# 进程最大数目
* - nproc 2056474
# 打开文件的最大数目
* - nofile 655360
# 地址空间限制
* - as unlimited
# 最大文件大小
* - fsize unlimited
# 最大锁定内存地址空间
* - memlock unlimited
环境参数:
/etc/profile
export ES_NETWORK_HOST=127.0.0.1
jvm参数:
# 6.4版本在jvm.options文件配置 而不是以前的环境参数设置
# jvm.options与elasticsearch.yml在同一目录
配置文件
elasticsearch.yml
# xpack.security.enabled: true
# xpack.security.transport.ssl.enabled: true
# xpack.security.transport.ssl.verification_mode: certificate
# xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
# xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
# 节点区域划分
# cluster.routing.allocation.awareness.attributes: zone
# cluster.routing.allocation.awareness.force.zone.values: zone-1, zone-2, zone-3
node.attr.zone: zone-1
# 集群名称 同一个集群里的此参数要一致
cluster.name: log-platform
# 节点名称 统一集群的节点之间需要不一致
node.name: ${HOSTNAME}
### es的节点分为三类 client master data
### client的master和data都是false, 作用类似于nginx的请求转发
### master负责结果聚合等工作,压力较大 所以不建议节点同时为master和data
### data节点存储分片负责部分计算
# 此节点为master候选节点
node.master: true
# 此节点为data节点
node.data: true
# data存放的路径
path.data: /data/es-data1/data, /data/es-data2/data
# log存放的路径
path.logs: /data/es-data1/logs
# 此节点对外的ip 本地直接写127.0.0.1即可
network.host: ${ES_NETWORK_HOST}
# 对外暴露的http访问端口
http.port: 9200
# es内部通讯端口 单播使用
transport.tcp.port: 9300
# 单播访问的地址 域名直接改成127.0.0.1即可 或者修改下本机host将127.0.0.1映射到多个域名,我是这么做的 我的有一个client 3个master 所以配了四个地址
# 组播好像已经废弃了
discovery.zen.ping.unicast.hosts: ["es1.log.com:9300","es2.log.com:9300","es3.log.com:9300"]
# 设置master选举需要赞同的最小节点数
# 值得计算方式为 master候选节点数除2加1
# 例如 node.master值为true的节点数量为5 值即为(5/2)+1 = 3
discovery.zen.minimum_master_nodes: 2
# 一个集群中的N个节点启动后,才允许进行恢复处理
gateway.recover_after_nodes: 2
# 1.初始化数据恢复时,并发恢复线程的个数,默认为4
cluster.routing.allocation.node_initial_primaries_recoveries: 6
# 2.添加删除节点或负载均衡时并发恢复线程的个数,默认为2
cluster.routing.allocation.node_concurrent_recoveries: 4
# 设置恢复时的吞吐量(例如:100mb,默认为0无限制.如果机器还有其他业务在跑的话还是限制一下的好)
indices.recovery.max_bytes_per_sec: 0
# 探查的超时时间,默认3秒,提高一点以应对网络不好的时候,防止脑裂
discovery.zen.ping_timeout: 5s
# CORS跨域访问设置
http.cors.enabled: true
http.cors.allow-origin: "*"
# 设置请求内容的最大容量,默认100mb
http.max_content_length: 100mb
# 锁住内存空间,禁止系统发生内存交换
bootstrap.memory_lock: true
设置索引缓存参数:
缓存类型 缓存条目 过期时间
curl -XPUT 'http://localhost:9200/_all/_settings?preserve_existing=true' -d '{
"index.cache.field.expire" : "10m",
"index.cache.field.max_size" : "50000",
"index.cache.field.type" : "soft",
"index.number_of_replicas" : "1",
"index.number_of_shards" : "5"
}'