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
- 解析如上日志需要配置如下:
^\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 -
- 解析如上日志需要配置如下:
^\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
enabledtrue
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.negatetrue
# 指定Filebeat如何把多行合并成一个事件。可选的值是 after 或者 before
multiline.match after
3. 通过tags过滤日志