filebeat采集SpringBoot日志

1. 解析日志格式

2021-04-01 10:34:50 389656839 [jackExecutorCoreLog---3] INFO  c.tj.service.user.TjWebVisitService - ===key:state, value:2
2021-04-01 10:34:50 389656839 [jackExecutorCoreLog---3] INFO c.tj.service.user.TjWebVisitService - ===key:sort, value:999
  1. 解析如上日志需要配置如下:
^\d{4}\-\d{2}\-\d{2}\s\d+\:\d+\:\d+\s\d{6,12}\s
192.168.50.47 - - [01/Apr/2021:09:23:30 +0800] "POST /api/fhuavtreatment/getTreatmentCost HTTP/1.1" 200 -
192.168.50.47 - - [01/Apr/2021:09:23:30 +0800] "POST /api/fhuavpest/getEpidemic HTTP/1.1" 200 -
192.168.50.47 - - [01/Apr/2021:09:23:30 +0800] "POST /api/fhuavcheck/getTreatmentCost HTTP/1.1" 200 -
  1. 解析如上日志需要配置如下:
^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s\-\s\-\s

如果需要两个都要解析:

^\d{4}\-\d{2}\-\d{2}\s\d+\:\d+\:\d+\s\d{6,9}\s|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s\-\s\-\s

2. 配置

安装好filebeat后配置文件:
​​​/etc/filebeat/filebeat.yml​

- type: log
enabled: true
paths:
# 日志路径
- /opt/data/jardata/forest/jsh/logs/*.log
# 标签过滤的时候可以使用,这里用项目名
tags: ["forestLog"]
# 正则匹配以什么为开头
multiline.pattern: '^\d{4}\-\d{2}\-\d{2}\s\d+\:\d+\:\d+\s\d{6,12}\s|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s\-\s\-\s'
# 定义模式是否被否定。默认false
multiline.negate: true
# 指定Filebeat如何把多行合并成一个事件。可选的值是 after 或者 before
multiline.match: after

filebeat采集SpringBoot Java日志_日志采集

filebeat采集SpringBoot Java日志_java日志_02

3. 通过tags过滤日志

filebeat采集SpringBoot Java日志_日志采集_03
filebeat采集SpringBoot Java日志_ELK_04