Powolny filtr DNS w logstashu

Opis problemu

Uruchomiłem filtr DNS na logstashu, ale wyraźnie widać, że prędkość indeksowania zmalała przez dodanie resolve.
Czy musi tak być?

Mój konfig jak w dokumentacji :

filter {
&nbsp&nbspdns {
&nbsp&nbsp&nbsp&nbspreverse => [ "source_host", "field_with_address" ]
&nbsp&nbsp&nbsp&nbspresolve => [ "field_with_fqdn" ]
&nbsp&nbsp&nbsp&nbspaction => "replace"
&nbsp&nbsp}
}

Rozwiązanie problemu

 

W starszych wersjach logstasha (2018*) po użyciu dyrektywy cache_size/failed_cache_size był błąd uniemożliwiający równoległe odpytywanie cache-a.

Bardzo fajną analizę wraz z wykresami wydajności przeprowadził zgłaszający:
https://github.com/logstash-plugins/logs...ns/pull/42

Gotowy config do użycia poniżej - proszę pamiętać, że pełną wydajność uzyskuje się po zapełnieniu cache-u danymi.
Warto także używać szybkich dnsów np 1.1.1.1/1.0.0.1


filter{
&nbsp&nbsp# dns resolve
&nbsp&nbspdns {
&nbsp&nbsp&nbsp&nbspreverse => [ "hostname" ]
&nbsp&nbsp&nbsp&nbspaction => "replace"
&nbsp&nbsp&nbsp&nbspnameserver => ["1.1.1.1", "1.0.0.1"]
&nbsp&nbsp&nbsp&nbsphit_cache_size => 131072
&nbsp&nbsp&nbsp&nbsphit_cache_ttl => 900
&nbsp&nbsp&nbsp&nbspfailed_cache_size => 131072
&nbsp&nbsp&nbsp&nbspfailed_cache_ttl => 900
&nbsp&nbsp}

&nbsp&nbsp# filter performance
&nbsp&nbspmetrics {
&nbsp&nbsp&nbsp&nbspmeter => "events"
&nbsp&nbsp&nbsp&nbspadd_tag => "metric"
&nbsp&nbsp}
}

output {
&nbsp&nbspif "metric" in [tags] {
&nbsp&nbsp&nbsp&nbspstdout {
&nbsp&nbsp&nbsp&nbsp&nbsp&nbspcodec => line {
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspformat => "DNS filter rate: %{[events][rate_1m]}"
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp}
&nbsp&nbsp&nbsp&nbsp}
&nbsp&nbsp}
}