刚进公司,产品上线日志都在服务器上,每次查看订单日志的时候都要用grep命令去看,作为一个程序员我是不能忍的了。上网查了一下,发现有个elk(elasticsearch+logstash+kibana)的日志分析框架,评价还不错,还是开源框架,决定搞过来试试。
logstash负责日志的收集,elasticsearch负责日志的存储和搜索,kibana呢就是UI了,负责对日志的分析显示。
准备工作就是在elastic网站上下载这3个软件,然后安装好redis并启动,redis 的安装启动我就不多说了,请看这里,自己看. 需要注意的是,jdk版本要1.7,要安装ruby。
第一步我们来启动elasticsearch
cd elasticsearch-1.5.2/
nohup bin/elasticsearch > es.log &
第二步启动logstash。这里有两个配置文件,shipper.conf和index.conf。前者是将文本日志收集起来放入redis的list中,后者是将redis里的list读取出来存入elasticsearch中。
cd logstash-1.5.0/
nohup bin/logstash -f shipper.conf > shipper.log &
nohup bin/logstash -f index.conf > index.log &
shipper.conf
input {
file {
type => "test_logs"
path => "/usr/local/young/test.log"
start_position => "beginning"
}
}
filter {
multiline {
pattern => "^[\s|a-z|A-Z|\{|\}]"
what => "previous"
}
grok{
match => { "message" => "%{TIMESTAMP_ISO8601:logtime} %{NOTSPACE:threadname} %{LOGLEVEL:level} %{NOTSPACE:servicename} -%{GREEDYDATA:information}"}
}
}
output {
redis {
host => "127.0.0.1"
data_type => "list"
key => "logstash:redis"
}
}
input {
redis {
host => "127.0.0.1"
data_type => "list"
key => "logstash:redis"
type => "redis-input"
}
}
output {
elasticsearch {
embedded => false
protocol => "http"
host => "127.0.0.1"
port => "9200"
}
}
第三步启动kibana
cd kibana-4.0.2/
nohup bin/kibana > kibana.log &
在你的浏览器中输入localhost:5601,这时你就应该能看见你的日志了。通过对kibana的定制,还能实现分析功能。自己试试吧。