docker-compose 部署 es 和 kibana

201 阅读1分钟

创建docker-compose.yml

创建docekr-compose.yml

services:
  es01:
    container_name: "es01"
    image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2
    environment:
      - discovery.type=single-node
      - ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
      - TZ=Asia/Shanghai
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
    ports:
      - "9200:9200"
      - "9300:9300"
    mem_limit: 1g
    cpus: "0.5"
    volumes:
      - ./es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./es/data:/usr/share/elasticsearch/data
      - ./es/plugins:/usr/share/elasticsearch/plugins
    networks:
      - elastic
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9200"]
      interval: 30s
      retries: 3
      start_period: 30s
      timeout: 10s
    ulimits:
      memlock: -1

  kib01:
    container_name: "kib01"
    image: docker.elastic.co/kibana/kibana:8.12.2
    environment:
      - ELASTICSEARCH_HOSTS=http://es01:9200
      - i18n.locale=zh-CN  # 设置 Kibana 界面语言为中文
      - ELASTICSEARCH_PASSWORD=${ELASTIC_PASSWORD}
      - TZ=Asia/Shanghai
    ports:
      - "5601:5601"
    networks:
      - elastic
    depends_on:
      - es01
    entrypoint: ["/bin/bash", "-c", "until curl -s http://es01:9200; do echo 'Waiting for Elasticsearch...'; sleep 5; done; /usr/share/kibana/bin/kibana"]
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5601"]
      interval: 30s
      retries: 3
      start_period: 30s
      timeout: 10s

networks:
  elastic:
    driver: bridge

创建数据卷目录

创建配置文件夹、数据文件夹、插件,并且给这几个文件夹授予权限,否则会启动失败

mkdir -p ./es/config
mkdir -p ./es/data
mkdir -p ./es/plugins
chmod 777 -R es/
mkdir -p ./kibana/config
mkdir -p ./kibana/data
chmod 777 -R kibana/

创建elasticsearch.yml

vim es/config/elasticsearch.yml

粘贴下面文本到elasticsearch.yml

# 配置host为0.0.0.0 允许远程访问
http.host: 0.0.0.0
# 跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
# 开启密码访问
xpack.security.enabled: true

创建kibana.yml配置文件

vim kibana/config/kibana.yml

粘贴下面文本到kibana.yml


#
# ** THIS IS AN AUTO-GENERATED FILE **
#

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

创建.env,通过环境变量设置密码

ELASTIC_PASSWORD=elastic

启动服务

在 docker-compose.yml的同级目录下执行如下命令启动服务:

docker-compose up -d 

验证服务

我们在浏览器中访问:http://192.168.59.13:9200,弹出登录弹框,输入账户和密码

账户:elastic
密码:elastic

访问 Kibana

访问 Kibana UI: 在浏览器中访问 http://ip:5601,你将能够看到 Kibana 的界面,并且可以开始使用它来可视化 Elasticsearch 中的数据。

配置ES

输入es的地址,点击检查

输入验证码

检查通过后,会需要进行验证

进入kin01实例中

docker exec -it kib01 bash

查看验证码

bin/kibana-verification-code

输入验证码即可访问 Kibana

image.png