filter{
mutate{
update=>{"message" => "%{message}1|" }
split=>["message","|"]
}
ruby {
code => '
file_nm = event.get("message").split(/\//).last
node_id = file_nm[4,file_nm.length].chop.chop.chop.chop
event.set("node_id", node_id)
size = event.get("message").size
event.set("size", size)
event.set("tm_smp", event.get("message[0]")[5,18])
event.set("log_id", event.get("message[0]").split(" ")[-1])
event.set("req_id", event.get("message[1]"))
if size ==8
event.set("srv_nm", event.get("message[2]"))
event.set("txn_cd", event.get("message[3]"))
event.set("cost_tm", event.get("message[4]"))
event.set("msg_cd", event.get("message[5]"))
event.set("msg_inf", event.get("message[6]"))
elsif size ==9
event.set("bus_id", event.get("message[2]"))
event.set("srv_nm", event.get("message[3]"))
event.set("txn_cd", event.get("message[4]"))
event.set("cost_tm", event.get("message[5]"))
event.set("msg_cd", event.get("message[6]"))
event.set("msg_inf", event.get("message[7]"))
elsif size <8||size>9
event.set("flg","error")
end'
remove_field => ["message"]}
date {match => ["tm_smp", "MM-dd HH:mm:ss,SSS" ]}
}