文/michaelgbw
好久沒有blog了,因為去了帝都實習(以后就轉(zhuǎn)正的那種),剛好最近回來了,工作那邊偶然的機會見識到了ELK,今天好想試一把
ELK
E:Elasticsearch是個開源分布式搜索引擎墙懂,它的特點有:分布式萌丈,零配置衍腥,自動發(fā)現(xiàn),索引自動分片摊阀,索引副本機制晴股,restful風格接口铺纽,多數(shù)據(jù)源氛濒,自動搜索負載等。
L:Logstash是一個完全開源的工具唆姐,它可以對你的日志進行收集拗慨、分析,并將其存儲供以后使用
K:kibana 是一個開源和免費的工具奉芦,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面赵抢,可以幫助您匯總、分析和搜索重要數(shù)據(jù)日志具體的介紹我就不寫了,想深入了解的同學可百度,Google
安裝基本都是特簡單的那種
- 首先有個java環(huán)境
- 再有個redis啥的
這三件套置辦齊了以后声功,我們就可以開始了烦却,網(wǎng)上大多數(shù)十nginx的在就是java的log4j的,這次我的ubantu上剛好只有apache先巴,咱們就監(jiān)控它吧
ELK里面的一般是先寫L的配置文件其爵,L是ruby開發(fā),所以或多或少的可以看到ruby的影子伸蚯,但是不要緊摩渺,且看我的conf
input{
file{
type => "apache"
path => [ "/var/log/apache2/access.log" ]
start_position => "end"
#start_position => "starting"
}
}
filter {
grok{
match =>{ "message" => "%{COMBINEDAPACHELOG}"} # 調(diào)用剛才找到的模塊
remove_field => ["message","type","path","httpversion","bytes","agent","referrer","auth"]
}
date {
match => ["timestamp", "yyyy/mm/dd:HH:mm:ss"]
}
}
output{
elasticsearch{}
stdout {
codec => rubydebug
}
}
其實大概也都能一眼看懂吧,值得一提的是:
- {COMBINEDAPACHELOG}這個東西是logstash自己的官方插件朝卒,我們直接調(diào)用即可证逻,其實logstash基本開發(fā)難度就是這里乐埠,自己編寫插件
- stdout {codec => rubydebug}這個是把filter的日志也打印出來抗斤,logstash服務(wù)開啟就能查看到
- 可能有人要問如果這個logstash程序kill了,日志文件是不是丟了呀丈咐。其實不是瑞眼,logstash會保存一個.master的數(shù)據(jù)庫來記錄訪問日志的行數(shù),完全不用擔心數(shù)據(jù)丟失棵逊。
開啟Elasticsearch
Elasticsearch默認跑在9200du伤疙,具體配置請參考這里
(冒號兩邊一定要有空格,坑~)
開啟kibana
kibana安裝特別簡單辆影,tar zvxf后直接找個web 服務(wù)器扔進去徒像,是純js和HTML開發(fā),什么依賴都不要哦~
默認訪問地址是http://localhost:5601
第一次會出現(xiàn)這個畫面:
kibana默認會認為日志來源是logstash蛙讥,當然亦可以是hdfs锯蛀,redis什么的,以后碰到再交流次慢。
這里就直接創(chuàng)建create
點擊discover
就是這么簡單旁涤。
后記
其實ELK還有好多特別強大的特性翔曲,這篇文章只是入門,今后還要繼續(xù)研究才是~