搭建Elasticsearch集群

Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,能够在近乎实时的情况下存储、搜索和分析大量数据。它通常用于构建复杂的搜索功能和数据分析。

下载Elasticsearch并且安装

我之前的博客有写过,如果不懂可以去查看 ElasticSearch安装

配置Elasticsearch集群

在每台服务器上,你需要编辑config/elasticsearch.yml文件来配置你的Elasticsearch集群。你需要设置以下参数:

cluster.name: xx
node.name: node-1
path.data: /usr/local/es/elasticsearch-7.6.1/data
path.logs: /usr/local/es/elasticsearch-7.6.1/log
network.host: 192.168.2.18
http.port: 9200
discovery.seed_hosts: ["192.168.2.18","192.168.2.19"]
cluster.initial_master_nodes: ["node-1","node-2"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
复制代码
  • cluster.name:你的集群名字,所有同一集群的节点应该使用相同的名字。
  • node.name:节点的名字,每个节点的名字应该是唯一的。
  • network.host:节点的主机地址,可以是IP地址或主机名。
  • http.port:节点的HTTP端口。
  • discovery.seed_hosts:集群中所有节点的列表。
  • cluster.initial_master_nodes:一开始参与选举主节点的节点列表。

Elasticsearch-head插件

安装nodejs

下载安装包

cd /usr/local/es wget https://npm.taobao.org/mirrors/node/v8.1.0/node-v8.1.0-linux-x64.tar.gz 
tar -zxvf node-v8.1.0-linux-x64.tar.gz -C /usr/local/es/
复制代码

创建软连接

sudo ln -s /usr/local/es/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js 
/usr/local/bin/npm sudo ln -s /usr/local/es/node-v8.1.0-linux-x64/bin/node /usr/local/bin/node
复制代码

/usr/local/es/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js/usr/local/es/node-v8.1.0-linux-x64/bin/node两个文件的软链接创建到/usr/local/bin目录下,这样就可以通过命令行直接使用npmnode命令了。

配置环境变量

cd /etc/profile.d
vim my_env.sh

#加入下面配置内容
export NODE_HOME=/usr/local/es/node-v8.1.0-linux-x64 
export PATH=:$PATH:$NODE_HOME/bin
复制代码

使用下面命令生效

source /etc/profile
复制代码

安装Elasticsearch-head插件

当然可以。下面是关于Elasticsearch-head插件的安装步骤:

安装Elasticsearch-head插件

Elasticsearch-head是一个用于管理和监控Elasticsearch集群的Web前端插件。它提供了一个可视化的界面,方便你查看和操作集群中的数据。下面是如何安装Elasticsearch-head插件的步骤:

  1. 获取Elasticsearch-head源码:从GitHub上克隆Elasticsearch-head的源码:

    git clone https://github.com/mobz/elasticsearch-head.git
    复制代码

    如果你没有安装git,你可以直接从GitHub上下载源码压缩包,并解压到适当的目录。

  2. 安装依赖和启动Elasticsearch-head:进入elasticsearch-head目录,使用npm安装依赖:

    cd elasticsearch-head
    npm install
    复制代码
  3. node-1机器修改Gruntfile.js

cd /usr/local/es/elasticsearch-head 
vim Gruntfile.js
复制代码

找到代码中的93行:hostname: '192.168.100.100', 修改为:192.168.2.18(根据自己ip)

  1. node1机器修改app.js
cd /usr/local/es/elasticsearch-head/_site 
vim app.js
复制代码

在Vim中输入「:4354」,定位到第4354行,修改 http://localhost:9200为http://192.168.2.18:9200

5.启动head服务

cd /usr/local/es/elasticsearch-head/node_modules/grunt/bin/
复制代码

后台启动

nohup ./grunt server >/dev/null 2>&1 &
复制代码

访问http://ip:9100/

监控Elasticsearch集群

Elasticsearch提供了许多API供你监控集群的状态和性能。例如,你可以使用_cat API来获取集群、节点和索引的详细信息。你还可以使用监控插件(如Elasticsearch的X-Pack插件)来提供更详细的监控和告警功能。

GET   _cat/nodes?v
复制代码

可能遇到的问题

搭建es集群,启动两个es节点,访问elasticsearch-head时只显示一个master

解决方案:进到节点2的/elasticsearch-7.6.1/data/目录下删除nodes文件,之后重启节点2的es进程即可

优化集群性能

Elasticsearch有许多可以优化的地方,包括JVM设置、索引设置和查询优化等等。这里有一些基本的优化建议:

  1. JVM设置:Elasticsearch运行在Java虚拟机(JVM)上,你可以通过编辑config/jvm.options文件来优化JVM设置。例如,你可以设置JVM的初始和最大堆大小(默认是1GB),以适应你的硬件环境。
  2. 索引设置:你可以通过优化索引设置来提高索引和搜索的性能,例如使用合适的分片数量、使用更有效的分析器和优化索引刷新间隔等。
  3. 查询优化:你可以通过编写更有效的查询来提高查询性能,例如避免使用高开销的查询类型(如通配符查询)、使用过滤器来缓存常用的条件等。

安全设置

随着你的Elasticsearch集群在生产环境中的使用,安全性成为一个重要的考虑因素。Elasticsearch提供了多种安全功能,包括身份验证、授权、加密和审计等。

  • 身份验证和授权:你可以通过X-Pack Security插件设置用户名和密码进行身份验证,以及基于角色的访问控制进行授权。你需要在elasticsearch.yml中启用X-Pack Security,并配置用户和角色。
  • 加密:你可以使用SSL/TLS来加密集群间的通信以及客户端与集群之间的通信。你需要生成SSL证书并在elasticsearch.yml中配置它。
  • 审计:你可以启用审计日志来记录集群中的活动,如用户登录、请求、异常等。你需要在elasticsearch.yml中启用审计日志并配置它。

作者:小新x
链接:https://juejin.cn/post/7230994400455884837

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概述: Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它可以处理大量结构化和非结构化数据。在本文中,我们将了解如何在Linux环境中搭建Elasticsearch集群。 步骤: 步骤1:安装Java 在安装Elasticsearch之前,Java是必需的。您可以使用以下命令从命令行安装Java: ``` sudo apt-get update sudo apt-get install default-jre ``` 步骤2:下载和安装Elasticsearch 您可以从Elasticsearch官方网站下载最新版本的Elasticsearch。下载完成后,您可以使用以下命令安装它: ``` sudo dpkg -i elasticsearch-7.10.1-amd64.deb ``` 步骤3:配置Elasticsearch 默认情况下,Elasticsearch将在本地主机上运行。您可以通过编辑以下文件来更改默认配置: ``` sudo nano /etc/elasticsearch/elasticsearch.yml ``` 在此文件中,您可以更改以下设置: - cluster.name:设置集群名称。 - node.name:设置节点名称。 - network.host:设置网络接口。 - http.port:设置HTTP端口。 步骤4:启动Elasticsearch 要启动Elasticsearch,请使用以下命令: ``` sudo systemctl start elasticsearch ``` 要检查Elasticsearch是否正在运行,请使用以下命令: ``` sudo systemctl status elasticsearch ``` 步骤5:配置Elasticsearch集群 要配置Elasticsearch集群,请编辑以下文件: ``` sudo nano /etc/elasticsearch/elasticsearch.yml ``` 在该文件中,您可以使用以下设置来配置集群: - cluster.name:设置集群名称。 - node.name:设置节点名称。 - network.host:设置网络接口。 - http.port:设置HTTP端口。 - discovery.seed_hosts:设置种子主机列表。 在配置文件中,您还需要更改以下设置: ``` cluster.initial_master_nodes: ["node-1", "node-2"] ``` 此设置定义了集群中的初始主节点。您需要在每个节点上设置不同的名称。 步骤6:启动Elasticsearch集群 要启动Elasticsearch集群,请使用以下命令: ``` sudo systemctl start elasticsearch ``` 要检查Elasticsearch集群是否正在运行,请使用以下命令: ``` curl -X GET "http://localhost:9200/_cluster/health?pretty=true" ``` 此命令将显示有关集群的健康状态信息。 结论: 在本文中,我们了解了如何在Linux环境中搭建Elasticsearch集群。我们从安装Java开始,然后下载和安装Elasticsearch。接下来,我们配置了Elasticsearch,并启动了它。最后,我们配置了Elasticsearch集群,并启动了它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值