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基础用法常规操作,基础使用下次再记录。

相关推荐
java1234_小锋1 小时前
详细描述一下Elasticsearch索引文档的过程?
大数据·elasticsearch·搜索引擎
Mephisto.java7 小时前
【大数据学习 | Spark-Core】Spark的分区器(HashPartitioner和RangePartitioner)
大数据·elasticsearch·oracle·spark·sqlite·flume·memcached
衣舞晨风10 小时前
[译]Elasticsearch Sequence ID实现思路及用途
elasticsearch·checkpoint·sequence·primaryterm
cab510 小时前
聊一聊Elasticsearch的索引(1)
大数据·elasticsearch·搜索引擎
gma99913 小时前
【BUG】ES使用过程中问题解决汇总
大数据·elasticsearch·搜索引擎
vvw&16 小时前
如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack
linux·运维·nginx·ubuntu·elk·elasticsearch·开源项目
Elastic 中国社区官方博客21 小时前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure
Karoku0661 天前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
上优1 天前
uniapp 选择 省市区 省市 以及 回显
大数据·elasticsearch·uni-app