我在logstash中使用dns过滤器来获取csv文件。在我的csv文件中,我有两个字段。他们是网站和计数。
这是我的csv文件的示例内容:
|website|n| |www.google.com|n1| |www.yahoo.com|n2| |www.bing.com|n3| |www.stackoverflow.com|n4| |www.smackcoders.com|n5| |www.zoho.com|n6| |www.quora.com|n7| |www.elastic.co|n8|
这是我的logstash配置文件:
input {
file {
path => "/home/paulsteven/log_cars/cars_dns.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
columns => ["website","n"]
}
dns {
resolve => [ "website" ]
action => "replace"
hit_cache_size => 8000
hit_cache_ttl => 300
failed_cache_size => 1000
failed_cache_ttl => 10
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "dnsfilter03"
document_type => "details"
}
stdout{}
}
以下是通过logstash传递的示例数据:
{
"@version" => "1",
"path" => "/home/paulsteven/log_cars/cars_dns.csv",
"website" => "104.28.5.86",
"n" => "n21",
"host" => "smackcoders",
"message" => "www.smackcoders.com,n21",
"@timestamp" => 2019-04-23T10:41:15.680Z
}
在logstash配置文件中,我想了解hit_cache_size
。有什么用。我在弹性网站上阅读了dns过滤器的指南,但无法弄清楚。我在我的logstash配置中添加了该字段,但没有任何反应。我能得到任何例子吗?我想知道hit_cache_size
的用法。这是什么工作,它正在dns过滤器中完成
答案 0 :(得分:2)
hit_cache_size
允许您存储成功请求的结果,因此,如果您需要在同一主机上运行dns请求,则将查找高速缓存,并且仅在主机位于以下位置时才进行dns查找没有缓存。
如果您的数据具有唯一的主机,则没有理由使用hit_cache_size
,因为主机仅出现一次。
hit_cache_ttl
与hit_cache_size
一起使用,并说明请求将在缓存中存储多少秒。