elasticsearch+logstash+filebeat+kibana收集日志配置

采用elasticsearch+logstash+kibana收集日志方案,因为logstash是jvm跑的,资源消耗比较大。所以有了一个新的工具filebeat,filebeat负责收集日志,logstash负责过滤日志后发送给elasticsearch。常用的ELK日志采集方案中,大部分的做法就是filebeat将所有节点的日志内容上送到kafka消息队列,然后使用logstash集群读取消息队列内容,根据配置文件进行过滤,然后送到elasticsearch。

如下图:

 

这里省略了kafka这一环节,也是可以的。具体配置如下:

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.yml

注意启动filebeat 需要前先启动logstash。

logstash配置

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"
    }
}

 

posted @ 2018-08-06 10:36  水墨江南110  阅读(2188)  评论(0编辑  收藏  举报