Elasticsearch 7.1.1 集群搭建

1 准备安装环境

1.1 安装JDK

elasticsearch 7.1.1 配置java8, java11

1.2 更改系统资源配置

  • 修改 /etc/sysctl.conf 文件,在文件末尾添加 vm.max_map_count=262144

    注意:修改完执行 sysctl -p,从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

    查看结果 sysctl -a|grep vm.max_map_count

  • 修改 /etc/security/limits.conf 文件

    # 在文件末尾添加下面永久系统调优,修改文件描述符大小(65536)和进程最大数目
    # *代表所有服务的用户名,也可设定用户,例如esuser
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 4096
    * hard nproc 4096

2 安装Elasticsearch集群

2.1 准备集群配置

三台机器,均用于保存数据且可被选为master节点

机器ipmaster节点data节点版本
172.16.153.37.1.1
172.16.193.2207.1.1
172.16.193.2397.1.1

2.1.1 创建esuser用户

# 添加用户组
groupadd esuser
​
# 添加用户
useradd -m -g esuser esuser
​
# 配置密码
passwd esuser
​
# 在最后增加 sudo权限
esuser ALL=(ALL)  NOPASSWD:ALL

2.2 下载 & 安装

# 下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-linux-x86_64.tar.gz
​
# 解压
tar xvf elasticsearch-7.1.1-linux-x86_64.tar.gz
​
# 软链
ln -s elasticsearch-7.1.1 elasticsearch

2.3 配置

2.3.1 配置说明

参数说明
cluster.name集群名称,相同名称为一个集群
node.name节点名称,集群模式下每个节点名称唯一
node.master当前节点是否可以被选举为master节点,是:true、否:false
node.data当前节点是否用于存储数据,是:true、否:false
path.data索引数据存放的位置
path.logs日志文件存放的位置
bootstrap.memory_lock需求锁住物理内存,是:true、否:false
bootstrap.system_call_filterSecComp检测,是:true、否:false
network.host监听地址,用于访问该es
network.publish_host可设置成内网ip,用于集群内各机器间通信
http.portes对外提供的http端口,默认 9200
discovery.seed_hostses7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
cluster.initial_master_nodeses7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
http.cors.enabled是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.allow-origin"*" 表示支持所有域名

2.3.2 详细配置

  • 172.16.153.3配置

    # 7.1.1 配置
    ​
    # 增加如下:
    cluster.name: my-application
    ​
    node.name: node-1
    node.master: true
    node.data: true
    ​
    path.data: /data/es/9200/data1,/data/es/9200/data2,/data/es/9200/data3
    path.logs: /data/es/9200/logs
    ​
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    ​
    network.host: 173.16.153.3
    # 有些时候并不需要此配置,但我这里需要..
    # network.publish_host: 173.26.153.48
    transport.tcp.port: 9300
    http.port: 9200
    # discovery.seed_hosts: ["173.26.153.48","173.16.153.252","173.16.153.161"]
    discovery.seed_hosts: ["173.16.153.3:9300","173.16.193.220:9300","173.16.193.239:9300"]
    cluster.initial_master_nodes: ["173.16.153.3","173.16.193.220","173.16.193.239"]
    gateway.recover_after_nodes: 2
    cluster.routing.allocation.disk.threshold_enabled: false
    ​
    ​
    http.cors.enabled: true
    http.cors.allow-origin: "*"

  • 172.16.193.220配置

    # 7.1.1 配置
    ​
    # 增加如下:
    cluster.name: my-application
    ​
    node.name: node-2
    node.master: true
    node.data: true
    ​
    path.data: /data/es/9200/data1,/data/es/9200/data2,/data/es/9200/data3
    path.logs: /data/es/9200/logs
    ​
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    ​
    network.host: 173.16.193.220
    # 有些时候并不需要此配置,但我这里需要..
    # network.publish_host: 173.26.153.48
    transport.tcp.port: 9300
    http.port: 9200
    # discovery.seed_hosts: ["173.26.153.48","173.16.153.252","173.16.153.161"]
    discovery.seed_hosts: ["173.16.153.3:9300","173.16.193.220:9300","173.16.193.239:9300"]
    cluster.initial_master_nodes: ["173.16.153.3","173.16.193.220","173.16.193.239"]
    gateway.recover_after_nodes: 2
    cluster.routing.allocation.disk.threshold_enabled: false
    ​
    ​
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ​

  • 172.16.193.239配置

    # 7.1.1 配置
    ​
    # 增加如下:
    cluster.name: my-application
    ​
    node.name: node-3
    node.master: true
    node.data: true
    ​
    path.data: /data/es/9200/data1,/data/es/9200/data2,/data/es/9200/data3
    path.logs: /data/es/9200/logs
    ​
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    ​
    network.host: 173.16.193.239
    # 有些时候并不需要此配置,但我这里需要..
    # network.publish_host: 173.26.153.48
    transport.tcp.port: 9300
    http.port: 9200
    # discovery.seed_hosts: ["173.26.153.48","173.16.153.252","173.16.153.161"]
    discovery.seed_hosts: ["173.16.153.3:9300","173.16.193.220:9300","173.16.193.239:9300"]
    cluster.initial_master_nodes: ["173.16.153.3","173.16.193.220","173.16.193.239"]
    gateway.recover_after_nodes: 2
    cluster.routing.allocation.disk.threshold_enabled: false
    ​
    ​
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ​

2.3.3 分别修改 jvm.option

-Xms10g
-Xmx10g

2.3.4 添加es安装目录权限

chown -R esuser:esuser /opt/es

2.3.5 启动集群

./elasticsearch
​
# 后台运行
./elasticsearch -d

启动成功界面如下:

 

 

2.3.6 设置集群认证密码

2.3.6.1 生成证书

在172.16.153.3机器上执行 :

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

注意: 密码后面需要单独设置,这里是集群安全认证,建议密码不设置,成功后生成的证书默认在es的config目录里面 elastic-certificates.p12;分别copy一份到其他节点的config里面(默认目录)

2.3.6.2 在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: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

2.3.6.3 重启集群并修改密码

bin/elasticsearch-setup-passwords interactive
  • elastic 账号:拥有 superuser 角色,是内置的超级用户。

  • kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。

  • logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。

  • beats_system账号:拥有 beats_system 角色。用户 Beats 在 Elasticsearch 中存储监控信息时使用。

3 安装Kibana

# kibana.yml 配置
​
server.port: 5601
server.host: "173.26.153.48"
elasticsearch.hosts: ["http://173.16.153.3:9200","http://173.16.193.220:9200","http://173.16.193.239:9200"]
elasticsearch.username: "elastic"
elasticsearch.password: "123456"

附件:完整配置

  • 172.16.153.3配置

    # 7.1.1 配置
    ​
    # 增加如下:
    cluster.name: my-application
    ​
    node.name: node-1
    node.master: true
    node.data: true
    ​
    path.data: /data/es/9200/data1,/data/es/9200/data2,/data/es/9200/data3
    path.logs: /data/es/9200/logs
    ​
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    ​
    network.host: 173.16.153.3
    # 有些时候并不需要此配置,但我这里需要..
    # network.publish_host: 173.26.153.48
    transport.tcp.port: 9300
    http.port: 9200
    # discovery.seed_hosts: ["173.26.153.48","173.16.153.252","173.16.153.161"]
    discovery.seed_hosts: ["173.16.153.3:9300","173.16.193.220:9300","173.16.193.239:9300"]
    cluster.initial_master_nodes: ["173.16.153.3","173.16.193.220","173.16.193.239"]
    gateway.recover_after_nodes: 2
    cluster.routing.allocation.disk.threshold_enabled: false
    ​
    ​
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ​
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

  • 172.16.193.220配置

    # 7.1.1 配置
    ​
    # 增加如下:
    cluster.name: my-application
    ​
    node.name: node-2
    node.master: true
    node.data: true
    ​
    path.data: /data/es/9200/data1,/data/es/9200/data2,/data/es/9200/data3
    path.logs: /data/es/9200/logs
    ​
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    ​
    network.host: 173.16.193.220
    # 有些时候并不需要此配置,但我这里需要..
    # network.publish_host: 173.26.153.48
    transport.tcp.port: 9300
    http.port: 9200
    # discovery.seed_hosts: ["173.26.153.48","173.16.153.252","173.16.153.161"]
    discovery.seed_hosts: ["173.16.153.3:9300","173.16.193.220:9300","173.16.193.239:9300"]
    cluster.initial_master_nodes: ["173.16.153.3","173.16.193.220","173.16.193.239"]
    gateway.recover_after_nodes: 2
    cluster.routing.allocation.disk.threshold_enabled: false
    ​
    ​
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ​
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

  • 172.16.193.239配置

    # 7.1.1 配置
    ​
    # 增加如下:
    cluster.name: my-application
    ​
    node.name: node-3
    node.master: true
    node.data: true
    ​
    path.data: /data/es/9200/data1,/data/es/9200/data2,/data/es/9200/data3
    path.logs: /data/es/9200/logs
    ​
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    ​
    network.host: 173.16.193.239
    # 有些时候并不需要此配置,但我这里需要..
    # network.publish_host: 173.26.153.48
    transport.tcp.port: 9300
    http.port: 9200
    # discovery.seed_hosts: ["173.26.153.48","173.16.153.252","173.16.153.161"]
    discovery.seed_hosts: ["173.16.153.3:9300","173.16.193.220:9300","173.16.193.239:9300"]
    cluster.initial_master_nodes: ["173.16.153.3","173.16.193.220","173.16.193.239"]
    gateway.recover_after_nodes: 2
    cluster.routing.allocation.disk.threshold_enabled: false
    ​
    ​
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    ​
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Elasticsearch7.9.0是一个开源的分布式搜索和分析引擎,用于构建高效、可扩展的实时搜索解决方案。要搭建Elasticsearch7.9.0集群,需要按照以下步骤进行操作: 1. 下载和安装Elasticsearch7.9.0:从官方网站上下载Elasticsearch7.9.0压缩包,并解压到合适的目录下。 2. 配置Elasticsearch集群参数:在每个节点上的elasticsearch.yml配置文件中,设置集群名称、节点名称、绑定IP地址等参数。确保每个节点的配置文件相同,以便节点可以识别彼此。 3. 修改JVM配置:根据服务器的硬件配置和需求,修改jvm.options文件中的内存分配参数,以确保Elasticsearch能够充分利用可用的系统资源。 4. 启动Elasticsearch节点:在每个节点的终端或命令行中,切换到Elasticsearch的安装目录,并运行./bin/elasticsearch命令来启动节点。确保每个节点都能正常启动。 5. 集群发现和节点自动加入:在elasticsearch.yml配置文件中,配置集群发现机制,如使用单播或多播,以及设置初始主节点。这将使得新的节点能够自动连接到现有的Elasticsearch集群。 6. 验证集群状态:使用curl或其他HTTP客户端发送请求到任意一个节点的IP地址和端口号,查看集群的状态信息。确保所有的节点都连接到集群,并且状态正常。 7. 索引和搜索数据:使用Elasticsearch的REST API或Java客户端,可以索引和搜索数据。通过创建索引、定义映射、增删改查操作可以实现灵活和高效的搜索和分析功能。 8. 监控集群健康和性能:使用Elasticsearch提供的监控工具或第三方插件,可以实时监控集群的健康状态、性能指标和查询性能。这有助于及时发现和解决潜在的问题。 总结:以上是搭建Elasticsearch7.9.0集群的基本步骤。搭建集群后,可以实现数据的高可用性、可扩展性和分布式计算,为企业提供全文搜索、日志分析等功能。通过合理的集群配置、优化和监控,可以提高集群的性能和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值