У меня есть logback
config
<appender name="STASH" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>my.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/my-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>7</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
И у меня есть logstash
служба, которая читает этот файл и отправляет elasticsearch
.
Все работает нормально.logstash
разобрать мои журналы и отправить на elasticsearch
, и я могу прочитать его в kibana
.Но когда я прихожу на работу на следующий день - я вижу, что нет бревен.В файле у меня есть логи, но в elasticsearch
- нет.Я перезагружаю logstash
и появляются логи.Возможно, в конце дня файл перемещается в архив (SizeAndTimeBasedRollingPolicy
), а логи записываются в новый файл - logstash
не понимает этого?как это решить?
РЕДАКТИРОВАТЬ
input {
file {
path => "C:/MyServer/my.log"
codec => "json"
type => "my"
}
}
output {
if [type]=="my" {
elasticsearch {
hosts => [ "localhost:9200" ]
index => "my-%{+YYYY.MM.dd}"
}
}
}