Logstash-类型上的过滤器
这是我的日志存储配置文件。我有多个配置文件,解析出不同的CSV文件,我希望每个CSV进入一个单独的索引。我试图通过在输入过滤器中使用type来实现这一点,然后使用条件来查看类型是否匹配,如果匹配,则将其发送到正确的索引。唯一的问题是,我肯定错过了什么,因为它不工作Logstash-类型上的过滤器,logstash,logstash-configuration,Logstash,Logstash Configuration,这是我的日志存储配置文件。我有多个配置文件,解析出不同的CSV文件,我希望每个CSV进入一个单独的索引。我试图通过在输入过滤器中使用type来实现这一点,然后使用条件来查看类型是否匹配,如果匹配,则将其发送到正确的索引。唯一的问题是,我肯定错过了什么,因为它不工作 input { file { path => "/reports/device-availability.csv" start_position => "beginn
input {
file {
path => "/reports/device-availability.csv"
start_position => "beginning"
type => "device-availability"
}
}
filter {
if [type] == "device-availability" {
csv {
separator => ","
columns => ["Company","Date","Device","IP Address","Device Type","Availability","Uptime"]
}
date {
match => ["Date", "MMM-yy", "yy-MMM", "MM/yy", "M/yy"]
locale => "en"
}
mutate {
convert => { "Availability" => "float" }
convert => { "Uptime" => "float" }
}
}
}
output {
if [type] == "device-availability" {
elasticsearch {
action => "index"
hosts => "localhost"
index => "device-availability"
workers => 1
}
stdout {
}
file {
path => "/output/logstash/device-availability.log"
}
}
}
我看到该文件从未被重新读取,在日志中我看到logstash将最后一个位置存储在“$HOME/.sincedb”中,因此我更新了输入部分,每次运行时都重置该位置,并再次开始查看数据轮询。现在我将测试过滤器和输出函数。输入{file{path=>“/reports/device availability.csv”start\u position=>“beging”type=>“device availability”sincedb\u path=>“/dev/null”}使其正常工作!这就是问题所在,文件从未被重新读取。谢谢大家!修好这个很好。您可以在输入筛选器中指定sincedb路径,并将其推出do/dev/null以进行测试。在prod中,将其移动到一个中心位置,以便轻松访问。我看到该文件从未被重新读取,在日志中我看到logstash将最后一个位置存储在“$HOME/.sincedb”中,因此我更新了输入部分,以便在每次运行时重置该位置,并再次开始查看数据轮询。现在我将测试过滤器和输出函数。输入{file{path=>“/reports/device availability.csv”start\u position=>“beging”type=>“device availability”sincedb\u path=>“/dev/null”}使其正常工作!这就是问题所在,文件从未被重新读取。谢谢大家!修好这个很好。您可以在输入筛选器中指定sincedb路径,并将其推出do/dev/null以进行测试。在prod中时,将其移动到中心位置,以便于访问。