filebeat、kafka、logstash

公司原本架构是filebeat–>logstash–>elasticsearch的,然后通过查询es获取数据。
但有客户原本环境存在filebeat->kafka的架构,因此,决定由filebeat统一将所需日志推到kafka,再由kafka推到logstash,这样不会影响客户原来的架构,也不会因为要满足两个推送而运行两个filebeat导致负载增加,因此,就对filebeat->kafka->logstash架构进行了调研,废话不多说,直接上配置。
filebeat:

- type: log
  paths:
    - /*.log
  encoding: utf-8
  fields:
    type: imap
...#日志采集的配置
output.kafka:
  hosts: ["ip:9092"] #kafka的ip:9092端口
  topic: test  #由kafka创建的topic
  required_acks: 1

改完直接重启即可,如果要推送到多个topic,加个判断,

output.kafka:
    hosts: ["ip:9092"]
    topic: "test"
    topics:
       - topic : "test1"
         when.equals :
             fields.type: "imap" #即当type为imap的时候推到test1的topic
    required_acks: 1

这时候的调试过程中,可以在kafka创建对应topic的一个消费者,看看是否能收到推送过来的日志,有推送过来的日志代表filebeat->kafka这个流程通了。
剩下的就是由kafka推送到logstash,上logstash.conf:

input{
        kafka{
                bootstrap_servers=>"ip:9092" #依然是kafka的ip和端口
                topics=>["test"] #同filebeat推送出来的topic一致即可完成接收
                group_id=>"logstash_kafka_test"
                codec => "json"
        }
}

调试的时候可以把output设置成直接输出,可以看数据是否有推送过来:

output {
	stdout {
               codec => rubydebug {
                       metadata => true
               }
        }
    }

要看下是否有定好的日志格式输出,有则表示调通,不通的话要检查一下三方是否有报错,重新调试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值