一、基于Linux宝塔的Elasticsearch
Elasticsearch是基于Lucene的分布式全文搜索引擎,专为云而生,支持近乎实时的数据存储、搜索和分析。它运行在Linux上,提供可扩展、高可用的搜索服务,广泛用于日志分析、网站搜索、应用监控等领域。Elasticsearch的分布式架构使其能够处理PB级数据,并具备高度的灵活性和可扩展性。
二、Elasticsearch 安装与启动
2.1 进入宝塔终端,下载ES压缩包,这里用到是Elasticsearch7.13.2版本
ES官网地址: https://www.elastic.co/cn/downloads/elasticsearch :
#Linux命令行执行以下命令进行下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz
2.2 解压压缩包:
#解压压缩包在 /usr/local 目录命令
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local
2.3创建专用用户user-es启动Elaticsearch:
#root用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES:
useradd user-es
2.4 创建所属组:
#创建所属组
chown user-es:user-es -R /usr/local/elasticsearch-7.13.2
2.5 修改elasticsearch核心配置:
配置文件有默认配置,需要把默认配置前的#删除或者在当前配置的下一行配置。
2.5.1 进入Elasticsearch核心配置文件:
#进入核心配置文件
vim /usr/local/elasticsearch-7.13.2/config/elasticsearch.yml
2.5.2 初始化节点名称:
#配置集群的名字
cluster.name: user-esnode
#节点名称
node.name: user-esnode
#这里的名称要与node.name一样
cluster.initial_master_nodes: ["user-esnode"]
2.5.3 修改数据和日志的目录:
配置数据和日志的目录时,注意目录有无多余的空格或者/home前没有空格:
#修改数据和日志的目录
#数据目录位置
path.data: /home/user-es/elasticsearch/data
# 日志目录位置
path.logs: /home/user-es/elasticsearch/logs
2.5.4 修改绑定的ip:
#修改为0.0.0.0可以远程访问,允许任何ip来访问
network.host: 0.0.0.0
2.5.5 端口号
#端口号一般使用默认端口9200,删除前头的#即可
http.port: 9200
2.6 切换到user-es
用户:
#切换到user-es用户
su user-es
2.7 进入bin目录,启动elasticsearch:
当运行的命令行出现started就启动完成:
#进入bin目录,启动elasticsearch:
cd /usr/local/elasticsearch-7.13.2/bin/elasticsearch
2.8 启动成功后
可以通过 http://服务器地址:9200 浏览器访问,浏览器页面出现"name": "user-esnode", "cluster_name":"user-esnode" 等内容,说明ES安装成功。
还可以再Linux宝塔界面执行以下命令检查:
#启动成功后
curl -X GET "http://服务器地址:9200/"
三、可能出现问题以及解决办法
3.1 内存不足,error='Not enough space'
由于 elasticsearch 默认分配 jvm空间大小为2g,可能出现存在内存空间不足的情况,修改 jvm空间即可。
#内存不足
error='Not enough space'
进入/usr/local/elaticsearch-7.13.2/config目录修改jvm.options文件,将2g修改为256m:
#进入目录,编辑文件
vim /usr/local/elasticsearch-7.13.2/config/jvm.options
#原来配置:
-Xms2g
-Xmx2g
#修改后配置:
-Xms256m
-Xmx256m
3.2 默认最大映射数小,vm.max_map_count [65530] is too low:
系统默认最大映射数为65530,对于Elasticsearch系统要求来说小了,调整为262144以上即可,这里调整为262144:
#系统虚拟内存默认最大映射数为65530,无法满足ES系统要求
vm.max_map_count [65530] is too low
3.2.1 进入sysctl.conf配置文件:
#进入sysctl.conf配置文件
vim /etc/sysctl.conf
3.2.2 添加vm.max_map_count配置:
#添加vm.max_map_count配置
vm.max_map_count = 262144
3.2.3 保存退出,重新加载配置:
#进入配置文件,按下i键进入修改模式
#配置完成后点击esc键,输入:wq 保存退出
#之后输入以下命令刷新配置,重新加载
sysctl -p
记得要切换用户再启动Elaticsearch!
#切换用户
su user-es
#启动Elasticsearch
/usr/local/elasticsearch-7.13.2/bin/elasticsearch
3.3 Elasticsearch不允许使用root安装,max file descriptors [4096]:
#Elasticsearch不允许使用root安装,max file descriptors [4096]:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
3.3.1 进入limits.conf文件,将当前用户的软硬限制调大:
#进入limits.conf
vim /etc/security/limits.conf
3.3.2 添加配置:
#添加配置
es soft nofile 65535
es hard nofile 65537
3.3.3 重启linux!!
四、一些小细节
4.1 端口是否正常:
如果启动失败,可以检查各个端口的状态是否正常。点击宝塔“安全”模块查看9200、9300、5601是不是“正常”状态:
4.2 查看阿里云安全组是否允许授权策略:
4.2.1 访问规则是允许
进入阿里云“控制台”→进入“云服务器ES”→点击当前页面蓝色的实例名称(右边有运行中字样)→点击“安全组”,下拉可以看到图2访问规则是允许的:
图1
图2
4.3 或者查看linux配置了ifcfg-en33等配置
注意: 一一排错,一定要注意配置文件里面的有无多余的空格!!!