ELK安装、部署、调试 (二) ES的安装部署

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口操作ES,也可以利用Java API。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

1.概念以及特点

1、Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库。

是一个接近实时的搜索平台,从索引这个文档到这个文档能够被搜索到只有一个轻微的延迟,企业应用定位:采用Restful API标准的可扩展和高可用的实时数据分析的全文搜索工具。

2、可拓展:支持一主多从且扩容简易,只要cluster.name一致且在同一个网络中就能自动加入当前集群;本身就是开源软件,也支持很多开源的第三方插件。

3、高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换。

4、采用RestfulAPI标准:通过http接口使用JSON格式进行操作数据。

5、数据存储的最小单位是文档,本质上是一个JSON 文本:

2,下载及安装

下载es,Download Elasticsearch | Elastic

复制代码
https://www.elastic.co/cn/downloads/elasticsearch

百度网盘中elk下有

安装:

复制代码
tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz -C /usr/local

es需要创建一个普通的用户,本身是禁止root来启动es,也是为了安全

useradd esuser

chown -R esuser:esuser /usr/loca/elasticsearch 目录授权

我的操作

复制代码
[root@localhost elasticsearch]# useradd esuser
[root@localhost elasticsearch]# ls
useradd esuser
mkdir -p /data1/elasticsearch
mkdir -p /data2/elasticsearch
chown -R esuser:esuser /usr/local/elasticsearch
chown -R esuser:esuser /data1/elasticsearch
chown -R esuser:esuser /data2/elasticsearch

3.系统及jvm 优化es

1.操作系统优化

复制代码
/etc/sysctl.conf 文件添加内容如下
fs.file-max=655360   系统最大打开文件数
vm.max_map_count=262144 配置java的进程使用虚拟内存的大小

fs.file-max=655360   
vm.max_map_count=262144

/etc/security/limits.conf
* soft nproc  204800  最大进程数
* hard nproc  204800  最大进程数


* soft nofile 655360
* hard nofile 655350

* soft memlock unlimited
* hard memlock unlimited

/etc/security/limits.d/20-nproc.conf(仅centos7)
* soft nproc 4096 改为20480 
或者直接删除此文件。
sysctl -p

ulimit -a 查看配置是否生效

2.jvm优化,对其使用的内存进行优化

复制代码
vi /usr/local/elasticsearch/config/jvm.options
修改
-Xms2g
-Xmx2g
默认是2g,推荐测试系统内存的1/2

4.配置ES

/usr/local/elasticsearch/config/elasticsearch

默认所有配置都是注释掉的

复制代码
# 集群名称,如果不指定,默认是elasticsearch
cluster.name: my-ly-elk

节点名称,默认从elasticsearch-***/lib/elasticsearch-2.4.3.jar!config/names.txt中随机选择一个名称
node.name: server-1

节点是否有权利成为master,默认true,一般第一台启动的es会被认定为master
node.master:true

是否为数据存储节点,即是datanode节点
node.data:true 

注意:如果node.master和node.data都是false,则这个节点为client node,类似于路由器,只有转发的能力。

配置文件的路径
path.conf: /usr/local/elasticsearch/config
#

可以指定es的数据存储目录,默认存储在es_home/data目录下
path.data: /data1/elasticsearch,/data2/elasticsearch
#


# 可以指定es的日志存储目录,默认存储在es_home/logs目录下
path.logs: /usr/local/elasticsearch/logs

#es插件的存放路径
path.plugins:/usr/local/elasticsearch/plugins


锁定物理内存地址,防止elasticsearch内存被交换出去,也就是避免es使用swap交换分区
bootstrap.memory_lock: true


# 为es设置ip绑定,默认是127.0.0.1,也就是默认只能通过127.0.0.1 或者localhost才能访问
# es1.x版本默认绑定的是0.0.0.0 所以不需要配置,但是es2.x版本默认绑定的是127.0.0.1,需要配置
network.host: 0.0.0.0


# 为es设置自定义端口,默认是9200
# 注意:在同一个服务器中启动多个es节点的话,默认监听的端口号会自动加1:例如:9200,9201,9202...
# Set a custom port for HTTP:
http.port: 9200

9300为es节点之间的通信端口

配置最小的master节点数,通过配置这个参数来防止集群脑裂现象 (集群总节点数量/2)+1
discovery.zen.minimum_master_nodes:1
如果节点少的话,配置为1,如果配置大了,而没有那么多master节点,会造成es集群无法启动

配置自动发现其他节点,超时的时间。默认为3s,网络条件不太好时设置大一些
discovery.zen.ping.timeout:3s

配置多播发现节点
discovery.zen.ping.multicast.enabled:false


master节点的初始化。将所有的master节点配置到这里,包括自己的ip
discovery.zen.ping.unicast.host:["10.10.10.65:9300","10.10.10.66:9300"]


cluster.name: my-ly-elk
node.name: server-65
node.master: true
node.data: true
#path.conf: /usr/local/elasticsearch/config
path.data: /data1/elasticsearch,/data2/elasticsearch
path.logs: /usr/local/elasticsearch/logs
#path.plugins: /usr/local/elasticsearch/plugins
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.zen.minimum_master_nodes: 1
#discovery.zen.ping.timeout: 3s
#discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.10.10.65:9300","10.10.10.66:9300","10.10.10.67:9300"]
cluster.initial_master_nodes: ["10.10.10.65", "10.10.10.66"]     #此参数需要配置,如果默认不配置,kibana连接es会
报错

#注释掉的都是启动时报错了 然后才注释掉的

5.启动ES

su - esuser

ES目录下 bin/elasticsearch -d #-d是配置为后台运行

启动后查看日志/usr/local/elasticsearch/logs/集群名.log

启动成功后ps -ef| grep java也可以看到

或者用curl http://ip:9200查看三台服务器的信息

esuser@localhost elasticsearch$ curl http://10.10.10.66:9200

curl: (7) Failed connect to 10.10.10.66:9200; 没有到主机的路由

esuser@localhost elasticsearch$ curl http://10.10.10.66:9200

复制代码
{
  "name" : "server-66",
  "cluster_name" : "my-ly-elk",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "7.9.3",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
    "build_date" : "2020-10-16T10:36:16.141335Z",
    "build_snapshot" : false,
    "lucene_version" : "8.6.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[esuser@localhost elasticsearch]$

如上图,正常

相关推荐
大大大大晴天11 小时前
每天认识一个组件:数据治理Apache Atlas
大数据
数字新视界11 小时前
2026模块化机房选型指南:行业市场发展趋势、占有率与竞争梯队分析报告解析
大数据·人工智能·物联网·数据中心·微模块机房·模块化机房·冷通道
姜穆澜14 小时前
OneID 从 0 到 1 完整生产案例(四)
大数据
OsDepK14 小时前
项目快速Git至仓库(完整版)
大数据·git·elasticsearch·搜索引擎
合米AI SOP系统15 小时前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo15 小时前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
xiaohaiAIgeo15 小时前
【2026年】AI监控加行为分析守护实验室安全
大数据·人工智能·科普知识
林墨聊AIGC16 小时前
动漫AI视频创作工具在哪找到的?2026年最新动漫AI视频平台与软件指南
大数据·人工智能·ai作画·aigc·音视频
故七月17 小时前
告别 AI 时代品牌 “隐身”:万域智瞰 AI‑GEO,构建品牌大模型时代营销新基建
大数据·人工智能
数字孪生视频孪生18 小时前
三维实时重构异构底座 核工危化无感定位跨境轨迹一屏统揽
大数据·运维·人工智能·重构·架构