logstash java插件_[logstash-input-log4j]插件使用详解

Log4j插件可以通过log4j.jar获取Java日志,搭配Log4j的SocketAppender和SocketHubAppender使用,常用于简单的集群日志汇总。

最小化的配置

input {

log4j {

host=>"localhost"

port=>4560

}

}

output {

stdout {}

}

log4j插件配置host以及port就能监听localhost上的4560端口的log4j消息。

此时,如果你的log4j向本地主机以SocketAppender的方式输出日志消息,Logstash就能捕获到,参考的log4j配置文件如下:

> %5p >> %t >> %l >> %m%n" />

重要参数详解

mode logstash工作模式,可选"server"或者"client",默认是"server"

server就是把logstash看做是日志的服务器,接收log4j主机端生成的日志消息。

client则是把logstash看做是tcp的发起者,请求log4j主机返回日志消息。

host 主机地址,字符串类型,如"localhost"或者"192.168.0.1"

如果是server模式,就是监听的主机地址

如果是client模式,就是连接的目标地址

port 端口号,数字类型,如 4567 或者 12345

如果是server模式,就是监听的端口号

如果是client模式,就是连接的目标端口号

data_timeout 超时时间,秒为单位。如果设置-1,则永不超时,默认是5

如果某个tcp连接闲置了,则超过该时间限制,就断开或者关闭连接。

Server模式

server模式就是把logstash作为服务器,输出日志消息的java程序所在的主机作为客户机,大致类似如下:

f6a46490786636c9a86e9a7ca31d150f.png

Logstash的插件配置如下:

input{

log4j {

mode => "server"

host => "localhost"#注意这里,这里是Logstash服务器的地址或者主机名

port => 4560

}

}

output{

stdout{}

}

java程序log4j日志配置文件如下:

> %5p >> %t >> %l >> %m%n" />

另外需要注意的是,如果使用server模式,监听的ip地址只能是本机地址,否则无法绑定socket。

例如,我本身的服务器地址是10.4.5.6,那么我要绑定一个远端机器,10.4.5.7,就会报如下错误:

0f41c90a81c3a6f054bb2ca574d687b4.png

Client模式

client模式就是把Logstash当做客户端,去请求返回java程序所在的主机输出的日志,大致如下:

2408bf0ae1ce1eb7f42a9a17b9189846.png

logstash的配置如下:

input{

log4j {

mode => "client"

host => "10.4.5.6"

port => 9999

}

}

output{

stdout{}

}

java程序这端的log4j配置文件如下:

> %5p >> %t >> %l >> %m%n" />

扩展

其实从logstash源码的角度看,就比较好理解他们的不同工作了!

e81bc7027cca37b6136266bd4eab0298.png

可以看到,如果是server模式,logstash会创建一个新的线程,持续的监听目标主机和端口;如果是client模式,则是创建了一个tcp连接。

对应来说,server模式对应log4j的SocketAppender模式,client模式对应log4j的SocketHubAppender模式。

注意:

1 如果是server模式,那么监听的主机地址应该是IP地址,写localhost会导致无法接收其他主机发送的信息。

2 如果是client模式,监听的端口不能是4560

关于Log4j插件大致的内容就是如此了。

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值