docker-compose 搭建 elasticsearch8.2.0 + kibana 8.2.0

编写目的

最近研究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)

执行结果

{
	"_index": "test_index",
	"_id": "tcuX1oEBYruXjblhr1rE",
	"_version": 1,
	"result": "created",
	"_shards": {
		"total": 2,
		"successful": 1,
		"failed": 0
	},
	"_seq_no": 0,
	"_primary_term": 1
}

在kibana查看结果
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是使用docker-compose部署ElasticSearchKibana 8.1.3并关闭https单节点的步骤: 1. 创建一个名为`docker-compose.yml`的文件,并将以下内容复制到文件中: ``` version: '3.7' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.1.3 container_name: elasticsearch environment: - discovery.type=single-node - node.name=elasticsearch - cluster.name=docker-cluster - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 ports: - 9200:9200 volumes: - esdata:/usr/share/elasticsearch/data networks: - elastic kibana: image: docker.elastic.co/kibana/kibana:8.1.3 container_name: kibana environment: - ELASTICSEARCH_URL=http://elasticsearch:9200 - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 ports: - 5601:5601 networks: - elastic volumes: esdata: driver: local networks: elastic: driver: bridge ``` 2. 运行以下命令启动服务: ``` docker-compose up -d ``` 3. 等待服务启动完成后,您可以通过访问`http://localhost:9200`来测试Elasticsearch是否运行正常。 4. 如果您想关闭https,则需要在Elasticsearch容器中编辑`elasticsearch.yml`文件。运行以下命令进入容器: ``` docker exec -it elasticsearch bash ``` 5. 然后,编辑`elasticsearch.yml`文件并添加以下内容: ``` xpack.security.enabled: false ``` 6. 保存更改并重新启动Elasticsearch容器: ``` exit docker restart elasticsearch ``` 7. 现在,您可以通过访问`http://localhost:5601`来测试Kibana是否运行正常。 以上是使用docker-compose部署ElasticSearchKibana 8.1.3并关闭https单节点的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值