Logstash:接收,处理,转发日志
Elasticsearch:文档型数据库,实时的分布式搜索和分析引擎
Kibana:查询、生成报表的web GUIgit
在安装目录bin文件夹里新建一个logstash.conf
填入如下配置github
input { stdin {} } filter { grok { match => ["message", "%{COMBINEDAPACHELOG}"] } } output { stdout { codec => rubydebug } }
配置文件语法相似Rubyweb
* patterns本地路径大体为:logstash-1.5.0\vendor\bundle\jruby\1.9\gems\logstash-patterns-core-0.1.10\patterns正则表达式
而后执行 logstash -f logstash.conf ,windows下是logstash.bat数据库
windows有个坑,路径中有空格会启动失败,编辑logstash.bat文件,替换第6行为
CALL "%SCRIPT_DIR%\setup.bat"
apache
在控制台输入一条apache日志json
127.0.0.1 - - [05/May/2015:15:45:21 +0800] "GET /t/10002 HTTP/1.1" 200 7593 "http://127.0.0.1/index" "Mozilla/4.0 (compatib1e; MSIE 6.1; Windows NT)"
返回结果ubuntu
能够看到原来的一行字符串,通过logstash的处理后,输出json格式的结果,获得有语义的结构化文档windows
以上就是Logstash的主要功能:
1. 接收日志 (input)
2. 处理成json格式的文档 (filter)
3. 输出日志 (output)浏览器
再试试文件的 测试日志
input { file { path => "D:/Program Files/logstash-1.5.0/log/access_test.log" type => "apache" start_position => "beginning" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { locale => "en" match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z", "ISO8601" ] } } output { file { path => "D:/Program Files/logstash-1.5.0/log/logstash-access_test.log" type => "apache" start_position => "beginning" } }
安装管理监控工具Marvel
./bin/plugin -i elasticsearch/marvel/latest
启动Elasticsearch
./bin/elasticsearch
ubuntu有个坑,主机重启后,service启动es报touch的pid文件不存在,按此修改/etc/init.d/elasticsearch
访问http://localhost:9200/?pretty查看引擎是否启动
Marvel管理地址:http://localhost:9200/_plugin/marvel/
修改logstash.conf的output部分
output { elasticsearch { host => "127.0.0.1" protocol => "http" index => "logstash-test-%{type}-%{host}" workers => 5 template_overwrite => true } }
再运行一次logstash,输出的结果就导入elasticsearch了
Documents表明文档数量,大约有两万多个
./bin/kibana
建立一个索引模式,再点击顶部的“Discover”
默认的过滤器只显示15分钟之内的日志,须要点右上角的钟表图标修改一下时间段,切换到“Absolute”标签
这里改为日志的起止时间2014-11-01
到2015-06-1
Discover界面功能主要分四部分
1. 搜索功能,能够是Lucene语法,也开始是DSL
2. 左边能够按字段过滤,查看数量最多的Top 5
3. 很直观的反映访问量的直方图,能够自定义时间频率,右上角是当前的结果总数
4. 筛选后的文档结果
在搜索框输入 response: not 200
下面用独立IP简单统计用户都用什么浏览器
点击 Visualize - Data Table - From a new search,填入下图左侧的查询条件
至此,日志分析平台雏形已现,已经能够从海量日志中查询咱们想要的数据,更多功能及应用见下篇。