ElasticSearch 6.6.2安装和升级

发布于:2025-08-02 ⋅ 阅读:(18) ⋅ 点赞:(0)

本文主要讲述elasticsearch6.6.2的安装和升级,升级是升级到6.8.23,6.8.23版本为elasticsearch6.X系列的稳定版,并可以通过生成证书、配置ES的SSL和密码,实现ES的安全连接,后续博主会在springboot集成elasticsearch6.X中讲到这两种版本的区别。
下载路径:
elasticsearch6.6.2
elasticsearch6.8.23
kibana 6.8.23

一、安装JDK

1、上传jdk安装包(资料/安装包中的jdk-8u171-linux-x64.tar.gz)并解压

# 进入opt目录
cd /opt 
tar -zxvf jdk-8u171-linux-x64.tar.gz

2、设置环境变量

vi /etc/profile
JAVA_HOME=/opt/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

3、使得环境变量生效

source /etc/profile

4、验证

java -version

二、Elasticsearch安装

1、上传资料/安装包的elasticsearch-6.6.2.tar.gz

在这里插入图片描述

2、解压

cd /opt
tar -zxvf elasticsearch-6.6.2.tar.gz

3、修改config/elasticsearch.yml文件

# 进入
cd config
vi elasticsearch.yml
# 指定本机ip地址
network.host: 192.168.66.100
# 指定http端口
http.port: 9200
# 配置是否允许跨域
http.cors.enabled: true
# 允许哪些域跨域
http.cors.allow-origin: "*"

说明:

  • 域:http://ip/port
  • 跨域是浏览器的同源保护策略,默认是不允许一个域访问另一个域,因为域下面保存了cookie信息。

4、启动elasticsearch

cd elasticsearch-6.6.2
bin/elasticsearch

在这里插入图片描述

解决方案:

这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行ElasticSearch。及elsearch用户

#创建elsearch用户组
groupadd elsearch

#创建elsearch用户,并-g分配一个用户组,-p指定密码
useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch

cd /opt
chown -R elsearch:elsearch elasticsearch-6.6.2

5、切换用户到elsearch中,执启动

# 切换用户
su elsearch

# 进入es目录
cd elasticsearch-6.6.2

# 执行
bin/elasticsearch

# 或者后台启动,会将日志内容输出到当前目录的nohup.out文件中,可以通过tail -f nohup.out 查看日志信息
nohup bin/elasticsearch & 

在这里插入图片描述

启动成功! 浏览器访问:http://192.168.66.100:9200/

在这里插入图片描述

如果访问失败请记得关闭防火墙

# 停止firewall
systemctl stop firewalld
# 禁止firewall开机启动
systemctl disable firewalld

二、Elasticsearch启动常见的几个报错

2019.02.12 16:24:31字数 242阅读 4401

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
切换到root用户,编辑limits.conf添加如下内容(文件描述符)

vi /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144

vi /etc/sysctl.conf
vm.max_map_count=262144

# 执行命令sysctl -p生效
sysctl -p

[3]:system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

cd /opt/elasticsearch-6.6.2/config
vi elasticsearch.yml
# 是否锁住内存,centos6 版本问题
bootstrap.memory_lock: false
# 是否允许系统调用, centos6 版本问题
bootstrap.system_call_filter: false

三、Kibana安装

1、什么是Kibana

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。

Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。

2、上传kibana

CRT中克隆一个窗口,上传Kibana

cd /opt

3、解压kibana

# 解压到/opt 目录下
tar -zxzf kibana-6.6.2-linux-x86_64.tar.gz

4、修改kibana配置

vim /opt/kibana-6.6.2-linux-x86_64/config/kibana.yml
# http访问端口
server.port: 5601
# ip地址,0.0.0.0表示可远程访问
server.host: "0.0.0.0"
# kibana服务名
server.name: "kibana-itcast"
# elasticsearch地址
elasticsearch.hosts: ["http://192.168.66.100:9200"]
# 请求elasticsearch超时时间,默认为30000,此处可根据情况设置
elasticsearch.requestTimeout: 99999

4、启动kibana

kibana 7版本,不建议使用root用户启动,如果用root启动,需要加–allow-root参数,我们使用的是kibana6,不需要添加

# 切换到kibana的bin目录
cd /opt/kibana-7.4.0-linux-x86_64/bin
# 启动
./kibana

在这里插入图片描述

5、访问kibana

1.浏览器输入http://192.168.66.100:5601/,如下图:

在这里插入图片描述

看到这个界面,说明Kibanan已成功安装。

Discover:可视化查询分析器
Visualize:统计分析图表
Dashboard:自定义主面板(添加图表)
Timelion:Timelion是一个kibana时间序列展示组件(暂时不用)
Dev Tools:Console控制台(同CURL/POSTER,操作ES代码工具,代码提示,很方便)
Management:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。

四、安装IK分词器

1、安装IK分词器

1)上传IK分词器压缩包

cd /opt/elasticsearch-6.6.2/plugins/

# 新建目录
mkdir analysis-ik

# 进入目录
cd analysis-ik

# 上传压缩包,自行上传

由于这里是zip包不是gz包,所以我们需要使用unzip命令进行解压,如果本机环境没有安装unzip,请执行:

yum install zip 
yum install unzip

2)解压IK分词器压缩包

unzip elasticsearch-analysis-ik-6.6.2.zip

记得一定要重启Elasticsearch!!!

2、使用IK分词器

IK分词器有两种分词算法:ik_max_word和ik_smart。

1)ik_max_word

会将文本做最细粒度的拆分,比如会将“乒乓球明年总冠军”拆分为“乒乓球、乒乓、球、明年、总冠军、冠军。

#方式一 ik_max_word
GET /_analyze
{
  "analyzer": "ik_max_word",
  "text": "乒乓球明年总冠军"
}

ik_max_word分词器执行如下:

{
  "tokens" : [
    {
      "token" : "乒乓球",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "乒乓",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "球",
      "start_offset" : 2,
      "end_offset" : 3,
      "type" : "CN_CHAR",
      "position" : 2
    },
    {
      "token" : "明年",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 3
    },
    {
      "token" : "总冠军",
      "start_offset" : 5,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 4
    },
    {
      "token" : "冠军",
      "start_offset" : 6,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 5
    }
  ]
}

2)ik_smart

会做最粗粒度的拆分,比如会将“乒乓球明年总冠军”拆分为乒乓球、明年、总冠军。

#方式二ik_smart
GET /_analyze
{
  "analyzer": "ik_smart",
  "text": "乒乓球明年总冠军"
}

ik_smart分词器执行如下:

{
  "tokens" : [
    {
      "token" : "乒乓球",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "CN_WORD",
      "position" : 0
    },
    {
      "token" : "明年",
      "start_offset" : 3,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 1
    },
    {
      "token" : "总冠军",
      "start_offset" : 5,
      "end_offset" : 8,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}

由此可见 使用ik_smart可以将文本"text": "乒乓球明年总冠军"分成了【乒乓球】【明年】【总冠军】

这样看的话,这样的分词效果达到了我们的要求。

五、升级到6.8.23

1.解压压缩包

cd /opt
tar -zxvf elasticsearch-6.8.23.tar.gz 
1.1 生成证书

在es项目目录bin中,运行命令

./elasticsearch-certutil ca

在这里插入图片描述
直接enter,再输入下面的

./elasticsearch-certutil cert --ca elastic-stack-ca.p12

设置密码:123456
密码复杂度自己设定
会生成两个证书

elastic-cerificates.p12
elastic-stack-ca.p12

将两个文件移动到es中config文件夹

1.2 配置密码

编辑es配置文件elasticsearch.yml,新增以下配置

cluster.name: "elasticsearch-cluster"
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
#开启设置密码
xpack.security.enabled: true
##是否开启ssl证书秘钥
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /opt/elasticsearch-6.8.23/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /opt/elasticsearch-6.8.23/config/elastic-certificates.p12
xpack.security.transport.ssl.keystore.password: 123456
xpack.security.transport.ssl.truststore.password: 123456

在es中bin目录,运行命令

./elasticsearch-setup-passwords interactive

会让你输入多个内置账户的密码,自己记录一下。这里同时修改证书路径,1.1中生成的p12证书绝对路径;

2
将elastic-cerificates.p12文件拷贝到/opt/gtzz/config/

3.升级kibana
配置:

server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana"
#elasticsearch服务器地址端口
elasticsearch.hosts: ["http://192.168.66.100:9200"]
kibana.index: ".kibana"
#语言配置
i18n.locale: "zh-CN"
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"
elasticsearch.requestTimeout: 99999