docker-compose 搭建 Elasticsearch + kibana

📅 2022-04-19 13:36 👁️ 1596 💬 0

docker-compose 搭建 Elasticsearch + kibana

本文记录使用docker-compose 搭建Elasticsearch + kibana 的过程,记录必要步骤以及所经历的坑

1.版本介绍

  • jdk:1.8
  • elasticsearch:7.8.0
  • kibana:7.8.0
  • docker-compose:1.28.6
  • Linux: CentOS Linux release 7.9.2009

2.前提准备

  1. 调整用户的mmap计数,否则启动es时会出现内存不足的情况

    # 查看当前限制
    sysctl vm.max_map_count
    vm.max_map_count = 65530
    

    临时修改,不需要重启(重启后 失效)

    sysctl -w vm.max_map_count=262144
    

    永久修改,修改后需要重启生效

    vi /etc/sysctl.cof
    # 增加 如下内容
    vm.max_map_count = 262144
    
  2. 创建目录及对应文件夹,修改文件夹的权限

    在home文件夹下新建es文件夹 ,在es文件夹中新建 data 、logs、plugins文件夹 及 docke-compose.yml 文件

    image-20220419110240102

    修改data logs 文件夹的权限 (不添加权限,后续es启动时会报错 如:Error opening log file 'logs/gc.log': Permission denied)

    chmod 777 -R ./logs
    chmod 777 -R ./data
    
  3. 创建网络环境

    docker network create elk
    

3.docker-compose.yml

version: "3.2"
services:
  elasticsearch:
    image: elasticsearch:7.8.0
    container_name: elasticsearch
    restart: always
    volumes:
      - ./data:/usr/share/elasticsearch/data
      - ./logs:/usr/share/elasticsearch/logs
      - ./plugins:/usr/share/elasticsearch/plugins
    ports:
      - 9200:9200
    environment:
      # 开启内存锁定
      - bootstrap.memory_lock=true
      # 修改jvm内存
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
     # 指定单节点启动
      - discovery.type=single-node
    ulimits:
      # 取消内存相关限制  用于开启内存锁定
     memlock:
        soft: -1
        hard: -1

  kibana:
    image: kibana:7.8.0
    container_name: kibana
    restart: always
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_HOSTS: http://elasticsearch:9200
      I18N_LOCALE: zh-CN
  es-head:
    image: mobz/elasticsearch-head:5-alpine
    container_name: es-head
    restart: always
    ports:
      - 9100:9100
networks:
  default:
    external:
     ## 此处名称与上面创建的网络名称一致 
     name: elk  
# 以后台的方式运行容器。不会在终端上打印运行日志
docker-compoes up -d 

#停止
docke-compose down -v

4.关闭防护墙

如果Kibana出现 Unable to revive connection: https://elasticsearch:9200/这种错误,需要关闭防火墙

#查看防火墙状态
[root@centos es]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
#临时关闭防护墙
systemctl stop firewalld

#永久关闭
systemctl disable firewalld

5.测试访问

elasticsearch:localhost:9200

image-20220419112415070

Kibana:http://localhost:5601/

image-20220419112509355

6.安装ik分词器

在es/plugins文件夹下新建ik文件夹,下载,解压,重启即可

#下载es 对应版本ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip
# 解压
unzip elasticsearch-analysis-ik-7.8.0.zip

重启后查看es日志已经加载了ik分词器插件

image-20220419133442746

备注:虚拟机基于virtual box管理 还需要创建端口转发

image-20220419113012958

登录后才能查看或发表评论, 立即 登录
点击右上角即可分享
微信分享提示