我的Kibana和Elasticsearch都是安装在dockers desktop的,Kibana安装时都已经完成了Elasticsearch的安装,因此只需要安装Kibana,创建一个docker-compose.xml在你的本地文件夹,文件内容如下:
XML
services:
kibana:
image: docker.elastic.co/kibana/kibana:8.17.0 # 版本必须与ES一致
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200 # 使用ES的容器名
# 如果ES开启了安全认证,还需添加,注意的是这里不能使用elastic管理员账户,需要你自己去设置,如果不想设置,在第一次登录kibana的时候会让你填写elasticsearch的enrollment token:
# - ELASTICSEARCH_USERNAME=elastic
# - ELASTICSEARCH_PASSWORD=你的密码
ports:
- "5601:5601"
networks:
- elastic-net # 使用与ES相同的网络
networks:
elastic-net:
external: true # 使用已存在的网络,而不是创建新网络
通过Windows+X的方式选择终端(管理员)后进入docker-compose.xml所在的文件夹,第一次启动时会自动拉取Kibana到dockers中,启动命令如下:
XML
docker-compose up -d
创建一个网络用于保证Kibana和Elasticseach在同一网络,我当时直接创建了,并没有验证是否需要创建这个网络,因为在同一个dockers环境下,命令如下:
XML
# 创建一个名为 elastic-net 的网络
docker network create elastic-net
成功启动Kibana后,在网页登录locahost:5601后会弹出一个需要输入elasticsearch的token的输入框,现在需要你使用以下方式获取token:
XML
# 进入 Elasticsearch 容器
docker exec -it <你的ES容器名> /bin/bash
# 在容器内执行,为 Kibana 创建一个服务令牌
/usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
执行后,会输出一个令牌,格式类似:AAEAAWVsYXN0aWMva2liYW5hL2tpYmFuYS10b2tlbjpqd1M1RnppdlJNV2ZiT05kbnNCX2Z3。请复制并保存此令牌。
如果以上方式不能登录,则换成以下方式,先把刚才创建的kibana在dockers容器删除,
XML
docker run -d --name kibana -p 5601:5601 -e ELASTICSEARCH_HOSTS="https://host.docker.internal:9200" -e ELASTICSEARCH_SERVICEACCOUNTTOKEN="你的令牌" -e ELASTICSEARCH_SSL_VERIFICATIONMODE=none docker.elastic.co/kibana/kibana:8.17.0
做完这一切后基本就可以使用了,成功登录后,我们就可以进行数据的查询了,我目前是查询知识片段的方式,日志查询也差不多,步骤如下几图:
1.选择discover

2.在discover中选择数据来源

3.配置数据来源名称和创建的索引名称

我目前的知识库片段索引是document_chunk,日志的索引通常是入库的时候设置的

4.最后出来的效果如下:
