前言
logstash在旧版本中有log4j输入插件可以直接通过项目中配置log4j来实现日志的收集,但是在高版本的logstash利用log4j插件是收集日志时一直收集不到, 通过阅读最新官方文档,才发现高版本logstash的log4j插件已经过时,官方推荐使用filebeat输入插件来log4j日志。利用filebeat收集log4j日志,官方文档有相关介绍,下述内容是本人实践记录总结,不太喜欢啰嗦的朋友可以直接阅读官方文档学习。博主文采有限,如有写的不恰当的地方还请高人不吝赐教。
官方文档地址:
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-log4j.html
高版本logstash收集log4j日志
-
下载安装filebeat。
-
配置filebeat :
①:Filebeat prospectors配置:
enabled: true
paths: - C:\Users\xx.IntelliJIdea2017.2\system\tomcat\Unnamed_jspt-plat_2\logs*.log (日志文件所在路径)
encoding: gb2312 (很重要,这里不配置编码,windows系统下中文日志可能会乱码)
multiline.pattern: ^[ (将多行日志合并到一行显示)
multiline.negate: true (true 或 false;默认是false,匹配pattern的行合并到上一行;true,不匹配pattern的行合并到上一行)
multiline.match: after (after 或 before,合并到上一行的末尾或开头)
②:Logstash output配置
output.logstash:
hosts: [“localhost:5044”] (如果这里logstash不在本机可以填具体的ip地址)
这里是常用比较重要的配置,如果需要了解更复杂的配置可以去浏览官网文档介绍。https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
-
保存配置文件并启动filebeat。
-
log4j配置文件内容如下:
log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = D:/temp/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
-
配置logstash配置文件的输入插件
input {
beats {
port => 5044
}
}
6.启动logstash
7. 跑一个相关的日志,在logstash对应的输出插件上就会有所显示。