- 下载需要的镜像文件
docker pull elasticsearchdocker pull logstashdocker pull kibana
- 运行 elasticsearch
# 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))docker network create somenetwork# 创建data文件夹并授权cd /usr/localmkdir elasticsearchcd elasticsearchmkdir datachmod 777 data/--net somenetwork \# 运行 elasticsearchdocker run -d \--name elasticsearch \--restart=always \-p 9200:9200 \-p 9300:9300 \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \elasticsearch:7.7.0docker run -d -p 9100:9100 --restart=always --name elasticsearch-head mobz/elasticsearch-head:5# 检测 elasticsearch 是否启动成功curl 127.0.0.1:9200
- 运行 Kibana
docker run -d --restart=always --name kibana --net somenetwork -p 5601:5601 -e "I18N_LOCALE=zh-CN" kibana:7.1.1
- 安装 Logstash
- 创建配置文件的映射文件
cd /usr/local# 创建文件夹mkdir logstash# 创建配置文件的文件夹和日志文件夹cd /usr/local/logstashmkdir conf.dmkdir logs# 编写logstash.ymlvim logstash.ymlpath.config: /usr/local/logstash/conf.d/*.confpath.logs: /usr/local/logstash/logs# 编写日志配置文件cd conf.dvim springboot-logstashinput {tcp {mode => "server"port => 5044codec => json_lines}}output {elasticsearch {hosts => "localhost:9200"index => "springboot-logstash-%{+YYYY.MM.dd}"}}
2. 运行
docker run -d \--restart=always -p 5044:5044 -p 9600:9600 --name logstash --net somenetwork \-v /usr/local/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \-v /usr/local/logstash/conf.d/:/usr/share/logstash/conf.d/ \logstash:7.1.1
3. 修改插件源, 防止插件下载过慢
# 进入logstash容器docker exec -it logstash /bin/bash# 查看logstash 的Gemfilehead /usr/share/logstash/Gemfile## 修改镜像地址vi /usr/share/logstash/Gemfile
更改默认的 https://rubygems.org 为https://mirrors.tuna.tsinghua.edu.cn/rubygems
4. 安装插件
# 进入logstash容器docker exec -it logstash /bin/bash# 进入bin目录cd /bin/# 安装插件./logstash-plugin install logstash-codec-json_lines# 退出容器exit# 重启logstash服务docker restart logstash
