一、 前言
java程序日志接入elk日志系统,我们最常用到的方案就是用filebeat或者是logstash读取java程序生成的日志文件,那么,我们是否可以忽略日志文件这个载体,直接让java日志传输到elk系统中呢?这里就讲解一下,如何配置,log4j对接logstash。
二、log4j中的配置
在log4j配置中,有现成的logstash模块,配置的时候只需把以下配置追加到log4j 文件末尾即可。
log4j.appender.logstash=org.apache.log4j.net.SocketAppender
log4j.appender.logstash.RemoteHost=192.168.1.1
log4j.appender.logstash.port=4562
log4j.appender.logstash.ReconnectionDelay=60000
log4j.appender.logstash.LocationInfo=true
在这里需要注意的就两点: logstash的远程地址和端口。
log4j.appender.logstash.RemoteHost 这条配置就是你logstash所在主机的ip。
log4j.appender.logstash.port 这条配置就是logstash接收Java日志的端口 这里任意配置只需和logstash中配置的端口一致即可。
三、 logstash端的配置
logstash input 使用udp接收数据
input {
udp {
host => "0.0.0.0"
port => 4564
}
}
据说在旧版本中,有专门的log4j插件,用于收集java程序传过来的日志数据,据说新版本无法使用log4j,这点我没验证过,你们使用udp接收数据即可。在这理需要注意的点,就一个 port 必须和log4j中填写的一致。
至此log4j对接logstas 配置完成
未经允许严禁转载,欢迎加入elk交流群探讨问题,群号:433418690