在部署多实例时,原有的Rolling File策略需要通过多台host来查看,所以需要将日志进行统一管理,实现采用Logstash进行日志收集。
0. 安装Logstash(Docker)
$ docker pull logstash
1. 创建Logstash配置文件logstash.conf
input {
tcp {
port => 5000
codec => json
}
}
output {
file {
message_format => "%{[@timestamp]} %{[level]} %{[logger_name]} %{[message]}"
flush_interval => 0
path => "/path/log/%{+YYYY-MM-dd}.log"
}
}
2. 启动Logstash
$ docker run -d --restart=always --name=logstash -p 5000:5000 -v "$PWD"/config-dir:/config-dir -v /path/log:/path/log logstash:1.5.6-alpine -f /config-dir/logstash.conf
3. 配置Logback将日志输出到Logstash
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="LogStash"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>{ip}:{port}</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="INFO">
<appender-ref ref="LogStash" />
</root>
</configuration>
PS:docker-logstash,logstash-plugins-inputs,logstash-plugins-outputs,logstash-logback-encoder