Как удалить дату из события LogStash
У меня есть следующее сообщение в моем файле журнала...
2015-05-08 12:00:00,648064070: INFO : [pool-4-thread-1] com.jobs.AutomatedJob: Found 0 suggested order events
Это то, что я вижу в Logstash/Kibana (с выбранными датой и сообщением)...
May 8th 2015, 12:16:19.691 2015-05-08 12:00:00,648064070: INFO : [pool-4-thread-1] com.pcmsgroup.v21.star2.application.maintenance.jobs.AutomatedSuggestedOrderingScheduledJob: Found 0 suggested order events
Дата слева в Кибане - дата вставки. (8 мая 2015 г., 12:16:19,691)
Следующая дата из выписки из журнала (2015-05-08 12:00:00,648064070)
Далее идет уровень ведения журнала INFO.
Тогда наконец сообщение.
Я хотел бы разделить их на эти компоненты, чтобы уровень ведения журнала соответствовал собственному ПОЛЕ в kibana, и чтобы либо удалить дату в разделе сообщений, либо сделать ее фактической датой (вместо даты вставки).
Может кто-нибудь помочь мне, пожалуйста. Я полагаю, мне нужен фильтр Грок?
Это то, что я до сих пор...
input
{
file {
debug => true
path => "C:/office-log*"
sincedb_path => "c:/tools/logstash-1.4.2/.sincedb"
sincedb_write_interval => 1
start_position => "beginning"
tags => ["product_qa"]
type => "log4j"
}
}
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601}: %{LOGLEVEL}" ]
}
}
output {
elasticsearch {
protocol => "http"
host => "0.0.0.x"
}
}
Этот фильтр grok, похоже, не меняет события, показанные в Kibana. Я все еще вижу только хост / путь / тип и т. Д.
Я использовал http://grokdebug.herokuapp.com/ чтобы выработать синтаксис grok
1 ответ
Вам нужно будет назвать результат, который вы получите от grok, а затем использовать фильтр даты, чтобы установить @timestamp
так что зарегистрированное время будет использоваться вместо времени вставки.
Исходя из того, что у вас есть, вы сделаете это:
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:logdate}: %{LOGLEVEL:loglevel} (?<logmessage>.*)" ]
}
date {
match => [ "logdate", "ISO8601" ]
}
#logdate is now parsed into timestamp, remove original log message too
mutate {
remove_field => ['message', 'logdate' ]
}
}