美文网首页程序员
log4j2与logstash之间的那点事(一)

log4j2与logstash之间的那点事(一)

作者: jarvan4dev | 来源:发表于2016-01-18 22:25 被阅读10743次

忙了几天,终于把logstash和log4j2一起弄上了线,踩过很多坑,也还有很多需要完善的地方,但是路还是慢慢走吧,一点一点来。鲁迅先生说过:”巴拉巴拉巴拉......“,然而他老人家并没有说过什么。

logstash 简介(官网):

  • Centralize data processing of all types
  • Normalize varying schema and formats
  • Quickly extend to custom log formats
  • Easily add plugins for custom data sources

总之一句话:logstash是收集日志利器,无论是系统日志还是应用程序日志,无论是从文件收集还是直接接收tcp(或者udp)数据流,基本上所有常见的日志都能被收集,如:file、http、log4j、redis、syslog、tcp(udp)等等;
另外logstash还可以以多种形式的输出,如:elasticsearch(一种数据检索利器,可以戳这里了解)、email、file、http、redis、tcp(udp)、xmpp等等。

开动

下载logstash(https://download.elastic.co/logstash/logstash/logstash-1.5.6.tar.gz ),我使用的是1.5.6版本的,因为log4j2的插件只支持1.5.6及以下。windows用户请前往官网下载zip版本。logstash是一款成型软件,基本上开箱即用,做一些少量配置即可。

tar zvxf logstash-1.5.6.tar.gz 
cd logstash-1.5.6
mkdir conf
vim logstash.conf

加入如下基础配置

input {
      stdin{}
}
# filter is optional
#filter {
#}
output {
    stdout{
        codec => rubydebug
    }
}

启动logstash:

bin/logstash -f conf/logstash.conf

启动logstash后,等待用户标准输入,如图,输入testing:

logstash标准输入输出

可以看到logstash把标准输入转换成类似于json键值对的形式输出,message就是你输入的内容,@timestamp 是事件处理时间,可以看到这个是一个UTC时间,比北京时间晚8个小时,这是一个以后要踩的坑。

解释以下logstash配置参数:
logstash由3部分组成,input输出,filter过滤器,output输出,其中filter是可选的。每一部分都有很多插件可以用,可以同时在某一部分中使用多个插件,可以使用如下命令查看logstash中安装的插件:

bin/plugin list
logstash插件集合

logstash命令帮助其实也挺有用,比如可以查看logstash是否正确启动和正确地读取配置文件:

bin/logstash --help  # 查看logstash帮助
bin/logstash --verbose -f conf/test.conf # 查看logstash启动详情

执行bin/plugin list 可以看到logstash1.5.6本身就带了很多插件,你可能会看到log4j,你会以为它也可以支持log4j2,然而并不是,这也是我踩过的一个坑,发现配置好了并没有什么卵用,还好有万能的github(ps:发现一只看好的osc git并不具备这个功能,有点失望)。在github上搜索logstash log4j2,你会发现竟然神奇般的找到这个插件,大神的主页 https://github.com/jurmous/logstash-log4j2

注意:支持的log4j2的版本:2.1以上

安装:

bin/plugin install logstash-input-log4j2

又来了一个坑,注意了需要启动logstash后才能安装,否则会提示不支持https之类的,你可以亲自踩踩这个坑,然后把它填平。
使用之前的配置文件启动logstash :

bin/logstash -f conf/test.conf

然后打开一个新的终端,进入logstash目录,执行log4j2插件的安装命令,需要等待一段时间,请耐心等待。

logstash for log4j2基础配置:
input {
  log4j2 {
    port => 7000
    mode => "server"
  }
}

output {
  stdout { codec => rubydebug }
}

如上,读取log4j2的输出,然后输出到标准输出。以上logstash for log4j2的基础配置就搭建完毕了,更多内容,请等待更新,如有需要,也可以邮件:jarvan4dev@163.com 联系我 。

相关文章

  • log4j2与logstash之间的那点事(一)

    忙了几天,终于把logstash和log4j2一起弄上了线,踩过很多坑,也还有很多需要完善的地方,但是路还是慢慢走...

  • 2020-07-09 log4j2 + elk日志系统方案

    ELK的常规日志分析系统模型 logstash 使用 log4j2 作为输入源 logstash 导出日志到 el...

  • 一文解剖ubuntu,curl,openssl更新根证书的细节

    在《apt,curl,openssl之间的那点事》和《yum,curl,nss之间的那点事》这两篇文章中,介绍了以...

  • 学弟与学姐之间的那点事

    今日推书:《想得太多,做得太少!7天让你摆脱拖延症》[日]佐佐木正悟 拖延是把时间拉长,本质上是在稀释自己的人生,...

  • Ansible Role 日志分析 之【logstash】

    Ansible Role: logstash 安装logstash 介绍 Logstash 是一个应用程序日志、事...

  • 夫妻之间那点事

    我看到夫妻之间大部分人,一方对另一方有很大的期待,一旦得不到就会很委屈,同时夫妻之间不会沟通,不能真实的表...

  • 朋友之间那点事

    社交关系里最重要的一步就是交朋友了吧,我在这方面并不是一个成功者,甚至有点失败。我之前一直觉得好朋友不需要那么多,...

  • 夫妻之间那点事

    有一个俚语,说,孩子都可以打酱油了。故事是这样的,一天,夫妻俩心血来潮,可是,孩子在跟前,夫妻到哪里,孩子跟在哪里...

  • 兄弟之间那点事

    有句名言说,兄弟往往不像朋友,但朋友可以亲如兄弟。 或许,兄弟在日常相处久了,往往会因为想法的差异而在鸡毛蒜皮的事...

  • “婆媳”之间那点事

    结婚前,好友在我面前无数次的抱怨,说自己家婆婆有多么的不好,她临盆时候羊水浑浊,宝宝脐带绕颈,需要立马剖腹产,结果...

网友评论

    本文标题:log4j2与logstash之间的那点事(一)

    本文链接:https://www.haomeiwen.com/subject/nlmkkttx.html