- 下载需要的镜像文件
docker pull elasticsearch
docker pull logstash
docker pull kibana
- 运行 elasticsearch
# 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如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
docker 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/logstash
mkdir conf.d
mkdir logs
# 编写logstash.yml
vim logstash.yml
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. 运行
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 的Gemfile
head /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
下一篇:安装和卸载docker