ElasticSearch 6.6.2安装和升级
本文主要讲述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_171PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPATH
3、使得环境变量生效
source /etc/profile
4、验证
java -version
二、Elasticsearch安装
1、上传资料/安装包的elasticsearch-6.6.2.tar.gz
2、解压
cd /opttar -zxvf elasticsearch-6.6.2.tar.gz
3、修改config/elasticsearch.yml文件
# 进入cd configvi 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.2bin/elasticsearch
解决方案:
这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 建议创建一个单独的用户用来运行ElasticSearch。及elsearch用户
#创建elsearch用户组groupadd elsearch#创建elsearch用户,并-g分配一个用户组,-p指定密码useradd elsearch -g elsearch -p elasticsearch
更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
cd /optchown -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/
如果访问失败请记得关闭防火墙
# 停止firewallsystemctl 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.confvm.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/configvi 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_wordGET /_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_smartGET /_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 /opttar -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.p12elastic-stack-ca.p12
将两个文件移动到es中config文件夹
1.2 配置密码
编辑es配置文件elasticsearch.yml,新增以下配置
cluster.name: \"elasticsearch-cluster\"network.host: 0.0.0.0http.port: 9200http.cors.enabled: truehttp.cors.allow-origin: \"*\"http.cors.allow-headers: Authorization#开启设置密码xpack.security.enabled: true##是否开启ssl证书秘钥xpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.keystore.path: /opt/elasticsearch-6.8.23/config/elastic-certificates.p12xpack.security.transport.ssl.truststore.path: /opt/elasticsearch-6.8.23/config/elastic-certificates.p12xpack.security.transport.ssl.keystore.password: 123456xpack.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: 5601server.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