当前位置:   article > 正文

es集群搭建部署_es集群部署

es集群部署

Elasticsearch的搭建

测试环境 centos7  版本elasticsearch-7.17.8

节点host名称节点ip节点部署内容
note1192.168.57.188主节点 数据节点
note2192.168.57.189主节点 数据节点
note3192.168.57.190数据节点

一 准备安装环境 

 1.下载安装包 官网 www.elastic.co 下载所有版本地址  点击跳转  下载elasticsearch-7.17.8版本

 2.创建安装环境

        安装jdk并配置环境变量

        创建安装目录每个节点都要创建

mkdir -p /home/tools/elasticsearch

        创建ssh免密登录

  3.上传压缩包

  4.解压Elasticsearch压缩包

二 修改配置文件

vim elasticsearch-7.17.8/config/elasticsearch.yml

核心配置

  1. #为集群设置名称,集群内所有节点配置的名称必须一致
  2. cluster.name: bigdata
  3. #当前节点取名,集群内节点名称必须唯一
  4. node.name: node1
  5. #当前节点地址
  6. network.host: 192.168.57.188
  7. #始化一个新的集群时需要此配置来选举master
  8. cluster.initial_master_nodes: ["note1", "note2"]
  9. #写入候选主节点的设备地址,在开启服务后可以被选为主节点
  10. discovery.seed_hosts: ["note1", "note2", "note3"]
  11. #表示该节点会不会作为主节点,true表示会;false表示不会
  12. node.master: true
  13. #当前节点是否用于存储数据,是:true、否:false
  14. node.data: true
  15. #数据存储目录(用逗号分隔多个位置) 这个目录默认不存在,自行创建
  16. path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
  17. #日志文件路径
  18. path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
  19. #es对外提供的http端口,默认 9200
  20. http.port: 9200
  21. #TCP的默认监听端口,默认 9300
  22. transport.tcp.port: 9300
  23. #启动时是否有锁定内存,生产环境需要true(可用内存一般设置可用内存的一半左右)
  24. bootstrap.memory_lock: true

核心配置简化

  1. cluster.name: bigdata
  2. node.name: note1
  3. network.host: 192.168.57.188
  4. cluster.initial_master_nodes: ["note1", "note2"]
  5. discovery.seed_hosts: ["note1", "note2", "note3"]
  6. path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
  7. path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
  8. http.port: 9200
  9. transport.tcp.port: 9300
  10. bootstrap.memory_lock: true

其他配置 (可忽略)

  1. # 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4
  2. discovery.zen.minimum_master_nodes: 2
  3. discovery.zen.fd.ping_timeout: 1m
  4. discovery.zen.fd.ping_retries: 5
  5. # 是否支持跨域,是:true,在使用head插件时需要此配置
  6. http.cors.enabled: true
  7. # “*” 表示支持所有域名
  8. http.cors.allow-origin: "*"
  9. action.destructive_requires_name: true
  10. action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
  11. xpack.security.enabled: false
  12. xpack.monitoring.enabled: true
  13. xpack.graph.enabled: false
  14. xpack.watcher.enabled: false
  15. xpack.ml.enabled: false

三 分发配置过后的安装包到节点2与节点3

scp -r ./elasticsearch-7.17.8 note2:$PWD
scp -r ./elasticsearch-7.17.8 note3:$PWD

四 修改节点2与节点3的配置文件

   节点2核心配置如下

  1. cluster.name: bigdata
  2. node.name: note2
  3. network.host: 192.168.57.189
  4. cluster.initial_master_nodes: ["note1", "note2"]
  5. discovery.seed_hosts: ["note1", "note2", "note3"]
  6. path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
  7. path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
  8. http.port: 9200
  9. transport.tcp.port: 9300
  10. bootstrap.memory_lock: true

   节点3核心配置如下

  1. cluster.name: bigdata
  2. node.name: note3
  3. network.host: 192.168.57.190
  4. cluster.initial_master_nodes: ["note1", "note2"]
  5. discovery.seed_hosts: ["note1", "note2", "note3"]
  6. path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data
  7. path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs
  8. http.port: 9200
  9. transport.tcp.port: 9300
  10. bootstrap.memory_lock: true

注意,集群名字保持一致,所有服务器的地址网段必须保持一致,才能有集群的效果  xxx.xxx.xxx.xxx  前9位相同, 后三位(主机)不同

五 启动集群

 启动集群不能使用root用户 需要使用普通用户 这里创建es用户(每个节点都需要创建赋权限)

useradd es -m

设置密码 

passwd es

赋予安装包的使用权限(注意如果数据目录不在安装包下 需要再赋予一次数据目录权限)

chown -R es:es /home/tools/elasticsearch

 启动 : 

  1. su es
  2. /home/tools/elasticsearch/elasticsearch-7.17.8/bin/elasticsearch

初次启动集群会抛出异常

异常信息如下

1. elasticsearch进程的最大文件数[4096]太低,增加到至少[65535]
2. elasticsearch进程请求内存锁定,但内存未锁定
3. 最大虚拟内存区域。Max_map_count[65530]太低,至少增加到[262144]

解决方法

1.修改进程的最大文件数

vi /etc/security/limits.conf

   添加最大创建文件数(*不能去掉)

  1. * soft nofile 65536
  2. * hard nofile 131072

2.内存锁定 

vim /etc/security/limits.d/20-nproc.conf
*    soft    nproc    4096
vim /etc/systemd/system.conf
  1. DefaultLimitNOFILE=65536
  2. DefaultLimitNPROC=32000
  3. DefaultLimitMEMLOCK=infinity

 3.设置最大虚拟内存区域

  执行命令            

  1. sysctl -w vm.max_map_count=262144
  2. echo "vm.max_map_count=262144" >> /etc/sysctl.conf
  3. sysctl -a|grep vm.max_map_count

   配置完成

自定义启动脚本 需要在es账户之间配置免密登录

  1. #启动脚本
  2. esPath="/home/tools/elasticsearch/elasticsearch-7.17.8/bin"
  3. #节点需要启动的节点ip地址
  4. hostname1="note1"
  5. hostname2="note2"
  6. hostname3="note3"
  7. case $1 in
  8. "start")
  9. ssh es@$hostname1 "source /etc/profile; $esPath/elasticsearch -d"
  10. ssh es@$hostname2 "source /etc/profile; $esPath/elasticsearch -d"
  11. ssh es@$hostname3 "source /etc/profile; $esPath/elasticsearch -d"
  12. ;;
  13. "stop")
  14. pid=$(ssh $hostname1 "ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'"| awk '{print $2}')
  15. ssh $hostname1 "kill $pid"
  16. echo "stop $hostname1 Elasticsearch $pid"
  17. pid=$(ssh $hostname2 "ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'"| awk '{print $2}')
  18. ssh $hostname2 "kill $pid"
  19. echo "stop $hostname2 Elasticsearch $pid"
  20. pid=$(ssh $hostname3 "ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}'"| awk '{print $2}')
  21. ssh $hostname3 "kill $pid"
  22. echo "stop $hostname3 Elasticsearch $pid"
  23. ;;
  24. *)
  25. echo "input {start | stop}"
  26. ;;
  27. esac

科学上网安装ElasticSearch Head (使用谷歌浏览器安装插件)

 

es 索引创建脚本

  1. address=localhost:9200
  2. index=$1
  3. mapping=`cat mapping`
  4. #创建索引
  5. curl -X PUT "${address}/${index}"
  6. #设置mapping
  7. curl -XPOST "http://${address}/${index}/robot/_mapping?pretty" -d "
  8. ${mapping}
  9. "

  1. {
  2. "robot": {
  3. "_all": {
  4. "enabled": false
  5. },
  6. "properties": {
  7. "istat": {
  8. "analyzer": "standard",
  9. "type": "text"
  10. },
  11. "fileName": {
  12. "type": "keyword"
  13. },
  14. "_createDate_": {
  15. "format": "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'",
  16. "type": "date"
  17. },
  18. "listener_time": {
  19. "format": "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'",
  20. "type": "date"
  21. },
  22. "quality": {
  23. "analyzer": "standard",
  24. "type": "text"
  25. },
  26. "@timestamp": {
  27. "format": "yyyy-MM-dd'T'HH:mm:ss.SSS'+08:00'",
  28. "type": "date"
  29. },
  30. "value": {
  31. "type": "double"
  32. },
  33. "_nodeName_": {
  34. "type": "keyword"
  35. }
  36. }
  37. }
  38. }

节点规模扩展

        新添加的节点需要配置cluster.initial_master_nodes,旧节点如果不重启不用修改,如果要重启旧节点,需要修改cluster.initial_master_nodes写入所有节点

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/126570
推荐阅读
相关标签
  

闽ICP备14008679号