目录
一、 简介
二、 logstash
三、 elasticsearch
四、 kibana
一、 简介
日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有:
• 根据关键字查询日志详情
• 监控系统的运行状况
• 统计分析,比如接口的调用次数、执行时间、成功率等
• 异常数据自动触发消息通知
• 基于日志的数据挖掘
很多团队在日志方面可能遇到的一些问题有:
• 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力
• 日志数据分散在多个系统,难以查找
• 日志数据量大,查询速度慢
• 一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据
• 数据不够实时
最常见的需求就是收集、查询、显示,正对应logstash、elasticsearch、kibana的功能。
elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具。
比如我这里下载的一套是logstash 2.0.0 + elasticsearch 2.0.0 + kibana 4.2.0
二、 logstash
logstash部署简单,下载压缩包,就是一个 pipeline
inputs >> codecs >> filters >> outputs
1.下载logstash-2.0.0.tar.gz解压
https://download.elastic.co/logstash/logstash/logstash-2.0.0.tar.gz
解压到目录/Users/duwei/software/elk/logstash-2.0.0
tar xzvf logstash-2.0.0.tar.gz
2.添加2个配置文件
1). 添加logstash.conf(采集日志输出到redis中)
在bin目录中添加logstash.conf
input{
file{#path要采集日志路径
type => "budgetpull"
path => ["/*/logs/bugetpulljob/budgetpull/*","/*/logs/bugetpulljob/redis/*"]
start_position => "beginning"
}
file{
type => "duedate"
path => ["/*/logs/duedatejob/*"]
start_position => "beginning"
}
}
filter {
grok {#配匹字段message中的内容被筛选。(以下是标准正规表达式)
match => { "message" => "^\d+-\d+\s\d+:\d+:\d+\.\d.*" }
}
output{
redis{#以下是redis安装地址
host => "128.31.5.196"
data_type => "list" #接收数据以列表形式
key => "logstash:redis" #队列的名称
}
}
2)添加logstashIndex.conf(从redis队列中取数据放入elasticsearch)
在bin目录中添加logstashIndex.conf
input {
redis{
host => "128.31.5.196"
data_type => "list"
key => "logstash:redis"#与logstash.conf中redis相同
type => "redis-input"
}
}
output {
elasticsearch {
hosts => "localhost"#该elasticsearch就部署在本机
}
}
3.运行logstash
1)启动第一个进程
./logstash agent -f logstash.conf -l /*/logs/logstash/stdou.log &
2)启动第二个进程
./logstash agent -f logstashIndex.conf -l /*/logs/logstash/stdouIndex.log &
三、 elasticsearch
elasticsearch是基于lucene的开源搜索引擎,近年来发展比较快,主要的特点有
• real time
• distributed
• high availability
• document oriented
• schema free
• restful api
1.下载logstash-2.0.0.tar.gz解压
https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.0.0/elasticsearch-2.0.0.tar.gz
解压到目录/Users/duwei/software/elk/elasticsearch-2.0.0
tar xzvf elasticsearch -2.0.0.tar.gz
2.安装head插件
cd /Users/duwei/software/elk/elasticsearch-2.0.0/bin
./plugin install mobz/elasticsearch-head
查看页面
http://localhost:9200/_plugin/head/
3.启动elasticsearch
cd /Users/duwei/software/elk/elasticsearch-2.0.0/bin
./elasticsearch &
测试安装
curl -X GET http://localhost:9200/
[root@10.11.5.211 bin]# curl -X GET http://localhost:9200/
{
"name" : "Piper",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.0.0",
"build_hash" : "de54438d6af8f9340d50c5c786151783ce7d6be5",
"build_timestamp" : "2015-10-22T08:09:48Z",
"build_snapshot" : false,
"lucene_version" : "5.2.1"
},
"tagline" : "You Know, for Search"
}
测试成功
四、 kibana
Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的
1.下载kibana-4.2.0-linux-x64.tar.gz解压
https://download.elastic.co/kibana/kibana/kibana-4.2.0-linux-x64.tar.gz
解压到目录/Users/duwei/software/elk/kibana-4.2.0-linux-x64
tar xzvf kibana-4.2.0-linux-x64.tar.gz
2.修改配置文件
修改config目录下kibana.yml文件内容
elasticsearch服务地址
elasticsearch.url: "http://10.121.6.21:9200"
3.启动kibana
./kibana &
查看页面
http://yourhost.com:5601