採用elasticsearch+logstash+kibana收集日誌方案,由於logstash是jvm跑的,資源消耗比較大。因此有了一個新的工具filebeat,filebeat負責收集日誌,logstash負責過濾日誌後發送給elasticsearch。經常使用的ELK日誌採集方案中,大部分的作法就是filebeat將全部節點的日誌內容上送到kafka消息隊列,而後使用logstash集羣讀取消息隊列內容,根據配置文件進行過濾,而後送到elasticsearch。ruby
以下圖:jvm
這裏省略了kafka這一環節,也是能夠的。具體配置以下:elasticsearch
filebeat配置工具
filebeat.prospectors: - type: log paths: - E:\log\server.log output.logstash: # The Logstash hosts hosts: ["127.0.0.1:5044"]
配置好後,能夠在cmd下進入對應的文件目錄,輸入下面命令啓動,filebeat -e -c filebeat.ymlspa
注意啓動filebeat 須要前先啓動logstash。debug
logstash配置3d
input { beats { port => "5044" } } filter { grok { match => { "message" => "(\s*%{TIMESTAMP_ISO8601:time} \s*%{LOGLEVEL:level}\s*%{NUMBER:lineNumber} ---\s*(?<class>(\[.*?\].*:) )\s*(?<message>[\s\S]* ))"} } } output { stdout {codec => rubydebug} elasticsearch { hosts => ["localhost:9200"] index => "log" } }