日志·Log(Timestamp+Data)
解决生产环境中的问题:分析下日志吧!
满屏密密麻麻的字符串亮瞎眼….
Intro ELK
背景资料:Logstash
出自世界著名的运维工程师乔丹西塞(JordanSissel)之手,诞生于2009 年 8 月 2 日。Elasticsearch
近两年最受关注的大数据项目之一,开始于2010年。Kibana
是一个使用Apache开源协议的Elasticsearch分析和搜索仪表板。2013 年,Logstash 被 Elasticsearch 公司收购,ELK stack 正式成为官方用语.
Using Elasticsearch as a backend datastore, and kibana as a frontend reporting tool, Logstash acts as the workhorse, creating a powerful pipeline for storing, querying and analyzing your logs. With an arsenal of built-in inputs, filters, codecs and outputs, you can harness some powerful functionality with a small amount of effort.
Logstash
shipper等价于应用机器上的agent,通过监听事件
统一规整到Broker(相当于一个buffer),indexer是就是logstash的server部分。本身上来讲logstash不细分角色,其input-filter-output的机制,灵活度很高。对于Storage部分,Elasticsearch提供了全文索引,最后通过Kibana展现。
一个符合SLA协议的部署结构大致可以是这样的,官方参考。
Elasticsearch
推荐几个插件:
- elastic-head
- bigdesk
- paramedic
Collectd
5月1号,留意到colletd,精悍。使用
collectd
收集服务器的状态信息,get.
Test
bin/logstash -e ‘input { stdin { } } output { elasticsearch { host => localhost } }’
参考资料
github
Remember: if a new user has a bad time, it’s a bug in logstash.
- http://www.cnblogs.com/vovlie/p/4227027.html
- http://www.firefoxbug.com/index.php/category/logstash–e6-9c-8d-e5-8a-a1-e5-99-a8/
- http://ju.outofmemory.cn/entry/113144
案例分享
日志格式
10.10.50.68 - - [17/Apr/2015:22:20:54 +0800] "POST /im-daos/dao/ims/chat HTTP/1.1" 200 16 2
grok(http://grokdebug.herokuapp.com/)表达式
#es-hadoop
看好es-hadoop.
%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) (?:%{NUMBER:mills}|-)