我正在使用logstash将数据读入elasticsearch。我有一个名为VpnStatsDetail.xml的监控文件。此文件由另一个进程定期创建和删除(约1秒),并包含另一个' log'用于解析logstash。但是它只读取此文件的第一个修改,并且在此之后永远不会读取任何内容。我玩过“sincedb_path'和' start_position'但无济于事。任何建议都会很棒!
input {
file {
#path => "C:/Projects/Python Projects/SolAdmin/SolAdmin/ClientConnectionsWide_*.xml"
path => "C:/Projects/Python Projects/SolAdmin/SolAdmin/VpnStatsDetail.xml"
start_position => beginning
type = "vpn_details"
#ignore_older => 0
#sincedb_path => "NUL"
#sincedb_path => "C:/Projects/Elastic Stack/logstash-2.3.4/logstash-2.3.4/sincedb"
codec => multiline {
pattern => '<rpc-reply semp-version="soltr/7_1_1">'
negate => true
what => "previous"
}
}
}
答案 0 :(得分:0)
这种情况是你给路径作为文件名logstash检查给定文件中的新行。将您的path
更改为:
path => "C:/Projects/Python Projects/SolAdmin/SolAdmin/VpnStats*"
如果有一个文件以VpnStats开头。现在logstash将检查与模式匹配的新文件并识别相同的文件。并添加:
discover_interval => 1
所以logstash会每隔一秒检查一次新文件。