环境概要
系统:centos 7
JDK: version 1.8
获得安装包
注意:如果没有安装shasum,使用"yum install shasum"安装
mkdir /opt/module
cd /opt/module
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.15.2-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-7.15.2-linux-x86_64.tar.gz
配置环境信息(以下操作均在root用户下进行)
设置vm.max_map_count
- 运行如下命令行立刻生效(临时生效)
sysctl -w vm.max_map_count=262144
- 修改"/etc/sysctl.conf"永久生效,在文件中加入(重启生效)
vm.max_map_count=262144
- 查看是否生效
sysctl vm.max_map_count
调大文件描述符个数
- 运行如下命令立即生效(临时生效)
ulimit -n 65535
- 修改"/etc/security/limits.conf"永久生效,在文件中加入(下次会话生效)
elasticsearch - nofile 65535
- 查看是否生效
ulimit -n
调大线程数
- 运行如下命令立即生效(临时生效)
ulimit -u 4096
- 修改"/etc/security/limits.conf"永久生效,在文件中加入(下次会话生效)
elasticsearch - nproc 4096
- 查看是否生效
ulimit -u
配置ES相关设置
添加elasticsearch用户
由于ES需要在elasticsearch用户下运行,所以必须在系统中添加elasticsearch用户,运行如下命令添加用户
useradd elasticsearch
passwd elasticsearch
修改文件的用户和用户组信息
chown elasticsearch:elasticsearch -R /opt/module/elasticsearch-7.15.2
修改配置文件
vim /opt/module/elasticsearch-7.15.2/config/elasticsearch.yml
修改network.host:
- 将network.host的井号去掉
- 将原来ip修改为如下:
network.host: 0.0.0.0
将cluster.initial_master_nodes修改为:
- 将cluster.initial_master_nodes的井号去掉
- 将原来ip修改为如下:(一下IP换成自己的本机ip或host name)
cluster.initial_master_nodes: [“192.168.10.110”]
添加ingest.geoip.downloader.enabled
- 加入如下配置,关闭geoip
ingest.geoip.downloader.enabled: false
启动es
先切换用户:
sudo su elasticsearch
启动集群:
/opt/module/elasticsearch-7.15.2/bin/elasticsearch -d
查看日志,确认是否启动成功
tailf /opt/module/elasticsearch-7.15.2/logs/elasticsearch.log
备注
如果不关闭gaoip,在不设置认证情况下,则会出现下载失败,但不会导致启动失败,报错信息如下:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
解决方法一,关闭geoip:
vim /opt/module/elasticsearch-7.15.2/config/elasticsearch.yml 加入如下配置,然后重启即可成功
ingest.geoip.downloader.enabled: false
解决方法二,给jvm添加证书:
获得证书(windos环境)
方法一 使用谷歌浏览器下载证书
- 首先访问这个地址:https://geoip.elastic.co/v1/database?elastic_geoip_service_tos=agree
- 参考如下做法,获得证书:https://segmentfault.com/a/1190000011109968
方法二 使用portecle获得证书
- 软件下载地址:
链接:https://pan.baidu.com/s/1Cq3V9kLT60V7hQbSZeW8PA 提取码:0shp
- 然后解压,进入cmd界面,使用 “java -jar portecle.jar”运行
- 点击examine,然后选择examine SSL/TLS Connection
- 输入地址,然后点击ok
- 然后点击PEM Encoding
- 点击保存,获得geoip_elastic_co_R.pem文件
将证书加入到jvm中(安装es环境,centos环境,root用户)
- 将上述获得证书上传到centos机器上面(假设放在/root/目录下面)
- 运行如下命令,将证书加入到jvm,注意$JAVA_HOME替换为本机java安装地址。
用方法一导出证书为.cer结尾文件,用方法二导出证书为.pem结尾文件,根据实际情况替换命令行 -file后文件
$JAVA_HOME/bin/keytool -importcert -alias es_gao -keystore $JAVA_HOME/jre/lib/security/cacerts -file /root/geoip_elastic_co_R.pem
导入时会提示输入密码,请输入如下密码:changeit - 查看是否导入成功
keytool -list -alias es_gao -v -keystore $JAVA_HOME/jre/lib/security/cacerts
输入密码:changeit
出现如图所示,表示导入成功