一:Elasticsearch安装
1.1 基础安装
下载地址:elasticsearch下载
1. 报错修复
received plaintext http traffic on an https channel, closing connection
找到config/目录下面的elasticsearch.yml配置文件,把安全认证开关从原先的true都改成false,实现免密登录访问即可,修改这两处都为false后:
xpack.security.enabled: true ->false
xpack.security.http.ssl:
enabled: true->false
2. 重新启动
报错
failed to load plugin class [org.elasticsearch.xpack.security.Security
flase 拼写错误,应该是false
1.2 密码设置
执行 ./elasticsearch-setup-passwords interactive
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
二:kibana下载安装
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索 引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理 解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查 询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动 Elasticsearch索引监测。
解压,进入config文件夹,修改配置文件kibana.yml
将es的地址,改为自己本机IP地址就ok,如果是服务器的话,改为服务器地址就好了。
设置密码:
elasticsearch.username: "kibana_system"
elasticsearch.password: "123456"
汉化需要修改如下:
进入bin目录,启动kibana(用户名: elastic 密码: 123456):
三:Elasticsearch基础操作
3.1 中文分词包IK
1. 下载ik分词器的包 下载
2. 下载后解压,并将目录拷贝到ElasticSearch根目录下的 plugins 目录中。
plugins目录下新建ik文件夹,将zip解压到ik文件夹下
3. 重新启动 ElasticSearch 服务,在启动过程中,你可以看到正在加载"analysis-ik"插件的提示信息。
Plugin [analysis-ik] was built for Elasticsearch version 8.12.0 but version 8.12.1 is running
测试IK 分词器 (ik_smart)
测试IK 分词器(ik_max_word)
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;
ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。
默认分词器:
GET _analyze
{
"text": "三生三世十里桃花"
}
3.2 监控模块
注意:配置用户名和密码
监控中可以看出状态处于 Yellow状态
3.3 索引操作
3.3.1 创建索引
Elasticsearch支持以下字段类型:
- text:文本字段
- keyword:关键词字段
- date:日期字段
- long、integer、short、byte、double、float、half_float、scaled_float:数字类型字段
- boolean:布尔类型字段
- binary:二进制类型字段
- range:范围类型字段
- object:嵌套类型字段
- nested:嵌套类型字段(如数组)
下面是一个索引映射的示例:
{
"mappings": {
"properties": {
"title": {
"type": "text"
},
"author": {
"type": "text"
},
"year": {
"type": "date"
},
"price": {
"type": "float"
},
"publisher": {
"type": "object",
"properties": {
"name": { "type": "text" },
"address": { "type": "text" }
}
}
}
}
}
3.3.2 查看索引
GET /_cat/indices?v
返回结果:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size dataset.size
yellow open .ds-heartbeat-8.5.0-2024.02.09-000001 iOKQHVaZRimWPH2YISFeuw 1 1 0 0 249b 249b 249b
green open metrics-endpoint.metadata_current_default u3wBMzQaSausVn17p7ocIw 1 0 0 0 249b 249b 249b
yellow open .lists-default-000001 fCRXWSTaR0iX11XQgNEVuA 1 1 0 0 249b 249b 249b
green open .ds-.monitoring-es-8-mb-2024.02.09-000001 9iKkO75LQiGy-vezu7jJhA 1 0 155 0 348.7kb 348.7kb 348.7kb
yellow open .items-default-000001 MXXJ1C_bTQGYPvfl4XyoXg 1 1 0 0 249b 249b 249b
yellow open .ds-metricbeat-8.5.3-2024.02.09-000001 QGG2IOGCTdKfk30RBUXHaA 1 1 135 0 194.9kb 194.9kb 194.9kb
含义:
表头 含义
health 当前服务器健康状态: green(集群完整) yellow(单点正常、集群不完整) red(单点不正常)
status 索引打开、关闭状态
index 索引名
uuid 索引统一编号
pri 主分片数量
rep 副本数量
docs.count 可用文档数量
docs.deleted 文档删除状态(逻辑删除)
store.size 主分片和副分片整体占空间大小
pri.store.size 主分片占空间大小
查看单个索引:
GET /shopping
四. Elasticsearch 基础
4.1 集群Cluster
ElasticSearch 是一个分布式的搜索引擎,所以一般由多台物理机组成。而在这些机器上通过配置一个相同的cluster name,让其互相发现从而把自己组织成一个集群。
集群的健康状态,ES集群存在三种健康状态,单节点ES也可以算是一个集群。
- green(绿色):代表所有索引的主分片和副本均已分配且可用,集群是100%可用。
- yellow(黄色):主分片已分配且全部主分片可用,但所有的副本不全部可用,可能是缺失,也有可能是某个索引的副本未被分配,可以通过move cancel allocate 命令所属的API进行分配或移动分片到指定节点,使用这里要注意主分片和其副本绝不能在同一节点。此时系统容错性和集群高可用被弱化。
- red(红色):所有的主分片不全部可用,这代表很有可能存在丢失数据的风险。如果只有一个单节点Elasticsearch那么属于一种yellow状态,因为没有副本。