版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/yy756127197/article/details/78924975
一. 简介
在上一篇博客改造
地址: Springboot+logback集成ELK处理日志实例
架构图:
改变:在上一个架构中多加了层logstash和redis作为缓冲区,缓解日志很多时给业务带来的影响。
二. 配置
- 修改原来的logstash的配置文件
std_std_es.conf
input {
tcp {
##host:port就是上面appender中的 destination,这里其实把logstash作为服务,开启9250端口接收logback发出的消息
host => "localhost"
port => 9601
#模式选择为server
mode => "server"
tags => ["tags"]
##格式json
codec => json_lines
}
}
output {
stdout { codec => rubydebug}
redis {
data_type => "list"
key => "logstash-test-list"
host => "127.0.0.1"
port => 6379
}
}
把输出地由es变成redis
关于参数请参考https://www.cnblogs.com/xing901022/p/4864690.html 和https://www.cnblogs.com/java-zhao/p/5886481.html
- 在另一个logstash中新建个配置文件
redis_es.conf
input {
redis {
data_type => "list" #类型
key => "logstash-test-list" #队列名
host => "127.0.0.1" #redis地址
port => 6379 #redis端口
}
}
output {
elasticsearch {
hosts => "localhost:9200" #es地址
index => "%{[appname]}-%{+YYYY.MM.dd}" #索引名
}
stdout { codec => rubydebug} #同时输出到控制台
}
- 同时启动两个logstash,运行上一篇的测试程序。verygood~~