Я пытаюсь определить новую метку времени в Logstash, чтобы использовать метку времени журналов в моих отчетах Kibana вместо метки времени Filebeat.
У меня было следующее, которое работало, но нене позволяю мне использовать временную метку журнала в качестве оси времени в Кибане:
grok {
match => { "message" => "(?<timestamp>%{TIMESTAMP_ISO8601}) %{LOGLEVEL:loglevel} (?<class>[A-Za-z0-9$_.]+) %{NOTSPACE:method}\(%{JAVAFILE:class}:%{NONNEGINT:line}\) %{GREEDYDATA:message}$"
}
Поэтому я изменил ее так, но она не работает:
grok {
match => { "message" => "(?<timestamp>%{TIMESTAMP_ISO8601:tstamp}) %{LOGLEVEL:loglevel} (?<class>[A-Za-z0-9$_.]+) %{NOTSPACE:method}\(%{JAVAFILE:class}:%{NONNEGINT:line}\) %{GREEDYDATA:message}$"
}
date {
match => ["tstamp", "TIMESTAMP_ISO8601"]
}
Я пытался добавить чтоЯ думаю, что это наименование значения внутри шаблона Grok (часть ": tstamp"), которое я нашел здесь , и определение его как даты.Но когда я использую это, я больше не вижу никаких данных в Кибане.
Я стер все в Кибане, чтобы начать все сначала, и удалил файл реестра в Filebeat, чтобыон снова передает файл журнала.
Что мне не хватает?
Редактировать: Мне удалось восстановить поток данных, изменив мои фильтры следующим образом:
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:tstamp} %{LOGLEVEL:loglevel} (?<class>[A-Za-z0-9$_.]+) %{NOTSPACE:method}\(%{JAVAFILE:class}:%{NONNEGINT:line}\) %{GREEDYDATA:message}$" }
}
date {
match => ["tstamp", "ISO8601"]
}
Но я все еще вижу только @timestamp
в качестве фильтра времени.tstamp по-прежнему считается строкой.Я не понимаю ...