本文共 2192 字,大约阅读时间需要 7 分钟。
将 Spring boot 日志写入 ELK 有多种实现方式,这里仅提供三种方案:
Spring boot -> logback -> Tcp/IP -> logstash -> elasticsearch
这种方式实现非常方便不需要而外包或者软件Spring boot -> logback -> Redis -> logstash -> elasticsearch
利用 Redis 提供的发布订阅功能将日志投递到 elasticsearchSpring boot -> logback -> Kafka -> logstash -> elasticsearch
Kafka 方法适合大数据的情况。logstash 配置
input { tcp { host => "172.16.1.16" port => 9250 mode => "server" tags => ["tags"] codec => json_lines //可能需要更新logstash插件 }}output { stdout{codec =>rubydebug} elasticsearch { hosts => ["localhost:9200"] //这块配置需要带端口号 flush_size => 1000 }}
Spring boot logback.xml 配置
%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 172.16.1.16:9250
https://github.com/kmtong/logback-redis-appender
Maven pom.xml 增加 Logback Redis 依赖
com.cwbase logback-redis-appender 1.1.5
Spring boot logback.xml 配置
logstash 配置
input { redis { host => 'localhost' data_type => 'list' port => "6379" key => 'logstash:redis' #自定义 type => 'redis-input' #自定义 }}output { elasticsearch { host => "localhost" codec => "json" protocol => "http" }}