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/容器名称]