我目前正在开发中并使用以下配置作为logstash代理:
input {
file {
type => "access_log"
# Wildcards work, here :)
path => [ "/root/isaac/vuforia_logs/access_logs/gw_access_log.2014-02-19.00.log"]
start_position => "beginning"
}
}
filter {
if [type] == "access_log" {
grok {
pattern => "\[%{DATA:my_timestamp}\] %{IP:client} %{WORD:method} %{URIPATHPARAM:request} \[%{DATA:auth_data}\] \[%{DATA:another_timstamp}\] %{NUMBER:result_code} %{NUMBER:duration} %{NUMBER:bytes}"
}
}
}
output {
stdout { debug => true }
elasticsearch_http {
host => "192.168.79.128"
}
第一次读取文件时,它会处理它并登录到stdout和elasticsearch。问题是,当我重新启动logstash时,它没有做任何我认为是因为它保持上次停止logstash的最后位置。我很有兴趣重置logstash,以便从头开始重新处理文件。这是出于开发和测试的目的,有没有办法重置/清理logstash状态?
THX
答案 0 :(得分:8)
Logstash将为输入文件录制一个sincedb。默认路径是$ HOME目录。您可以访问here了解详情。
如果要重置/清除它,可以删除$ HOME中的所有.sincedb_ *。然后当您重新启动logstash时,它将从头开始读取。
答案 1 :(得分:0)
对于那些使用jdbc
来到这里的人,您需要last_run_metadata_path
。