Показатели таймера Logstash не работают

Я использую logstash 2.3.4

Я получаю строки, которые в основном представляют собой журналы Apache с небольшой оценкой в ​​​​конце (рассчитывается с помощью машинного обучения, благодаря Spark). Вот как выглядит строка:

hackazon.lc:80 192.168.100.133 - - [28/Jul/2016:11:07:46 +0200] "GET / HTTP/1.1" 200 10442 "http://192.168.100.123/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36" pred:0.0859964494393

Как видите, первая часть — это стандартный журнал Apache, а конец — pred:0.0859964494393.

Логи обрабатываются ELK для визуализации, а так же хочу иметь какие-то метрики на счет под названием pred. Поэтому я использовал вариант timer из metrics. Вот мой файл конфигурации logstash:

input {
    file {
         path => '/home/spark/LogStash/*'
         start_position => "beginning"
    }
}

filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG} pred:%{NUMBER:pred_score}"}
    }

    if "_grokparsefailure" in [tags] {
         drop { }
    }

    mutate {
    convert => {"pred_score" => "float"}
    }

    geoip {

        source => "clientip"
    }

    metrics {
        timer => ["pred_score" , "%{duration}"]
    }

}

output {
#    elasticsearch { }
    stdout { codec => rubydebug }
#    riemann{
#    map_fields => true
#    }
}

Я ожидал получить результат со средним значением, топором и т. Д. ... Предварительного счета. Однако у меня есть только некоторые 0, кроме количества и ставок.

Вот один из выходных данных timer :

{
      "@version" => "1",
    "@timestamp" => "2016-07-28T09:11:39.522Z",
       "message" => "thamine-OptiPlex-755",
    "pred_score" => {
           "count" => 10,
         "rate_1m" => 0.5533102865966679,
         "rate_5m" => 1.2937302900528778,
        "rate_15m" => 1.490591754983121,
             "min" => 0.0,
             "max" => 0.0,
          "stddev" => 0.0,
            "mean" => 0.0,
              "p1" => 0.0,
              "p5" => 0.0,
             "p10" => 0.0,
             "p90" => 0.0,
             "p95" => 0.0,
             "p99" => 0.0,
            "p100" => 0.0
    }
}

Вы знаете, что я делаю неправильно?

Заранее спасибо !


person Robin Dupont    schedule 28.07.2016    source источник


Ответы (1)


Ваш шаблон grok выглядит хорошо, но в вашем сценарии logstash %{duration} неизвестен. Ни COMBINEDAPACHELOG, ни ваш шаблон не имеют переменной duration.

Измените конфигурацию таймера на:

timer => ["pred_score" , "%{pred_score}"]

поскольку pred_score - это переменная в вашем шаблоне

person G.S    schedule 27.01.2017