ELK監(jiān)控apache的access.log訪問日志
ELK
- E: Elasticsearch是個(gè)開源分布式搜索引擎,它的特點(diǎn)有:分布式,零配置,自動(dòng)發(fā)現(xiàn),索引自動(dòng)分片,索引副本機(jī)制,restful風(fēng)格接口,多數(shù)據(jù)源,自動(dòng)搜索負(fù)載等。
- L: Logstash是一個(gè)完全開源的工具,它可以對你的日志進(jìn)行收集、分析,并將其存儲(chǔ)供以后使用。
- K: Kibana是一個(gè)開源和免費(fèi)的工具,它可以為Logstash和ElasticSearch提供的日志分析友好的Web界面,可以幫助您匯總、分析和搜索重要數(shù)據(jù)日志。
安裝基本都是特簡單的那種
- 首先有個(gè)java環(huán)境
- 再有個(gè)redis啥的
![image]()
這三件套置辦齊了以后,我們就可以開始了,網(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
}
}
其實(shí)大概也都能一眼看懂吧,值得一提的是:。=
- {COMBINEDAPACHELOG}這個(gè)東西是logstash自己的官方插件,我們直接調(diào)用即可,其實(shí)logstash基本開發(fā)難度就是這里,自己編寫插件。
- stdout {codec => rubydebug}這個(gè)是把filter的日志也打印出來,logstash服務(wù)開啟就能查看到。
- 可能有人要問如果這個(gè)logstash程序kill了,日志文件是不是丟了呀。其實(shí)不是,logstash會(huì)保存一個(gè).master的數(shù)據(jù)庫來記錄訪問日志的行數(shù),完全不用擔(dān)心數(shù)據(jù)丟失。
開啟Elasticsearch
Elasticsearch默認(rèn)跑在9200端口,具體配置請參考這里
開啟kibana
kibana安裝特別簡單,tar zvxf后直接找個(gè)web 服務(wù)器扔進(jìn)去,是純js和HTML開發(fā),什么依賴都不要哦~
默認(rèn)訪問地址是http://localhost:5601
第一次會(huì)出現(xiàn)這個(gè)畫面:

kibana默認(rèn)會(huì)認(rèn)為日志來源是logstash,當(dāng)然亦可以是hdfs,redis什么的,以后碰到再交流。
這里就直接創(chuàng)建create。
點(diǎn)擊discover

就是這么簡單。
轉(zhuǎn)載:https://www.jianshu.com/p/24c7bcb6d5b4


浙公網(wǎng)安備 33010602011771號(hào)