搭建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
目录下,这样就可以通过命令行直接使用npm
和node
命令了。
配置环境变量
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插件的步骤:
获取Elasticsearch-head源码:从GitHub上克隆Elasticsearch-head的源码:
git clone https://github.com/mobz/elasticsearch-head.git
复制代码
如果你没有安装git,你可以直接从GitHub上下载源码压缩包,并解压到适当的目录。
安装依赖和启动Elasticsearch-head:进入elasticsearch-head目录,使用npm安装依赖:
cd elasticsearch-head
npm install
复制代码
node-1机器修改Gruntfile.js
cd /usr/local/es/elasticsearch-head
vim Gruntfile.js
复制代码
找到代码中的93行:hostname: ‘192.168.100.100’, 修改为:192.168.2.18(根据自己ip)
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设置、索引设置和查询优化等等。这里有一些基本的优化建议:
- JVM设置:Elasticsearch运行在Java虚拟机(JVM)上,你可以通过编辑config/jvm.options文件来优化JVM设置。例如,你可以设置JVM的初始和最大堆大小(默认是1GB),以适应你的硬件环境。
- 索引设置:你可以通过优化索引设置来提高索引和搜索的性能,例如使用合适的分片数量、使用更有效的分析器和优化索引刷新间隔等。
- 查询优化:你可以通过编写更有效的查询来提高查询性能,例如避免使用高开销的查询类型(如通配符查询)、使用过滤器来缓存常用的条件等。
安全设置
随着你的Elasticsearch集群在生产环境中的使用,安全性成为一个重要的考虑因素。Elasticsearch提供了多种安全功能,包括身份验证、授权、加密和审计等。
- 身份验证和授权:你可以通过X-Pack Security插件设置用户名和密码进行身份验证,以及基于角色的访问控制进行授权。你需要在elasticsearch.yml中启用X-Pack Security,并配置用户和角色。
- 加密:你可以使用SSL/TLS来加密集群间的通信以及客户端与集群之间的通信。你需要生成SSL证书并在elasticsearch.yml中配置它。
- 审计:你可以启用审计日志来记录集群中的活动,如用户登录、请求、异常等。你需要在elasticsearch.yml中启用审计日志并配置它。
作者:小新x
链接:https://juejin.cn/post/7230994400455884837
还没有评论,来说两句吧...