CentOS安装配置ElasticSearch(单机版)
一.环境
- CentOS8
- JDK 1.8
- ElasticSearch 6.8.15
官网下载ElasticSearch
在下载前建议先查看ElasticSearch和JDK版本对应关系。
https://www.elastic.co/cn/support/matrix#matrix_jvm
(虽然官网显示Open JDK 1.8能支持7.12.0版本的ES,但是我在启动ES时提示需要JDK11,所以还是建议使用老版本的ES)
https://www.elastic.co/cn/downloads/elasticsearch
二.安装配置
1.将下载下来的ES安装包传到CentOS并解压缩
1).上传文件到CentOS可以使用SmarTTY工具
2).解压命令:
tar -zxvf elasticsearch-6.8.15.tar.gz
2.配置es
1).在解压后的目录下新建datas文件和logs文件,用于存储数据和日志
mkdir datas
mkdir logs
2).进入config目录,编辑elasticsearch.yml
vi elasticsearch.yml
集群模式下放开cluster.name注释,单机模式下放开node.name注释
配置存储数据和日志的路径到我们刚刚建立的文件夹中
配置IP、端口、跨域
3).配置启动用户
ES不能使用root用户启动,所以必须要配置启动用户
# 创建用户组elk
groupadd elk
# 创建新用户elk,并设置其用户组为elk,密码为123456
useradd elk -g elk -p 123456
# 设置es安装目录的所属用户为elk
chown -R elk:elk /usr/elastic-search
3.切换到新建的启动用户,进入/bin目录下,启动es
# 切换用户
su elk
# 启动elasticsearch
./elasticsearch
三.报错处理
1.max number of threads [3137] for user [elk] is too low, increase to at least [4096]
意思是ES最大线程数据太低,需要增加到4096以上
解决方案:
# 切换到root用户
su root
# 修改/etc/security/limits.conf配置文件
vi /etc/security/limits.conf
# 在limits.conf最后加两行,*也可以换成ES的elk用户名
* soft nproc 4096
* hard nproc 4096
修改完成后,切换到elk用户,重启ES,该问题解决
2.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
意思是ES用户拥有的内存权限太小,最少要262144
解决方案:
# 切换到root用户
su root
# 修改/etc/sysctl.conf配置文件
vi /etc/sysctl.conf
# 在/etc/sysctl.conf最后添加一行
vm.max_map_count=262144
修改完成后,使用sysctl -p命令加载参数,然后切换到elk用户,重启ES,该问题解决
关闭防火墙后在本机访问ES成功