概要:ELK部署成功后,需要kibana图形展示某应用的性能。初步通过统计分析日志的形式来模拟。日志中有sendTime :消息发出时间,recvTime:处理完毕后打印的日志时间。通过logstash 对日志进行拆分并计算recvTime和sendTime的差值即处理时间(本文标记为responseTime)。并将responseTime展示在kibana中
1、logstash 配置文件
logstash 的配置文件 input 是来自filebeat 端口5044 (filebeat 用于收集out.log的日志)
filter 是对日志内容进行匹配拆分和转换的操作。
logstash-beat.conf 配置文件内容
input {
beats {
port => "5044"
}
}
filter{
grok{
match => [
"message" , "\<%{TIMESTAMP_ISO8601:recvTime}\> INFO recv :{\"ID\":\"%{NUMBER:recvID}\",.*\"sendTime\":\"%{TIMESTAMP_ISO8601:sendTime}\""
]
}
date {
match => ["recvTime", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "recvTimeD"
}
date {
match => ["sendTime", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "sendTimeD"
}
ruby {code => "event.set('responseTime', event.get('recvTimeD').to_i - event.get('sendTimeD').to_i)"}
}
output {
stdout {
}
}
#output {
# elasticsearch {
# hosts => ["http://localhost:9200"]
# index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
# }
#}