Elasticsearch 单节点部署教程,以及踩坑记录

1、简介

        Elasticsearch 作为分布式搜索引擎,在生产环境中使用集群部署,对于学习者而言我们只需要掌握如何使用即可,后续更高级的集群部署配置将在以后博客中更新。

        Elasticsearch 更新迭代速度非常快,并且不同版本有着很大区别,Elasticsearch7.x 版本以后都会自带jdk,因此在Elasticsearch7.x以后不需要考虑jdk版本兼容问题;Elasticsearch8.x默认开启security(无论是生产环境还是开发环境都会带上),由此对于Elasticsearch的使用安全性增加很多要求,本文将从两个方面(开启security、关闭security)介绍Elasticsearch的安装和使用。本文使用 Elasticsearch-8.3.3 版本。

2、Elasticsearch 和 jdk 版本/操作系统之间的对应关系

        从7.x开始,以后的版本ES均自带jdk,所以可即使不安装jdk也可正常运行ES。对于 ES 8.0 而言,JDK版本只有一个选择,即 JDK 17;对于 ES 8.1 及以上版本而言,支持 JDK 17、JDK 18。

ES和JDK兼容性见网址:支持一览表 | Elastic(国内jdk镜像:WEJDK学习站)

操作系统的兼容性见网址:支持一览表 | Elastic

自身以及一些管理工具兼容性:支持一览表 | Elastic

3、Elasticsearch 的下载与安装
3.1、Elasticsearch 下载

Elasticsearch 下载地址:Past Releases of Elastic Stack Software | Elastic

3.2、Elasticsearch 安装

注:Elasticsearch 不支持 root 用户启动,需要新建用户,并且赋予新的用户权限,才可以启动Elasticsearch(这些操作在root用户下进行)。

# 1、解压到指定目录下(opt)(本文使用 elasticsearch-8.3.3 版本) 
tar -zxvf elasticsearch-8.3.3-linux-x86_64.tar.gz -C /opt
# 2、新建用户
useradd elasticsearch
passwd elasticsearch  # 给新建的用户设置密码
# 3、给elasticsearch目录设置新用户
chown elasticsearch:elasticsearch -R elasticsearch-8.3.3/
3.3、Elasticsearch 目录结构解释
目录名称说明
bin可执行脚本文件目录
config配置文件目录
lib依赖包目录
data默认数据保存目录,最好修改
logs默认日志保存目录,最好修改
plugins已经安装的插件保存目录
jdk自带jdk目录
modules所有Elasticsearch模块
3.3、配置文件初解(elasticsearch.yml)
# ---------------------------------- Cluster -----------------------------------
# Use a descriptive name for your cluster:
# cluster.name: my-application
# ------------------------------------ Node ------------------------------------
# Use a descriptive name for the node:
# node.name: node-1
# Add custom attributes to the node:
#node.attr.rack: r1
# ----------------------------------- Paths ------------------------------------
# Path to directory where to store the data (separate multiple locations by comma):
#path.data: /path/to/data
# Path to log files:
#path.logs: /path/to/logs
# ----------------------------------- Memory -----------------------------------
# Lock the memory on startup:
# bootstrap.memory_lock: true
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
# Elasticsearch performs poorly when the system is swapping the memory.
# ---------------------------------- Network -----------------------------------
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
network.host: 192.168.0.90
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
http.port: 9200
# For more information, consult the network module documentation.
# --------------------------------- Discovery ----------------------------------
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#discovery.seed_hosts: ["host1", "host2"]
# Bootstrap the cluster using an initial set of master-eligible nodes:
#cluster.initial_master_nodes: ["node-1", "node-2"]
# For more information, consult the discovery and cluster formation module documentation.
# --------------------------------- Readiness ----------------------------------
# Enable an unauthenticated TCP readiness endpoint on localhost
#readiness.port: 9399
# ---------------------------------- Various -----------------------------------
# Allow wildcard deletion of indices:
#action.destructive_requires_name: false
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------#----------------------- END SECURITY AUTO CONFIGURATION -------------------------

 主要有几个模块:

模块名说明
Cluster配置集群名称
Node配置当前节点信息(节点名称默认主机名
Paths指定数据和日志保存路径
Memory内存使用相关配置
Network网络相关配置(主机ip,端口等)
Discovery集群相关参数配置
BEGIN SECURITY AUTO CONFIGURATIONES8.0默认使用security,启动时添加的配置
’4、Elasticsearch 启动
4.1、直接启动(默认开启security) 
4.1.1、不修改配置文件启动

首次启动 Elasticsearch 时,会自动进行以下安全配置:

1)、为传输层和 HTTP 层生成 TLS 证书和密钥;

2)、TLS 配置设置被写入 elasticsearch.yml(BEGIN SECURITY AUTO CONFIGURATION 模块);

3)、为 elastic 用户生成密码。

4)、为 Kibana 生成一个注册令牌。

# 使用 elasticsearch 用户,进入bin目录执行
./elasticsearch -d

启动成功如下图:

验证服务状态,使用生成的密码登录(用户名:elastic,密码启动成功生成的):

 4.1.2、修改密码

        忘记密码怎么办,使用重新生成或者自定义密码。

# 1、重新生成密码
./elasticsearch-reset-password -u elastic # 可以使用./elasticsearch-reset-password --help查看使用
# 2、自定义密码
./elasticsearch-reset-password --username elastic -i

4.1.3、Elasticsearch 启动后配置文件(elasticsearch.yml)变化

  新增如下内容(这些内容是针对security自动添加的):

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------# 
# Enable security features
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:enabled: truekeystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: certs/transport.p12truststore.path: certs/transport.p12
# Create a new cluster with the current node only
# Additional nodes can still join the cluster later
cluster.initial_master_nodes: ["node-3"]
# Allow HTTP API connections from anywhere
# Connections are encrypted and require user authentication
http.host: 0.0.0.0
# Allow other nodes to join the cluster from anywhere
# Connections are encrypted and mutually authenticated
#transport.host: 0.0.0.0
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
4.2、关闭security 启动
4.2.1、修改配置文件

        修改elasticsearch.yml配置文件如下:

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
# Enable security features
xpack.security.enabled: false  # 将此处设置为false,即为关闭security
xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:enabled: truekeystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: certs/transport.p12truststore.path: certs/transport.p12
# Create a new cluster with the current node only
# Additional nodes can still join the cluster later
cluster.initial_master_nodes: ["node-3"]
# Allow HTTP API connections from anywhere
# Connections are encrypted and require user authentication
http.host: 0.0.0.0
# Allow other nodes to join the cluster from anywhere
# Connections are encrypted and mutually authenticated
#transport.host: 0.0.0.0
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
4.2.2、启动
# 使用 elasticsearch 用户,进入bin目录执行
./elasticsearch -d

直接访问不需要输入用户名,密码。

5、安装过程中出现的问题
5.1、未新创建用户启动Elasticsearch

        使用root账户直接启动会报错,新建账户,并且给Elasticsearch目录赋新用户权限,再启动即可。

5.2、操作系统设置问题

启动Elasticsearch出现错误:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方式:

# 1、修改操作系统文件描述符参数
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
# 注:*后面有空格
# 2、修改vm.max_map_count
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
# 3、重启服务器
reboot 
 6、总结

        本文详细介绍Elasticsearch在打开和关闭Security情况下的安装使用,以及对安装过程遇到的一些问题进行记录,帮助大家在centos7系统中够顺利安装和使用Elasticsearch。后续将介绍集群安装和使用。

        本人是一个从小白自学计算机技术,对运维、后端、各种中间件技术、大数据等有一定的学习心得,想获取自学总结资料(pdf版本)或者希望共同学习,关注微信公众号:it自学社团。后台回复相应技术名称/技术点即可获得。(本人学习宗旨:学会了就要免费分享)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外包干了30天,技术明显退步。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 这次来聊一个大家可能也比较关心的问题,那就是就业城市选择的问题。而谈到这个问题&a…

scrapy的基本使用介绍

创建项目 ### 1. 创建虚拟环境 conda create -n spiderScrapy python3.9 ### 2. 安装scrapy pip install scrapy2.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple### 3. 生成一个框架 scrapy startproject my_spider### 4. 生成项目 scrapy genspider baidu https://www.b…

基于springboot+vue实现高校学生党员发展管理系统项目【项目源码+论文说明】

基于springboot实现高校学生党员发展管理系统演示 摘要 随着高校学生规模的不断扩大,高校内的党员统计及发展管理工作面临较大的压力,高校信息化建设的不断优化发展也进一步促进了系统平台的应用,借助系统平台可以实现更加高效便捷的党员信息…

吴恩达机器学习-可选实验:使用ScikitLearn进行线性回归(Linear Regression using Scikit-Learn)

文章目录 实验一目标工具梯度下降加载数据集缩放/规范化训练数据创建并拟合回归模型查看参数作出预测绘制结果 恭喜 实验二目标工具线性回归,闭式解加载数据集创建并拟合模型查看参数作出预测 第二个例子恭喜 有一个开源的、商业上可用的机器学习工具包,…

2024蓝桥杯每日一题(双指针)

一、第一题:牛的学术圈 解题思路:双指针贪心 仔细思考可以知道,写一篇综述最多在原来的H指数的基础上1,所以基本方法可以是先求出原始的H指数,然后分类讨论怎么样提升H指数。 【Python程序代码】 n,l map(int,…

GO: 快速升级Go版本

由于底层依赖升级了,那我们也要跟着升,go老版本已经不足满足需求了,必须要将版本升级到1.22.0以上 查看当前Go版本 命令查看go版本 go version[rootlocalhost local]# go version go version go1.21.4 linux/amd64 [rootlocalhost local]# …

一篇文章带你了解Python数据分析

目录 一、什么是数据分析? 二、为什么学习数据分析? 三、数据分析实现流程 一、什么是数据分析? 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律。 使得数据的价值最大化 指定促销活动的方…

【网络原理】使用Java基于UDP实现简单客户端与服务器通信

目录 🎄API介绍🌸DatagramSocket🌸DatagramPacket🌸InetSocketAddress 🌳回显客户端与服务器🌸建立回显服务器🌸回显客户端 ⭕总结 我们用Java实现UDP数据报套接字编程,需要借用以下…

yolo模型中神经节点Mul与Sigmoid 和 Conv、Concat、Add、Resize、Reshape、Transpose、Split

yolo模型中神经节点Mul与Sigmoid 和 Conv、Concat、Add、Resize、Reshape、Transpose、Split 在YOLO(You Only Look Once)模型中,具体作用和用途的解释:

Claude 3 Sonnet 模型现已在亚马逊云科技的 Amazon Bedrock 正式可用!

今天,我们宣布一个激动人心的里程碑:Anthropic 的 Claude 3 Sonnet 模型现已在亚马逊云科技的 Amazon Bedrock 正式可用。 下一代 Claude (Claude 3) 的三个模型 Claude 3 Opus、Claude 3 Sonnet 和 Claude 3 Haiku 将陆续登陆 Amazon Bedrock。Amazon …

二叉树遍历(前中后序的递归/非递归遍历、层序遍历)

二叉树的遍历 1. 二叉树的前序、中序、后序遍历 前、中、后序遍历又叫深度优先遍历 注:严格来说,深度优先遍历是先访问当前节点再继续递归访问,因此,只有前序遍历是严格意义上的深度优先遍历 首先需要知道下面几点: …

【排序】详解插入排序

一、思想 插入排序是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。具体步骤如下,将数组下标为0的元素视为已经排序的部分,从1开始遍历数组,在遍历的过程中当前元素从…

upload-labs通关记录

文章目录 前言 1.pass-012.pass-023.pass-034.pass-045.pass-056.pass-067.pass-078.pass-089.pass-0910.pass-1011.pass-1112.pass-1213.pass-1314.pass-1415.pass-1516.pass-1617.pass-1718.pass-1819.pass-19 前言 本篇文章记录upload-labs中,所有的通过技巧和各…

蓝桥杯python常用内置函数

一、 abs() #返回数字的绝对值 例: 二、 all() #判断给定的可迭代参数中的所有元素是否都为True,若是则返回True,反之返回False 例: 三、 any() #判断给定的可迭代参数是否都为False,全为False则返回False&am…

SSL 证书,了解一下常识

公司的网站、应用怎么才能保证在互联网上安全运行,不被攻击、盗取数据呢? 创业必经之路,一步一步走就对了,可能没赶上红利期,但不做就等于0。 概述 SSL 证书(SSL Certificates)又称数字证书&am…

leetcode 1143. 最长公共子序列【动态规划】

leetcode 1143. 最长公共子序列 int longestCommonSubsequence(char* text1, char* text2) {int len1 strlen(text1);int len2 strlen(text2);int dp[len1 1][len2 1];memset(dp, 0, sizeof(dp));for (int i 1; i < len1; i) {for (int j 1; j < len2; j) {if (t…

【vue2基础教程】vue指令

文章目录 前言一、内容渲染指令1.1 v-text1.2 v-html1.3 v-show1.4 v-if1.5 v-else 与 v-else-if 二、事件绑定指令三、属性绑定指令总结 前言 Vue.js 是一款流行的 JavaScript 框架&#xff0c;广泛应用于构建交互性强、响应速度快的现代 Web 应用程序。Vue 指令是 Vue.js 中…

IPsec VPN之安全联盟

一、何为安全联盟 IPsec在两个端点建立安全通信&#xff0c;此时这两个端点被称为IPsec对等体。安全联盟&#xff0c;即SA&#xff0c;是指通信对等体之间对某些要素的约定&#xff0c;定义了两个对等体之间要用何种安全协议、IP报文的封装方式、加密和验证算法。SA是IPsec的基…

使用jar命令删除.jar文件中的重复的类和目录并重新打包

引言&#xff1a; android项目&#xff0c;引入的 .jar包 和 .aar中 有相同的类&#xff0c;导致编译冲突&#xff0c;由于这些依赖项没有上传到Maven仓库&#xff0c;无法使用 exclude 排除&#xff0c;只能尝试修改jar文件&#xff0c;删除重复的代码&#xff0c;再重新打包…

CACLP预告 | 飞凌嵌入式与您相约山城重庆

第二十一届中国国际检验医学暨输血仪器试剂博览会&#xff08;CACLP&#xff09;将于2024年3月16日-18日在重庆国际博览中心举行。本次会议将探讨科技创新趋势&#xff0c;展示最新成果&#xff0c;发现和挖掘颠覆性技术和创新产品&#xff0c;引领实验医学体外诊断科技创新和未…