废话不多说 es应该查这文章的都了解,分发节点之类的简单操作就默认大家都会了
部署流程
修改/etc/sysctl.conf
- 追加
- vm.max_map_count=262144 #限制一个进程可以拥有的VMA(虚拟内存区域)的数量
- vm.swappiness=0 #关闭swap
- net.ipv4.tcp_retries2=5 #tcp重传超时
修改 /etc/security/limits.d/20-nproc.conf
- 追加
-
- * soft nproc 65536 #限制单个进程最大文件句柄数(到达此限制时系统报警)
- * hard nproc 65536 #限制单个进程最大文件句柄数(到达此限制时系统报错)
- * soft nofile 65536 #限制单个进程最大文件句柄数(到达此限制时系统报警),对应就是soft(软)
- * hard nofile 65536 #限制单个进程最大文件句柄数(到达此限制时系统报错) ,对应就是soft(硬)
-
-
- * 表示该配置对所有用户均有效,root用户要特别加两行,安全考虑的话可以把前面的*换成具体用户
修改 /etc/security/limits.conf
- 追加
-
- * soft nofile 65536
- * hard nofile 65536
- * soft memlock unlimited #允许锁定内存量为不限制
- * hard memlock unlimited
重启一下服务器,刷新一下配置。 或者
sysctl -p
解压缩es安装包
创建配置文件目录
- mkdir /data/esdata
- mkdir /data/eslog
复制配置文件elasticsearch.yaml
添加用户
useradd es
修改权限
chown -R es:es elastic7.15.5 esdata eslog
修改elasticsearch.yaml的配置
- cluster.name: test #集群名称,开启了自发现功能后,ES会按照此集群名称进行集群发现
- node.name: test1 # 节点名称
- #node.attr.rack: r1 #节点服务器所在的机柜信息,此配置可不设
- path.data: /data/esdata
- path.logs: /data/eslog
- bootstrap.memory_lock: true
- node.master: true #指定该节点是否有资格被选举成为master节点
- node.data: true #允许该节点存储数据
- network.host: 0.0.0.0
- http.port: 9200
- http.cors.allow-origin: "*" # head 插件需要这打开这两个配置
- http.cors.enabled: true # head 插件需要这打开这两个配置
- http.max_content_length: 200mb #提高向 ES 传输数据的大小上限,ES的底层实现 Lucene 处理文档的上限大小为 2GB
- network.tcp.keep_alive: true #启用TCP keep alive
- network.tcp.no_delay: true #开启TCP 无延迟设置
- transport.tcp.compress: true #开启压缩tcp传输时的数据
- discovery.seed_hosts: ["test1", "test2","test3"]
- cluster.initial_master_nodes: ["test1", "test2","test3"]
- #action.destructive_requires_name: true #禁止使用通配符或_all删除索引
- cluster.routing.allocation.cluster_concurrent_rebalance: 8 #集群内同时启动的数据任务个数,默认是 2 个,跟内核数量一致即可
- cluster.routing.allocation.node_concurrent_recoveries: 8 #添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个,跟内核数量一致即可
- cluster.routing.allocation.node_initial_primaries_recoveries: 8 #初始化数据恢复时,并发恢复线程的个数,默认 4 个,跟内核数量一致即可
- #xpack的配置
- xpack.security.enabled: true
- xpack.security.transport.ssl.enabled: true
- xpack.security.transport.ssl.verification_mode: certificate
- xpack.security.transport.ssl.client_authentication: required
- xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
- xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
- 7.17版本要求启用密码后,节点传输需要开启TLS加密
- 生成TLS证书
- 任一es节点,使用
- ./bin/elasticsearch-certutil ca
- 生成CA
- 利用CA生成证书,使用
- ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
- 生成证书
- 拷贝生成的证书至ES_PATH_CONF环境变量指定的目录,默认就是config目录下
- 如果生成CA期间使用了密码,需要更新keystore
- ./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
- ./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
- jvm.options
- 这些设置的值取决于服务器上可用的RAM量。
- 将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等。
- 设置Xmx为不超过物理RAM的50%,以确保有足够的物理RAM用于内核文件系统缓存。
- 不要设置Xmx为JVM用于压缩对象指针(压缩oops)的截止值之上; 确切的截止值变化但接近32 GB。
- 以下是如何通过jvm.options文件设置堆大小的示例:
- -Xms2g
- -Xmx2g
- #后台启动
- bin/elasticsearch -d
设置es集群密码
http
接口完成的- bin/elasticsearch-setup-passwords auto | interactive生成密码
- auto是自动为保留的每个用户
- (apm,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user,elastic),自动生成密码并输出
- interactive是手动为每个用户设置密码
- 一般来讲都是手动
curl -XGET --user elastic:test111 http://localhost:9200/_cat/indices?v