1 拉取镜像
docker pull logstash:7.8.0
2 启动临时镜像用于复制基础配置文件
docker run -it -p 5044:5044 -p 9600:9600 --name tempLogStash-7.8.0 logstash:7.8.0
3 复制基础配置文件
docker cp 3ec:usr/share/logstash/config /usr/local/logstash/
docker cp 3ec:/usr/share/logstash/pipeline /usr/local/logstash/
注: /usr/local/logstash/ 文件夹路径自定义,确保具有读写即可,
若没有可使用 chmod 777 /usr/local/logstash/
3ec 为容器id,根据自己实际容器自定义
4 修改logstash.yml配置文件
logstash.yml 为/usr/local/logstash/config 路径下的配置文件
修改后完整内容如下:
http.host: "0.0.0.0" xpack.monitoring.elasticsearch.hosts: [ "http://192.168.1.119:9200" ] path.config: /usr/share/logstash/config/conf.d/*.conf path.logs: /usr/share/logstash/logs
5 增加 /usr/local/logstash/config/conf.d/logstash-es.conf
input { stdin{} #为logstash增加tcp输入口,方便springboot接入 #此处开放4560端口,程序直接输入logstash tcp { mode => "server" host => "0.0.0.0" #从4560端口取日志 port => 4560 #需要安装logstash-codec-json_lines插件 codec => json } } output { stdout{ codec=>rubydebug } elasticsearch { #hosts中的地址应该写同一network下的容器名称 hosts => ["http://192.168.1.119:9200"] # 输出至elasticsearch中的自定义index名称 index => "itlt-log-%{+YYYY.MM.dd}" } }
5 启动logstash
docker run -it -p 4560:4560 -p 9600:9600 --name logstash-7.8.0 -v /usr/local/logstash/config:/usr/share/logstash/config -v /usr/local/logstash/pipeline:/usr/share/logstash/pipeline -v /usr/local/logstash/logs:/usr/share/logstash/logs logstash:7.8.0
注:仅作为安装记录,欢迎指正,共同进步