java日志 log4j 对接logstash 实操详解

一、 前言

       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

 

你可能感兴趣的:(java日志 log4j 对接logstash 实操详解)