filebeat&logstash下multiline读取Log4j

本文介绍了一种使用Filebeat进行日志收集的配置方法,包括输入、过滤和输出三个阶段的具体设置。重点讲解了如何通过配置实现日志的正确解析及传输至Elasticsearch的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

input {
       stdin {
       }
       beats {
              port => 5044
	      codec => multiline { 
			pattern => "^%{TIMESTAMP_ISO8601}"
			negate => true
			what => "previous"
			}
      }
}

filter {
   grok {
	match => [ "message", "%{TIMESTAMP_ISO8601:eventtime} %{LOGLEVEL:level}" ]
   }
}

output {
	stdout {
		codec => rubydebug
	}
	elasticsearch {
		hosts => "127.0.0.1:9200"
		index => "%{[fields][src]}-%{+YYYY.MM.dd}"
		user => "root"
		password => "123456"
	}
}

     其中user和password是es创建的user.

     [fields][src]是我filebeat的加的字段属性,标识日志的来源信息.

     match是指匹配日志进行解析,目前只匹配时间和日志等级,其他记录到默认字段message.

     multiline主要为了匹配打印的错误堆栈到一行里边。目前存在的问题最后一行必须等下次输入才会传递到es.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值