当前位置:   article > 正文

ElasticSearch 8.15.0 与 Kibana 8.15.0 尝鲜体验

ElasticSearch 8.15.0 与 Kibana 8.15.0 尝鲜体验

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

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

image-20240821135944090

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

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

获取镜像

  第一步是拉取拉取镜像

docker pull elasticsearch:8.15.0
docker pull kibana:8.15.0
  • 1
  • 2

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

docker save -o /images/elasticsearch.tar elasticsearch:8.15.0
docker save -o /images/kibana.tar kibana:8.15.0
  • 1
  • 2

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

scp -P port /images/elasticsearch.tar username@host:/images
scp -P port /images/kibana.tar username@host:/images
  • 1
  • 2

  上述命令第一次执行可能会提醒: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
  • 1
  • 2

准备工作

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

docker network create es-net
  • 1

  创建 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
  • 1
  • 2

  赋予权限

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
  • 1
  • 2
  • 3
  • 4
  • 5

部署 ElasticSearch

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

image-20240821144233367

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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

image-20240821135213367

创建用户

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

docker exec -it es bash
  • 1

  修改 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'
  • 1
  • 2
  • 3
  • 4
  • 5

  创建超管角色(同理,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": ["*"]
    }
  ]
}
'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

  创建超管用户( 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"
}
'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

运行 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"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

  运行 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

  运行成功之后访问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 容器

docker exec -it es /bin/bash
  • 1

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

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

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

image-20240821154521593

  先写一个 GET 请求

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

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

image-20240821154846307

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

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

image-20240821155152834

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/1016089
推荐阅读
相关标签
  

闽ICP备14008679号