ElasticSearch 8.15.0 与 Kibana 8.15.0 尝鲜体验

Onism_DreamBoat 2024-09-14 12:37:01 阅读 93

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

image-20240821135750262

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

image-20240821135944090

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

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

获取镜像

第一步是拉取拉取镜像

<code>docker pull elasticsearch:8.15.0

docker pull kibana:8.15.0

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

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 方便一点(确保服务器有这个目标文件夹)

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 回车继续连接即可。然后就会让输入密码,密码输入之后就会开始传输,静静等待完成即可。

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

docker load -i /images/elasticsearch.tar

docker load -i /images/kibana.tar

准备工作

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

docker network create es-net

创建 ES 与 Kibana 的挂载文件夹

mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins

mkdir -p /usr/local/kibana/data /usr/local/kibana/config

赋予权限

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" \关闭认证,但是与之对应,会失去这部分的功能,生产环境下不建议关闭)

image-20240821144233367

<code>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,运行成功则能看到下面的页面

image-20240821135213367

创建用户

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

<code>docker exec -it es bash

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

curl -u elastic:123456 \

-X POST \

http://localhost:9200/_security/user/kibana/_password \

-d '{"password":"'"123456"'"}' \

-H 'Content-Type: application/json'

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

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 后可以再设置)

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 文件,其中写上以下配置

# 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)

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报错,无法正常进入 )

image-20240821142007449

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

image-20240821143838281

点击 Manage license 就可以看到

image-20240821143909148

安装 IK 分词器

进入 ES 容器

<code>docker exec -it es /bin/bash

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

./bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.15.0

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

image-20240821154521593

先写一个 GET 请求

<code>GET /_analyze

{

"analyzer": "ik_smart",

"text": "一个人要想使自己的人生有所造就,就必须懂得在关键时刻把自己带到人生的悬崖,给自己一片悬崖其实就是给自己一片蔚蓝的天空啊。——王新文《知音》"

}

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

image-20240821154846307

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

GET /_analyze

{

"analyzer": "ik_max_word",

"text": "一个人要想使自己的人生有所造就,就必须懂得在关键时刻把自己带到人生的悬崖,给自己一片悬崖其实就是给自己一片蔚蓝的天空啊。——王新文《知音》"

}

image-20240821155152834

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。