docker-compose 快速部署 ELK 及配置ik分词器

docker-compose的ELK环境搭建

docker 和 docker-compose 安装教程:https://blog.csdn.net/m0_46210779/article/details/115035841?spm=1001.2014.3001.5502

环境搭配

切换到/usr/local目录下

#创建docker目录
mkdir docker

进入到docker目录进行以下操作:

创建Elasticsearch数据挂载路径:

mkdir -p ./elasticsearch/data

对该路径授予777权限:

解决启动elasticsearch容器出现root权限问题

chmod 777 ./elasticsearch/data

创建Elasticsearch插件挂载路径:

mkdir -p ./elasticsearch/plugins

创建Logstash配置文件存储路径:

mkdir -p ./logstash

在该路径下创建logstash-febs.conf配置文件:

避免直接运行logstash出现异常

vi ./logstash/logstash.conf

内容如下所示:

input {
    
    
  tcp {
    
    
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines
  }
}
output {
    
    
  elasticsearch {
    
    
    hosts => "[服务器|虚理机端口号]:9200"
    index => "logstash-%{+YYYY.MM.dd}"
  }
}

docker-compose 部署 ELK

version: '3'
services:
  elasticsearch:
    image: elasticsearch:7.6.2
    container_name: elasticsearch
    environment:
      - "cluster.name=elasticsearch" #集群名称为elasticsearch
      - "discovery.type=single-node" #单节点启动
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m" #jvm内存分配为512MB
    volumes:
      - ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
      - ./elasticsearch/data:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
  kibana:
    image: kibana:7.6.2
    container_name: kibana
    links:
      - elasticsearch:es #配置elasticsearch域名为es
    depends_on:
      - elasticsearch
    environment:
      - "elasticsearch.hosts=http://es:9200" #因为上面配置了域名,所以这里可以简写为http://es:9200
    ports:
      - 5601:5601
  logstash:
    image: logstash:7.6.2
    container_name: logstash
    volumes:
      - ./logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
    depends_on:
      - elasticsearch
    links:
      - elasticsearch:es
    ports:
      - 4560:4560

在/usr/local/docker目录下,运行启动命令

#后台运行,需要查看日志的话取消-d 但是Ctrl+C后容器会停止运行
docker-compose up -d

解决elasticsearch跨域问题

进入elasticsearch容器中

#进入容器
docker exec -it [容器编号|容器名称] bash
#查看当前拥有的目录
ls

修改config目录下的elasticsearch.yml文件

#进入config目录
cd config
#查看所有文件
ls
#编辑elasticsearch.yml文件
vi elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"

刷新容器

#退出容器
exit

#关闭容器
docker stop [容器id/容器名称]

#启动容器
docker start [容器id/容器名称]

添加ik分词器

分词器下载:ik 分词器

安装zip命令

yum install -y zip

安装unzip命令

yum install -y unzip

创建一个ik目录,因为解压后将出现很多零散文件

#创建ik目录
mkdir ik
#将elasticsearch-analysis-ik-7.6.2.zip 剪切到ik目录下
mv elasticsearch-analysis-ik-7.6.2.zip ./ik

解压elasticsearch-analysis-ik-7.6.2.zip到ik目录下

unzip elasticsearch-analysis-ik-7.6.2.zip

回到/home目录下

将文件复制到docker容器中

docker cp ik [容器编号]:/usr/share/elasticsearch/plugins

刷新容器

#退出容器
exit

#关闭容器
docker stop [容器id/容器名称]

#启动容器
docker start [容器id/容器名称]

kibana 中文显示

进入容器

#进入容器
docker exec -it [容器编号|容器名称] bash

修改config目录下的

#进入config目录
cd config
#查看所有文件
ls

vi kibana.yml

il8n.locale: "zh-CN"

刷新容器

#退出容器
exit

#关闭容器
docker stop [容器id/容器名称]

#启动容器
docker start [容器id/容器名称]

猜你喜欢

转载自blog.csdn.net/m0_46210779/article/details/115087997