ElasticSearch7.x入门教程之集群安装(一)

文章目录


前言

在工作中遇到了,便在此记录一下,以防后面会再次遇到。第一次使用是在2020年末,过了很久了,忘了些许部分了。

在工作当中,如果是小的项目需求其实可以用单机版本的ES即可(不管是Linux上面还是Windows还是WinServer上面),都可以满足需求;数据量稍微大一点点的话,也可以上ES集群;这两种情况我都遇到过,单机版本的安装,比较简单,稍微AI一下就知道;在此主要记录一下,常规操作。

基于es7.x版本的三台服务器安装,这里环境是虚拟机环境。


一、es7.x版本集群安装

首先准备三台虚拟机,IP地址为192.168.1.151、192.168.1.152、192.168.1.153;

tips:在某些情况下,在配置文件中,每次不想都输入IP地址,故配置本地域名映射:
vim /etc/hosts修改如下(每个服务器都要修改):

新建用户:es要求要非root用户才可以启动;所以我们要创建es用户;

bash 复制代码
groupadd esgroup
useradd elastic -g esgroup -p your_password
# 修改用户所属
chown -R elastic:esgroup /opt/elasticsearch-7.9.3/

下载es7.9.3的tar.gz包并上传至/opt目录下:

es官网:https://www.elastic.co

文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/elasticsearch-intro.html

下载地址:https://www.elastic.co/downloads/elasticsearch

我这里已经下载好并上传至/opt目录下(分别上传至node2、node3的/opt目录下):

配置文件修改:

node1节点修改:

bash 复制代码
vim /opt/elasticsearch-7.9.3/conifg/elasticsearch.yml

# es集群的名称,三台服务器必须一致
cluster.name: my-es-app
# 当前节点的名称
node.name: node-master
# 节点的数据目录
path.data: /opt/elasticsearch-7.9.3/data
# 节点的日志目录
path.logs: /opt/elasticsearch-7.9.3/logs
# 节点端口
http.port: 9200

# 配置跨域,用kibana、es-header访问时候
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"

# 配置外网访问地址(node1 => 192.168.1.151)
network.host: node1
# 表示各节点通信
discovery.seed_hosts: ["node1", "node2", "node3"]
# 表示该节点为主节点,取值为node.name的值
cluster.initial_master_nodes: ["node-master"]

# 配置ES的登陆认证密码
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: ./certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: ./certs/elastic-certificates.p12

node2节点修改(说明参考node1):

bash 复制代码
cluster.name: my-es-app
node.name: node-slave01
path.data: /opt/elasticsearch-7.9.3/data
path.logs: /opt/elasticsearch-7.9.3/logs
http.port: 9200

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"

network.host: node2

discovery.seed_hosts: ["node1", "node2", "node3"]

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: ./certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: ./certs/elastic-certificates.p12

node3节点修改(说明参考node1):

bash 复制代码
cluster.name: my-es-app
node.name: node-slave02
path.data: /opt/elasticsearch-7.9.3/data
path.logs: /opt/elasticsearch-7.9.3/logs
http.port: 9200

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"

network.host: node3

discovery.seed_hosts: ["node1", "node2", "node3"]

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: ./certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: ./certs/elastic-certificates.p12

配置安全认证

参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/configuring-tls.html

配置证书:es7.x自带配置证书命令工具,在bin目录下,操作如下:

  • 1、给你的es集群创建一个证书;
bash 复制代码
bin/elasticsearch-certutil ca
  • 2、给你的集群每一个节点生成证书和私钥;
bash 复制代码
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

在这一过程当中,会提示你输入密码,可以不用输入密码,直接enter,下一步即可;

  • 3、在配置文件创建一个目录certs,存放刚刚生成的证书文件;

    说明:以上命令操作均是在node1节点家目录执行的;然后创建config/certs目录,将证书放在该目录下面;然后在修改elasticsearch.yml配置文件;最后把配置文件传至node2、node3节点处,各自添加安全认证配置;

  • 4、配置用户;

    参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/built-in-users.html

    elasticsearch内置了一些用户,如:elastic、kibana_system、logstash_system等。一般用elastic即可,他是超级管理员,后面也可以用来登录Kibana。

执行在任意节点,我用的是node1节点,执行以下命令:

bash 复制代码
bin/elasticsearch-setup-passwords interactive

会让你设置输入每一个用户的密码,会输入两次,我这里已经输入过了所以看不见;

至此,安全、用户登录便设置完成,使用es集群时候,会让你输入用户名密码;

我们也可以在es的索引中看见该用户列表:

系统配置

为了es的性能,官方建议设置系统参数,以此提高索引性能;

参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/configuring-security.html

修改系统参数(每一个节点都要修改):

  • 1、关机交换分区;
bash 复制代码
sudo swapoff -a
  • 2、修改系统资源限制符;
bash 复制代码
# 临时修改
sudo ulimit -n 65535

# 永久修改
vim /etc/security/limits.conf
# 添加如下:
elasticsearch  -  nofile  65535

# 刷新
sudo systemctl daemon-reload
  • 3、虚拟内存vm修改;
bash 复制代码
# 临时修改
sysctl -w vm.max_map_count=262144

# 永久修改
vim /etc/sysctl.conf
添加:
vm.max_map_count=262144

配置这个三个即可。

最后分别启动:

注意:上面启动截图有一个小问题,需要切换到es的用户,我这里是root用户,直接启动会失败;

查看端口,看见9200、9300说明启动成功;

访问测试(任意一个):192.168.1.151:9200,192.168.1.152:9200,192.168.1.153:9200;

二、elasticsearch-head安装

Elasticsearch-head 插件,可以通过可视化的方式查看集群信息。

第一种方式:浏览器插件安装

hrome 直接在 App Store 搜索 Elasticsearch-head,点击安装即可。

第二种方式:下载插件安装

bash 复制代码
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start

启动成功,页面如下:

三、Kibana安装

Kibana 是一个 Elastic 公司推出的一个针对 es 的分析以及数据可视化平台,可以搜索、查看存放在 es 中的数据。

bash 复制代码
vim config/kibana.yml

# kibana访问地址
server.host: "192.168.1.151"
# es集群地址
elasticsearch.hosts: ["http://192.168.1.151:9200","http://192.168.1.152:9200", "http://192.168.1.153:9200"]
# es集群的用户名及密码(我们上面配置的)
elasticsearch.username: "kibana_system"
elasticsearch.password: "your_kibana_password"

# 可选配置,上面那些配置基本上就配置完成,启动即可访问,不影响使用;
# 但是,观看启动日志,会有些报错日志,是因为版本原因和确实没有配置一些其它东西,
# 下面一些配置可以减少报错日志,看着舒服点
monitoring.cluster_alerts.email_notifications.email_address: 123@qq.com
xpack.security.encryptionKey: encryptionKeysecurity12345678909876543210
xpack.reporting.encryptionKey: encryptionKeyreporting12345678909876543210
xpack.encryptedSavedObjects.encryptionKey: encryptedSavedObjects12345678909876543210

xpack.reporting.capture.browser.chromium.disableSandbox: true
  • 3、启动:
    执行:./bin/kibana

最后访问:localhost:5601

需要输入用户名和密码。

Kibana 安装好之后,首次打开时,可以选择初始化 es 提供的测试数据,也可以不使用。


总结

以上就是ES基础用法常规操作,基础使用下次再记录。

相关推荐
wdxylb7 小时前
GIt使用笔记大全
笔记·git·elasticsearch
Elastic 中国社区官方博客19 小时前
使用真实 Elasticsearch 进行高级集成测试
大数据·数据库·elasticsearch·搜索引擎·全文检索·jenkins·集成测试
画船听雨眠aa1 天前
gitlab云服务器配置
服务器·git·elasticsearch·gitlab
risc1234561 天前
【Elasticsearch 】悬挂索引(Dangling Indices)
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客1 天前
使用 Ollama 和 Kibana 在本地为 RAG 测试 DeepSeek R1
大数据·数据库·人工智能·elasticsearch·ai·云原生·全文检索
zfj3211 天前
学技术学英语:elasticsearch硬件相关的配置&优化技巧
网络·elasticsearch·全文检索·内存·cpu·磁盘
字节全栈_vBr2 天前
面试之Solr&Elasticsearch
elasticsearch·面试·solr
risc1234562 天前
【Elasticsearch】中数据流需要配置索引模板吗?
大数据·elasticsearch·jenkins
JackieZhengChina2 天前
新一代搜索引擎,是 ES 的15倍?
大数据·elasticsearch·搜索引擎
是小崔啊2 天前
Spring Boot - 数据库集成06 - 集成ElasticSearch
数据库·spring boot·elasticsearch