Проблема с тайником журнала @timestamp

Я настроил ELK на своем ноутбуке, и у меня возникли проблемы с полем метки времени. Мой входной файл выглядит так... (пока одна строка)

Chckpoint 502 10.189.7.138 Allow 18 Mar 2015 15:00:01

Мой код выглядит так..

input {
  file {
    path => "/usr/local/bin/firewall_log"
  }
}

filter {
  grok {
    match => {"message", "%{WORD:type} %{NUMBER:nums} %{IP:sourceip} %{WORD:Action}"}
   add_tag => "checkpoint"
  }

date {
  match => {"DATETIME" => "%{dd mmm yyyy hh:mm:ss}"}
  target => "@timestamp"
}
}

output {
  elasticsearch { host => localhost }

Когда я запускаю его, я получаю следующий результат

"message" => "Chckpoint 502 10.189.7.138 Allow 18 Mar 2015 15:00:01   ",
      "@version" => "1",
    "@timestamp" => "2015-04-30T19:02:21.663Z",
          "host" => "UOD-220076",
          "path" => "/usr/local/bin/firewall_log",
          "type" => "Chckpoint",
          "nums" => "502",
      "sourceip" => "10.189.7.138",
        "Action" => "Allow",
          "tags" => [
        [0] "checkpoint"

Это нормально, ЗА ИСКЛЮЧЕНИЕМ временной метки - она ​​показывает сегодняшнюю дату, но я хочу, чтобы она установила временную метку в соответствии с тем, что находится в файле журнала, в данном случае 18 марта 2015 г., 15:00:01. Помогите, пожалуйста.


person DannyKELK    schedule 30.04.2015    source источник


Ответы (1)


Это то, что фильтр date{} сделает для вас, если вы дадите ему правильную информацию.

Во-первых, определите собственный шаблон для вашей метки времени:

MYTIMESTAMP %{MONTHDAY} %{MONTH} %{YEAR} %{TIME}

Затем добавьте его в свой шаблон grok, чтобы получить новое поле:

%{WORD:type} %{NUMBER:nums} %{IP:sourceip} %{WORD:Action} %{MYTIMESTAMP:mytime}

Затем вы можете передать переменную mytime в фильтр даты:

date {
  match => {"mytime" => "dd MM YYYY HH:mm:ss"}
}
person Alain Collins    schedule 30.04.2015