编写目的
最近研究es,搭建环境的时候发现网上的很多文档大部分都是用来记录自己操作的,不过中间还是出现了很多问题,单独的文档还不能解决这些问题。我决定记录下来中间发生的问题,还有解决方案。还有在windows上docker-compose搭建的,原理一样不过不好操作中间很多问题可能和环境有关系,这里就不记录了,可能以后会记录,如果你在windows的docker上搭建的话,有问题也可以问,我这边已经踩过一次了。
安装环境
centos7
docker 20.10.6
docker-compose 1.18.0
elasticsearch 8.2.0
kibana 8.2.0
步骤
在root用户的目录下创建文件夹(不挂载可不操作)
这里看个人情况,我这边把配置文件的目录挂载一下,这样可以不用进入docker容器就能修改文件
mkdir -p elasticsearch/{config,data,plugins}
# 修改权限
chmod -R 777 elastiscsearch
编写docker-compose.yml
docker-compose.yml
version: '3'
services:
elasticsearch:
image: elasticsearch:8.2.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# 如果不挂载这里可以不写volumes
#volumes:
# - /root/elasticsearch/data:/usr/share/elasticsearch/data
# - /root/elasticsearch/config/elasticsearch.yml:/config/elasticsearch.yml
# - /root/elasticsearch/plugins:/usr/share/elasticsearch/plugins
#hostname: elasticsearch
restart: always
ports:
- 9200:9200
- 9300:9300
networks:
- elasticsearch
kibana:
image: kibana:8.2.0
container_name: kibana
environment:
- elasticsearch.hosts=http://elasticsearch:9200
#hostname: kibana
depends_on:
- elasticsearch
restart: always
ports:
- "5601:5601"
networks:
- elasticsearch
networks:
elasticsearch:
external: true
配置文件
这里的配置文件都可以在容器中修改,如果挂载的话可以在外部修改 config目录下
elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true
xpack.security.http.ssl.enabled: false
xpack.license.self_generated.type: basic
kibana.yml
这里的用户名密码查看下面的用户名密码 elastic用户名密码
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
# 注意这里的用户名不能用elastic,使用之后会启动报错,看下面的错误2
elasticsearch.username: "kibana_system"
# 这里的密码是在启动时候配置的,如果忘记也没关系
elasticsearch.password: "8X1cLb+-mCx9twnqhHc9"
这里的elasticsearch.password忘记了的话,elastic重置密码
执行命令以及错误检查
执行: docker-compose up -d
等待成功后命令 docker-compose ps
到这里已经执行完成了,后面需要验证成果的时候了
登录elasticsearch
在页面打开连接 http://ip:9200
elastic用户名密码
进入docker里面的容器
docker exec -it elasticsearch bash
# 创建内置的用户 elastic, kibana等用户都会创建,按照步骤操作即可
elasticsearch-setup-passwords interactive
在页面上输入即可进入
elastic重置密码
elasticsearch容器的bin目录下执行elasticsearch-reset-password -u 需要重置密码的用户名
登录kibana
http://ip:5601
用户名用 elastic密码就是之前设置的,如果忘记了,用reset方法
打不开报错 server is not ready yet,这是因为 kibana没有启动成功,去后台查看错误日志
docker logs -f kibana
错误1 authentication credentials
[2022-07-06T10:21:59.387+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. security_exception: [security_exception] Reason: missing authentication credentials for REST request [/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip]
解决方法
修改配置文件 elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 这个需要打开
xpack.security.enabled: true
xpack.security.http.ssl.enabled: false
# basic
xpack.license.self_generated.type: basic
错误2 elasticsearch.username: elastic
[2022-07-06T10:20:32.437+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. connect ECONNREFUSED 172.25.0.2:9200
FATAL CLI ERROR YAMLException: can not read a block mapping entry; a multiline key may not be an implicit key at line 12, column 23:
elasticsearch.username: elastic
解决方法
kibana.yml中的配置文件 不能使用elastic用户连接
kibana使用
进入之后可以查询所有的数据,到这里基本完成了。
安装es插件ik分词
在elasticsearch容器中bin目录下执行
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.0/elasticsearch-analysis-ik-8.2.0.zip
用python简单验证下创建索引
from elasticsearch import Elasticsearch
es = Elasticsearch(hosts=('http://ip地址:9200'),request_timeout=1000,basic_auth=('elastic','密码'))
data = {
"name": "张三",
"age": "16",
"sex": "m",
"address": "beijing",
"create_time": "2022-7-07 10:34:47",
"modify_time": "2022-4-18 14:34:52"
}
response = es.index(index="test_index", body=data)
print(response)
执行结果文章来源:https://www.toymoban.com/news/detail-437228.html
{
"_index": "test_index",
"_id": "tcuX1oEBYruXjblhr1rE",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
在kibana查看结果
文章来源地址https://www.toymoban.com/news/detail-437228.html
到了这里,关于docker-compose 搭建 elasticsearch8.2.0 + kibana 8.2.0的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!