how to extract date and time from message field into a dedicated field.
this is my .conf file
input {
beats {
port => 5044
}
}
filter {
if [log_type] == "json" {
mutate {
rename => {
"message" => "raw_data"
}
}
json {
source => "raw_data"
}
date {
match => [ "timestamp", "ISO8601" ]
}
}
if [fields][log_type] == "nojson" {
grok {
match => {"message" => ["(?m)%{LOGLEVEL:level}\s*\[%{TIMESTAMP_ISO8601:timestamp}\]\s*\[(?<thread>[\w._.-]+)\]\s*(?<logger>[\w\.\w]+)\s*(?<message>[^{]*)","(?m)%{LOGLEVEL:level}\s*\[%{TIMESTAMP_ISO8601:timestamp}\]\s*\[(?<thread>[\w\-\s./]+)\]\s*%{UUID:requestid}(?<message>[^{]*)"] }
}
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["localhost:9160"]
index => "logstash-api-logs-%{+YYYY-MM-dd}"
manage_template => false}
#file { path => "/opt/elk_data/devops/devops-%{+YYYY-MM-dd}.log" }
}