博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[logstash-input-log4j]插件使用详解
阅读量:7071 次
发布时间:2019-06-28

本文共 2639 字,大约阅读时间需要 8 分钟。

hot3.png

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

最小化的配置

input {    log4j {        host=>"localhost"        port=>4560    }}output {    stdout {}}

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

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

重要参数详解

  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程序所在的主机作为客户机,大致类似如下:

  Logstash的插件配置如下:

input{    log4j {        mode => "server"        host => "localhost"#注意这里,这里是Logstash服务器的地址或者主机名        port => 4560    }}output{    stdout{}}

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

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

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

Client模式

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

  logstash的配置如下:

input{    log4j {        mode => "client"        host => "10.4.5.6"        port => 9999    }}output{    stdout{}}

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

 
      
      
      

扩展

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

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

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

  

  注意:

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

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

 

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

参考

【1】logstash log4j插件:

【2】log4j SocketAppender:

【3】log4j SocketHubAppender:

转载于:https://my.oschina.net/u/204616/blog/545317

你可能感兴趣的文章
Homebrew 1.9发布,将支持Linux与Windows 10
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
Kotlin 1.3带来稳定的协程、合约及其他
查看>>
微软公布Visual Studio 2015产品线,可直接生成Linux二进制程序
查看>>
敏捷心态到底是什么?
查看>>
矩阵:如何使用矩阵操作进行 PageRank 计算?
查看>>
腾讯云10亿扶持小程序:3元套餐可能免费
查看>>
专访《Haskell函数式编程入门》作者张淞:浅谈Haskell的优点与启发
查看>>
eval()的使用和兼容性问题
查看>>
KMP模式匹配算法(二) next数组
查看>>
连连支付注意事项
查看>>
【面试系列】番外:关于糯米面试
查看>>
angular组件(ngKeybordSelect)-通过键盘实现多选
查看>>
C — 用单向循环链表完成“类约瑟夫环”问题
查看>>
整型字面量的那些事
查看>>
Fastreport.Net用户手册(二):报表设计器
查看>>
精益 React 学习指南 (Lean React)- 1.6 Flux
查看>>
【译】UICollectionView 轻松重排
查看>>
Vue.js前后端通用组件开发心得-菜鸟篇
查看>>
快速制作机房3D效果图教程
查看>>