- centos7.x
- php 7.4
- Elasticsearch 7.x
- es文档
Elasticsearch安装大同分为两种方式【官网下载安装】和【yum安装】
一、Elasticsearch官网下载
根据自己的需求下载,一般下载的是linux86_64压缩包,但是它配置麻烦,配置开机自启还要自己去init.d写脚本,建议下载rpm包进行安装。
上传scp 安装包后进入所在目录,通过rpm执行安装
rpm -ivh 安装包名字
二、yum安装
- 导入 Elasticsearch GPG KEY:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- 添加elasticsearch的yum repo文件
cd /etc/yum.repos.d/
vim elasticsearch.repo
打开文件后写入如下内容
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://mirror.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
- 安装ES
yum install elasticsearch
如果你想指定ES版本可以使用:
yum list elasticsearch 或者 yum search elasticsearch --showduplicates
指定版本主要是为了后面安装ik分词,因为ik要和ES保持相同版本
yum install --enablerepo=elasticsearch elasticsearch-7.17.6-1.x86_64
如果搜索不到包尝试执行 yum install elasticsearch-7.17.6-1.x86_64
到此安装部分完成,如果你现要去执行一定报各种错误,如下修改配置
yum 安装完成后的目录 /usr/share/elasticsearch/;启动es
cd /usr/share/elasticsearch/bin
./elasticsearch
各种奇怪的错误
- org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root。
此错误大致含义就是不可以在root用户下启动ES
解决方法:
# 添加用户,我这里叫es
adduser es
# 给用户设置密码
passwd 123456
# 切换到es用户下
su es
- 这时切换到es用户下,又会报各种权限不足,加上权限就OK了
#./elasticsearch-env:行88: /etc/sysconfig/elasticsearch: 权限不够
chown -R es /etc/sysconfig/elasticsearch
#bin/elasticsearch-env: 第 96 行:cd: /etc/elasticsearch: 权限不够
chown -R es /etc/elasticsearch
#Exception in thread "main" java.nio.file.AccessDeniedException: /var/lib/elasticsearch
#只要看到AccessDeniedException异常就给它权限
chown -R es /var/lib/elasticsearch
#Error opening log file '/var/log/elasticsearch/gc.log': Permission denied
#将整个elasticsearch目录权限给它
chown -R es /var/log/elasticsearch
#另外将安装路径的权限给它,这里目前还没报错,不过报错是迟早的事
chown -R es /usr/share/elasticsearch
- 配置es.yml文件
vim /etc/elasticsearch/elasticsearch.yml
elasticsearch默认是不支持跨域的,在末尾添加如下两行支持跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
打开并修改访问ip设置,不然只有本虚拟机才能访问,别的机器无法访问
network.host: 0.0.0.0
es节点名称
cluster.name: elasticsearch
node.name: es-node0
initial_master_nodes如果不开后面会报错
cluster.initial_master_nodes: ["node-1"]
- 其它报错配置
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
大概是说elasticsearch 程序的当前max_file_descriptors 的限制为 4096,需要增加到 65536。
首先查看当前的大小,运行如下两个命令查看:
ulimit -Hn
ulimit -Sn
如下都是切换到root用户下执行
vim /etc/security/limits.conf
#es是自己的用户名,其他的照写
es hard nofile 65536
es soft nofile 65536
切换回 es 用户 查看是否修改成功
内存不足会报错OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e0c00000, 524288000, 0) failed; error='Not enough space' (errno=12)
这里默认4g,已经远远超出了范围,所以这里改为1g,可按照自己实际情况修改。
vim /etc/elasticsearch/jvm.options
-Xms1g
-Xmx1g
./elasticsearch方式却能正常启动
如果想通过 systemctl start elasticsearch.service 启动:
vim /usr/lib/systemd/system/elasticsearch.service
#把User值改成es用户
User=es
重新加载启动文件
systemctl daemon-reload
#启动
systemctl start elasticsearch.service
#停止
systemctl stop elasticsearch.service
#查看启动状态
systemctl status elasticsearch.service
#添加到开机自启动
systemctl enable elasticsearch.service
其它命令
#查看线程
ps -ef |grep elasticsearch
#root下进行
kill -9 上面查到的线程ID
浏览器输入你的ip:9200看到有反回值就表示成功了
三、IK安装
https://github.com/medcl/elasticsearch-analysis-ik/releases?page=3
找到和es相同版本的ik包,下载后scp到服务器。
cd /usr/share/elasticsearch/plugins
创建ik文件夹
mkdir ik
把下载好的包 unzip到ik文件夹中,注意一定要与es版本相同,不然会报错,别问我杂知道的
laravel
Logstash、Kibana安装
https://blog.csdn.net/qq_32596527/article/details/127567618