ElasticSearch 8.15.0 与 Kibana 8.15.0 尝鲜体验

还不算晚,虽然已经距离发布过去了快半个月~

跟着下面的步骤进行一步一步操作(CV),只需要改动一下用户名、密码这些数据即可从零开始用 Docker安装 ES 与 Kibana 最新版,据说 Kibana 还有 AI 助手嘞(虽然是 8.12 推出的)~

最后强调一点,安装部署 ES 与 Kibana 的机器最低配置是2核4G,低于这个配置的可能会导致部署失败。如果只是部署 ES,那2核2G勉强能用(不建议)。

关于最新版(或者8.x)具体有哪些新功能和特性,建议可以去网上找找资料,或者是查询官方文档

获取镜像

第一步是拉取拉取镜像

bash 复制代码
docker pull elasticsearch:8.15.0
docker pull kibana:8.15.0

如果服务器拉取不到镜像,可以先在本地制作好镜像(需要科学上网),能正常拉取的请忽视这一步,直接进行下一步。

bash 复制代码
docker save -o /images/elasticsearch.tar elasticsearch:8.15.0
docker save -o /images/kibana.tar kibana:8.15.0

通过 scp 的方式传输到服务器文件目录中(注意将port、username与host替换成对应的端口号、用户名和主机号),或者直接通过本地文件传输的方式(更加保险),不过这里我采用 scp 方便一点(确保服务器有这个目标文件夹)

bash 复制代码
scp -P port /images/elasticsearch.tar username@host:/images
scp -P port /images/kibana.tar username@host:/images

上述命令第一次执行可能会提醒:The authenticity of host '[xx.xx.xx.xxx]:xxxx ([xx.xx.xx.xxx]:xxxx)' can't be established.。意思是不确定这个主机是否存在,直接输入 yes 回车继续连接即可。然后就会让输入密码,密码输入之后就会开始传输,静静等待完成即可。

传输完成之后,输入下面的命令加载进行

bash 复制代码
docker load -i /images/elasticsearch.tar
docker load -i /images/kibana.tar

准备工作

镜像准备好之后,先创建网络

bash 复制代码
docker network create es-net

创建 ES 与 Kibana 的挂载文件夹

bash 复制代码
mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins
mkdir -p /usr/local/kibana/data /usr/local/kibana/config

赋予权限

bash 复制代码
chmod 777  /usr/local/es/data
chmod 777  /usr/local/es/config
chmod 777  /usr/local/es/plugins
chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config

部署 ElasticSearch

单机部署,运行 ES(如果不想开启权限认证,可以在下面的第八行指令中插入一行-e "xpack.security.enabled=false" \关闭认证,但是与之对应,会失去这部分的功能,生产环境下不建议关闭)

bash 复制代码
docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
-e ELASTIC_PASSWORD=123456 \
-e "xpack.security.http.ssl.enabled=false" \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.15.0

访问 http://host:9200,第一次访问会要求输入密码,用户名默认为elastic,密码是设置的ELASTIC_PASSWORD,这里是123456,运行成功则能看到下面的页面

创建用户

接着进入 es 容器,配置 Kibana 权限用户

bash 复制代码
docker exec -it es bash

修改 Kibana 用户密码(如果用户名不想用kibana,可以换成别的,但是下面运行 Kibana 的环境变量ELASTICSEARCH_USERNAME要与之对应,否则 Kibana 无法正常启动)

bash 复制代码
curl -u elastic:123456 \
  -X POST \
  http://localhost:9200/_security/user/kibana/_password \
  -d '{"password":"'"123456"'"}' \
  -H 'Content-Type: application/json'

创建超管角色(同理,admin_role 也可以换成别的,但下面创建用户时的 roles 要与之对应 ),如果想要创建其他权限的角色可以自行创建

bash 复制代码
curl -X PUT "http://localhost:9200/_security/role/admin_role" -H "Content-Type: application/json" -u elastic:123456 -d'
{
  "cluster": ["all"],
  "index": [
    {
      "names": ["*"],
      "privileges": ["all"]
    }
  ],
  "applications": [
    {
      "application": "*",
      "privileges": ["*"],
      "resources": ["*"]
    }
  ]
}
'

创建超管用户( full_name与 email 可以不用设置,删掉就好,后续启动 Kibana 后可以再设置)

bash 复制代码
curl -X POST "http://localhost:9200/_security/user/admin" -H "Content-Type: application/json" -u elastic:123456 -d'
{
  "password" : "123456",
  "roles" : [ "admin_role" ],
  "full_name" : "Admin User",
  "email" : "admin@example.com"
}
'

运行 Kibana

/usr/local/kibana/config目录下创建一个 kibana.yml 文件,其中写上以下配置

yml 复制代码
# Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true

# 汉化(有些部分还未来得及汉化)
i18n.locale: "zh-CN"

运行 Kibana(注意,本人已经试验过了,内存为512M时启动会导致 OOM,所以这里至少给了1g)

bash 复制代码
docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_URL=http://es:9200 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
-e ELASTICSEARCH_USERNAME=kibana \
-e ELASTICSEARCH_PASSWORD=123456 \
-v /usr/local/kibana/data:/usr/share/kibana/data \
-v /usr/local/kibana/config:/usr/share/kibana/config \
--memory=1g \
--memory-reservation=1g \
kibana:8.15.0

运行成功之后访问http://host:5601,会要求输入账号密码,输入创建好的超管账密登录即可 (使用创建的其他角色时权限要给够,否则会出现You do not have permission to access the requested page报错,无法正常进入 )

看到这个画面时,就证明 Kibana 与 ES 已经部署成功。至于 AI Assistant ,点击 Security 进入后就可以在右上角看到。该功能是收费的,但是可以免费试用 30天。

点击 Manage license 就可以看到

安装 IK 分词器

进入 ES 容器

bash 复制代码
docker exec -it es /bin/bash

执行下面的命令,输入 y 回车即可安装分词器

bash 复制代码
./bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.15.0

安装之后,在 Kibana 的 Management 中有一个开发工具可以进行分词测试

先写一个 GET 请求

bash 复制代码
GET /_analyze
{
  "analyzer": "ik_smart",
  "text": "一个人要想使自己的人生有所造就,就必须懂得在关键时刻把自己带到人生的悬崖,给自己一片悬崖其实就是给自己一片蔚蓝的天空啊。------王新文《知音》"
}

然后点击执行,就可以看到右边出现的分词结果

上面使用的是ik_smart(最少切分)模式,还有一种ik_max_word(最细切分)模式

bash 复制代码
GET /_analyze
{
  "analyzer": "ik_max_word",
  "text": "一个人要想使自己的人生有所造就,就必须懂得在关键时刻把自己带到人生的悬崖,给自己一片悬崖其实就是给自己一片蔚蓝的天空啊。------王新文《知音》"
}

到此,ES 与 Kibana 安装结束,其他的功能请自行探索吧~

相关推荐
java1234_小锋6 小时前
Elasticsearch是如何实现Master选举的?
大数据·elasticsearch·搜索引擎
AiFlutter8 小时前
Java实现简单的搜索引擎
java·搜索引擎·mybatis
梦幻通灵12 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客12 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
infiniteWei15 小时前
【Lucene】搜索引擎和文档相关性评分 BM25 算法的工作原理
算法·搜索引擎·lucene
小黑屋说YYDS18 小时前
ElasticSearch7.x入门教程之索引概念和基础操作(三)
elasticsearch
Java 第一深情20 小时前
Linux上安装单机版ElasticSearch6.8.1
linux·elasticsearch·全文检索
KevinAha1 天前
Elasticsearch 6.8 分析器
elasticsearch
wuxingge2 天前
elasticsearch7.10.2集群部署带认证
运维·elasticsearch
Elastic 中国社区官方博客2 天前
Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索