忙了幾天窝爪,終于把logstash和log4j2一起弄上了線,踩過(guò)很多坑齐媒,也還有很多需要完善的地方蒲每,但是路還是慢慢走吧,一點(diǎn)一點(diǎn)來(lái)喻括。魯迅先生說(shuō)過(guò):”巴拉巴拉巴拉......“邀杏,然而他老人家并沒(méi)有說(shuō)過(guò)什么。
logstash 簡(jiǎn)介(官網(wǎng)):
- Centralize data processing of all types
- Normalize varying schema and formats
- Quickly extend to custom log formats
- Easily add plugins for custom data sources
總之一句話:logstash是收集日志利器唬血,無(wú)論是系統(tǒng)日志還是應(yīng)用程序日志望蜡,無(wú)論是從文件收集還是直接接收tcp(或者udp)數(shù)據(jù)流,基本上所有常見(jiàn)的日志都能被收集拷恨,如:file脖律、http、log4j腕侄、redis小泉、syslog、tcp(udp)等等冕杠;
另外logstash還可以以多種形式的輸出微姊,如:elasticsearch(一種數(shù)據(jù)檢索利器,可以戳這里了解)拌汇、email柒桑、file、http噪舀、redis魁淳、tcp(udp)、xmpp等等与倡。
開(kāi)動(dòng)
下載logstash(https://download.elastic.co/logstash/logstash/logstash-1.5.6.tar.gz )界逛,我使用的是1.5.6版本的,因?yàn)閘og4j2的插件只支持1.5.6及以下纺座。windows用戶請(qǐng)前往官網(wǎng)下載zip版本息拜。logstash是一款成型軟件,基本上開(kāi)箱即用,做一些少量配置即可少欺。
tar zvxf logstash-1.5.6.tar.gz
cd logstash-1.5.6
mkdir conf
vim logstash.conf
加入如下基礎(chǔ)配置
input {
stdin{}
}
# filter is optional
#filter {
#}
output {
stdout{
codec => rubydebug
}
}
啟動(dòng)logstash:
bin/logstash -f conf/logstash.conf
啟動(dòng)logstash后喳瓣,等待用戶標(biāo)準(zhǔn)輸入,如圖赞别,輸入testing:
可以看到logstash把標(biāo)準(zhǔn)輸入轉(zhuǎn)換成類似于json鍵值對(duì)的形式輸出畏陕,message就是你輸入的內(nèi)容,@timestamp 是事件處理時(shí)間仿滔,可以看到這個(gè)是一個(gè)UTC時(shí)間惠毁,比北京時(shí)間晚8個(gè)小時(shí),這是一個(gè)以后要踩的坑崎页。
解釋以下logstash配置參數(shù):
logstash由3部分組成鞠绰,input輸出,filter過(guò)濾器飒焦,output輸出蜈膨,其中filter是可選的。每一部分都有很多插件可以用荒给,可以同時(shí)在某一部分中使用多個(gè)插件丈挟,可以使用如下命令查看logstash中安裝的插件:
bin/plugin list
logstash命令幫助其實(shí)也挺有用刁卜,比如可以查看logstash是否正確啟動(dòng)和正確地讀取配置文件:
bin/logstash --help # 查看logstash幫助
bin/logstash --verbose -f conf/test.conf # 查看logstash啟動(dòng)詳情
執(zhí)行bin/plugin list 可以看到logstash1.5.6本身就帶了很多插件志电,你可能會(huì)看到log4j,你會(huì)以為它也可以支持log4j2蛔趴,然而并不是挑辆,這也是我踩過(guò)的一個(gè)坑,發(fā)現(xiàn)配置好了并沒(méi)有什么卵用孝情,還好有萬(wàn)能的github(ps:發(fā)現(xiàn)一只看好的osc git并不具備這個(gè)功能鱼蝉,有點(diǎn)失望)。在github上搜索logstash log4j2箫荡,你會(huì)發(fā)現(xiàn)竟然神奇般的找到這個(gè)插件魁亦,大神的主頁(yè) https://github.com/jurmous/logstash-log4j2
注意:支持的log4j2的版本:2.1以上
安裝:
bin/plugin install logstash-input-log4j2
又來(lái)了一個(gè)坑,注意了需要啟動(dòng)logstash后才能安裝羔挡,否則會(huì)提示不支持https之類的洁奈,你可以親自踩踩這個(gè)坑,然后把它填平绞灼。
使用之前的配置文件啟動(dòng)logstash :
bin/logstash -f conf/test.conf
然后打開(kāi)一個(gè)新的終端利术,進(jìn)入logstash目錄,執(zhí)行l(wèi)og4j2插件的安裝命令低矮,需要等待一段時(shí)間印叁,請(qǐng)耐心等待。
logstash for log4j2基礎(chǔ)配置:
input {
log4j2 {
port => 7000
mode => "server"
}
}
output {
stdout { codec => rubydebug }
}
如上,讀取log4j2的輸出轮蜕,然后輸出到標(biāo)準(zhǔn)輸出昨悼。以上logstash for log4j2的基礎(chǔ)配置就搭建完畢了,更多內(nèi)容跃洛,請(qǐng)等待更新幔戏,如有需要,也可以郵件:jarvan4dev@163.com 聯(lián)系我 税课。