elk+filebeat分布式日志收集

  • 1.elk环境搭建
  • 2.filebeat程序安装
  • 3.filebeat配置修改
    • filebeat.yml修改如下
      # 监控日志文件地址
      paths:- d:/_tmp/log/*.log
      # 类型修改
      document_type: provider_log
      # 对于行不是以日期(格式如:2017-09-17 16:21:14.313)开头,都归到上一行
      multiline.pattern: ^\d{4}([-]\d{2}){2}\s\d{2}([:]\d{2}){2}[.]\d{3}
      multiline.negate: true
      multiline.match: after
      # 输出到logstash
      output.logstash:
        hosts: ["localhost:5044"]



  • 4.logstash配置如下:
    • 作用:先从每行日志中提取时间再放到@timestamp字段中
    • filelog.cfg的内容如下
      input {
      		beats  {
                    port => 5044
            }
      }
      filter {
          grok {
              match => ["message", "%{TIMESTAMP_ISO8601:logdate}"]
          }
          date {
              match => ["logdate", "yyyy-MM-dd HH:mm:ss.SSS"]
              target => "@timestamp"
          }
      }
      output{
      	 stdout{
      		codec=>rubydebug{}
           }
      	 elasticsearch{
      		hosts=>["127.0.0.1:9200"] 
      		index => "test-%{[@metadata][type]}-%{+YYYY.MM.dd}"
      	 } 
      }

你可能感兴趣的:(J2EE)