目录
前言
在当今数据密集的时代,对数据的快速检索和高效管理变得至关重要。Elasticsearch(ES)是一个高度可扩展的开源全文搜索和分析引擎,它允许你实时地存储、搜索和分析大量数据。它被广泛用于各种应用,如日志和事件数据分析、实时应用监控、全文搜索等。本教程将引导您如何在Linux环境下部署一个基本的Elasticsearch集群。
部署Elasticsearch集群涉及到多个步骤,从软件的下载和安装到配置和优化,每一个步骤都需要细心的操作来确保系统的稳定和高效。通过本教程,我们将详细介绍如何在多台机器上配置和启动Elasticsearch服务,以及如何进行基本的集群健康检查和状态监控。
我们将从下载和安装Elasticsearch开始,接着会涉及到配置文件的修改,如jvm.options
和elasticsearch.yml
,这些配置将直接影响到集群的性能和行为。此外,我们还将介绍如何在集群的每个节点上设置和启动服务,以及如何通过简单的命令行工具检查和验证集群的状态。
本教程适用于需要在服务器集群上部署Elasticsearch的系统管理员、开发人员和技术爱好者。无论您是Elasticsearch的新手还是有一定经验的用户,都能从本教程中找到有用的信息来帮助您构建和维护Elasticsearch集群。
让我们开始吧,一步步构建您的Elasticsearch集群,以满足您的企业或个人项目需求。
环境准备
- 关闭防火墙
- 新建普通用户
lbs
- 阿里云时钟同步服务器
- 配置免密登陆
- 永久关闭
selinux
- 永久关闭
swap
分区 - 永久调整句柄数和进程限制
- 永久调整虚拟内存区域限制
- 配置
xsync
、xcall
同步脚本 - 配置
jdk8
环境
集群规则
说明:
- 除特别说明外,本文的所有操作均在
node-1
节点、使用me这个非root用户执行- 命令中出现的IP,均需要替换为自己集群中的IP【必须】
- 命令中出现的
/home/lbs/software
路径,可选择替换为自定义路径【可选
节点信息
节点名称 | ip |
node01 | 192.168.100.108 |
node02 | 192.168.100.110 |
node03 | 192.168.100.109 |
正式安装
1、下载资源包,并解压到指定安装路径
1、get https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
2、tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz -C/opt/module/ElasticSearch/
2、配置jvm.options
文件
vim /home/lbs/software/elasticsearch/config/jvm.options
# 修改内容如下(默认值为1g,根据服务器资源设置即可):
-Xms4g
-Xmx4g
3、配置elasticsearch.yml
文件
后续分发到集群中的其他机器上修改配置文件时,要注意
node.name
、discovery.seed_hosts
和cluster.initial_master_nodes
的要一一对应
4、创建存储数据的data
和日志logs
目录
mkdir -p /opt/module/ElasticSearch/elasticsearch-7.6.2/data
mkdir -p /opt/module/ElasticSearch/elasticsearch-7.6.2/logs
5、分发elasticsearch
文件夹到集群中的其他机器上
xsync /opt/module/ElasticSearch/elasticsearch-7.6.2
6、分别登录到其他的两台机器上,修改/opt/module/ElasticSearch/elasticsearch-7.6.2/config/elasticsearch.yml中的node.name
配置项为各自的值,要满足上述说过的对应关系。
启动集群
##启动命令
xcall /opt/module/ElasticSearch/elasticsearch-7.6.2/bin/elasticsearch -d
提示:
future versions of Elasticsearch will require Java 11; your Java version from [/home/lbs/software/jdk/jre] does not meet this requirement
无需理会,不影响使用
验证集群
启动后,需多等待一会儿
1、查看各节点日志信息最后的部分是否有报错
tail -fn 200 /opt/module/ElasticSearch/elasticsearch-7.6.2/logs/my-application.log
2、查看各节点信息
##
curl -X GET "192.168.100.108:9200"
curl -X GET "192.168.100.109:9200"
curl -X GET "192.168.100.110:9200"
3、查看集群状态信息(重点需要检查的)
#查看集群状态信息
curl -X GET "http://192.168.100.108:9200/_cluster/health?pretty"
[hadoop@node01 ik]$ curl -X GET "http://192.168.100.108:9200/_cluster/health?pretty"
{
"cluster_name" : "my-application",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 3,
"active_shards" : 6,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
4、查看集群节点信息
##查看集群节点信息
curl -X GET "http://localhost:9200/_cat/nodes?v&pretty"
[hadoop@node01 ik]$ curl -X GET "http://localhost:9200/_cat/nodes?v&pretty"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.100.109 29 89 8 0.68 0.73 0.75 dilm - node03
192.168.100.110 21 89 0 0.06 0.10 0.13 dilm * node02
192.168.100.108 14 98 4 0.54 0.59 0.67 dilm - node01
关闭集群
目前本人采用逐一在每个节点Kill掉es的进程,后续待优化