[日志处理工作之五]整合logstash,kafka

1.logstash filter component组件的正则表达式要写的足够strong,需要充分考虑字段值为空的情况,比如DB字段,如果不考虑,数据会丢失。
logstash内置了kafka output组件。 file input基本实现了tail的功能
logstash-kafka.conf
input{
  exec{
    command => "cat /db2fs/opt/log-process/share/db2_test.log"
    codec => multiline{
      pattern => "?\d\d\d\d-\d\d"
      negate => true
      what => previous
    }
    interval=>30
  }
  #file{
   # path => "/db2fs/opt/log-process/share/db2_test.log"
   # codec => multiline{
   #   pattern => "?\d\d\d\d-\d\d"
   #   negate => true
   #   what => previous
   # }
  #}
}


filter {
  mutate{
    gsub => ['message', "\n", " "]
  }
}


output {
##  elasticsearch { host => localhost }
  kafka {
    topic_id=>"stream"
    broker_list=>"9.115.42.108:9092"
  }
}


2.kafka-elastic .conf
input{
  kafka{
    topic_id => "stream"
  }
}


filter {
  grok{
    patterns_dir=>"/db2fs/opt/log-process/logstash-1.5.0/conf/patterns"
    match=>{"message"=>"%{DB2TIME:timestamp}%{INT:timezone}\s*%{WORD:recordid}\s*LEVEL\s*:%{DATA:level}PID\s*:\s*%{NUMBER:processid}\s*TID\s*:\s*%{NUMBER:threadid}\s*PROC\s*:%{DATA:process}INSTANCE\s*:\s*%{WORD:instance}\s*NODE\s*:\s*%{WORD:node}\s*(?:DB\s*:\s%{DBNAME:dbname}\s*)?(?:APPHDL\s*:\s*%{NOTSPACE:apphdl}\s*)?(?:APPID\s*:\s*%{NOTSPACE:appid}\s*)?(?:AUTHID\s*:\s*%{WORD:authid}\s*)?(?:HOSTNAME\s*:\s*%{NOTSPACE:hostname}\s*)?(?:EDUID\s*:\s*%{NUMBER:eduid}\s*)?(?:EDUNAME\s*:\s*%{DATA:eduname}\s*)?FUNCTION\s*:%{DATA:function}probe\s*:\s*%{NUMBER:probe}\s*%{GREEDYDATA:functionlog}"}
  }
  date{
    match=>["timestamp","YYYY-MM-dd-HH.mm.ss.SSSSSS"]
  }
}
output {
  stdout {
    codec=>rubydebug
  }
}


3.pattern.txt
DB2TIME  %{YEAR:year}-%{MONTHNUM2:month}-%{MONTHDAY:day}-%{HOUR:hour}.%{MINUTE:minute}.%{SECOND:second}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老张去哪儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值