下载需要的镜像文件
docker pull elasticsearchdocker pull logstashdocker pull kibana
运行 elasticsearch ```shell
创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))
docker network create somenetwork
创建data文件夹并授权
cd /usr/local mkdir elasticsearch cd elasticsearch mkdir data chmod 777 data/
—net somenetwork \
运行 elasticsearch
docker 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.0
检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200
3. 运行 Kibana```shelldocker run -d --restart=always --name kibana --net somenetwork -p 5601:5601 -e "I18N_LOCALE=zh-CN" kibana:7.1.1
- 安装 Logstash
path.config: /usr/local/logstash/conf.d/*.conf path.logs: /usr/local/logstash/logs
编写日志配置文件
cd conf.d vim springboot-logstash
input {
tcp {
mode => “server”
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => “localhost:9200”
index => “springboot-logstash-%{+YYYY.MM.dd}”
}
}
2. 运行```shelldocker 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
修改插件源, 防止插件下载过慢
# 进入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
安装插件 ```shell
进入logstash容器
docker exec -it logstash /bin/bash
进入bin目录
cd /bin/
安装插件
./logstash-plugin install logstash-codec-json_lines
退出容器
exit
重启logstash服务
docker restart logstash
curl -H “Content-Type: application/json” -XPOST ‘http://localhost:9200/springboot-logstash-2021-09-07/test-log‘ -d ‘{“code”:200,”message”:”测试”}’ ```
